[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27542] branches/render25: Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r27521 :27541
Brecht Van Lommel
brecht at blender.org
Tue Mar 16 18:15:21 CET 2010
Revision: 27542
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27542
Author: blendix
Date: 2010-03-16 18:15:21 +0100 (Tue, 16 Mar 2010)
Log Message:
-----------
Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r27521:27541
Modified Paths:
--------------
branches/render25/intern/ghost/intern/GHOST_SystemCocoa.mm
branches/render25/release/scripts/modules/bpy/utils.py
branches/render25/release/scripts/op/screen_play_rendered_anim.py
branches/render25/release/scripts/ui/properties_object_constraint.py
branches/render25/release/scripts/ui/properties_scene.py
branches/render25/source/blender/blenkernel/BKE_animsys.h
branches/render25/source/blender/blenkernel/intern/anim_sys.c
branches/render25/source/blender/blenkernel/intern/constraint.c
branches/render25/source/blender/blenkernel/intern/image.c
branches/render25/source/blender/blenlib/BLI_threads.h
branches/render25/source/blender/blenlib/intern/threads.c
branches/render25/source/blender/editors/animation/anim_intern.h
branches/render25/source/blender/editors/animation/keyframing.c
branches/render25/source/blender/editors/animation/keyingsets.c
branches/render25/source/blender/editors/armature/editarmature.c
branches/render25/source/blender/editors/armature/poseUtils.c
branches/render25/source/blender/editors/armature/poselib.c
branches/render25/source/blender/editors/armature/poseobject.c
branches/render25/source/blender/editors/include/ED_keyframing.h
branches/render25/source/blender/editors/object/object_transform.c
branches/render25/source/blender/editors/render/render_shading.c
branches/render25/source/blender/editors/screen/screen_ops.c
branches/render25/source/blender/editors/space_file/file_draw.c
branches/render25/source/blender/editors/space_file/filelist.c
branches/render25/source/blender/editors/space_file/filesel.c
branches/render25/source/blender/editors/space_file/space_file.c
branches/render25/source/blender/editors/space_image/space_image.c
branches/render25/source/blender/editors/space_node/drawnode.c
branches/render25/source/blender/editors/space_view3d/view3d_view.c
branches/render25/source/blender/editors/transform/transform_conversions.c
branches/render25/source/blender/makesdna/DNA_anim_types.h
branches/render25/source/blender/makesdna/DNA_constraint_types.h
branches/render25/source/blender/makesdna/DNA_space_types.h
branches/render25/source/blender/makesrna/RNA_access.h
branches/render25/source/blender/makesrna/intern/rna_animation.c
branches/render25/source/blender/makesrna/intern/rna_animation_api.c
branches/render25/source/blender/makesrna/intern/rna_constraint.c
branches/render25/source/blender/makesrna/intern/rna_nodetree.c
branches/render25/source/blender/makesrna/intern/rna_nodetree_types.h
branches/render25/source/blender/makesrna/intern/rna_space.c
branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_composite.c
branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_diffMatte.c
branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_rotate.c
branches/render25/source/blender/nodes/intern/CMP_nodes/CMP_viewer.c
branches/render25/source/blender/python/intern/bpy_driver.c
branches/render25/source/blender/render/intern/source/pipeline.c
branches/render25/source/blender/render/intern/source/result.c
branches/render25/source/blender/windowmanager/intern/wm_init_exit.c
branches/render25/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
Added Paths:
-----------
branches/render25/release/scripts/keyingsets/
branches/render25/release/scripts/keyingsets/keyingsets_builtins.py
branches/render25/release/scripts/keyingsets/keyingsets_utils.py
Removed Paths:
-------------
branches/render25/release/scripts/keyingsets/keyingsets_builtins.py
branches/render25/release/scripts/keyingsets/keyingsets_utils.py
Modified: branches/render25/intern/ghost/intern/GHOST_SystemCocoa.mm
===================================================================
--- branches/render25/intern/ghost/intern/GHOST_SystemCocoa.mm 2010-03-16 16:58:45 UTC (rev 27541)
+++ branches/render25/intern/ghost/intern/GHOST_SystemCocoa.mm 2010-03-16 17:15:21 UTC (rev 27542)
@@ -29,6 +29,9 @@
#import <Cocoa/Cocoa.h>
+/*For the currently not ported to Cocoa keyboard layout functions (64bit & 10.6 compatible)*/
+#include <Carbon/Carbon.h>
+
#include <sys/time.h>
#include <sys/types.h>
#include <sys/sysctl.h>
@@ -53,9 +56,8 @@
#include "AssertMacros.h"
#pragma mark KeyMap, mouse converters
-
-
-/* Keycodes from Carbon include file */
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4
+/* Keycodes not defined in Tiger */
/*
* Summary:
* Virtual keycodes
@@ -203,8 +205,8 @@
kVK_JIS_Eisu = 0x66,
kVK_JIS_Kana = 0x68
};
+#endif
-
static GHOST_TButtonMask convertButton(int button)
{
switch (button) {
@@ -230,7 +232,7 @@
* @param recvChar the character ignoring modifiers (except for shift)
* @return Ghost key code
*/
-static GHOST_TKey convertKey(int rawCode, unichar recvChar)
+static GHOST_TKey convertKey(int rawCode, unichar recvChar, UInt16 keyAction)
{
//printf("\nrecvchar %c 0x%x",recvChar,recvChar);
@@ -350,26 +352,68 @@
return GHOST_kKeyUnknown;
default:
- /*Then detect on character value for "remappable" keys in int'l keyboards*/
+ /* alphanumerical or punctuation key that is remappable in int'l keyboards */
if ((recvChar >= 'A') && (recvChar <= 'Z')) {
return (GHOST_TKey) (recvChar - 'A' + GHOST_kKeyA);
} else if ((recvChar >= 'a') && (recvChar <= 'z')) {
return (GHOST_TKey) (recvChar - 'a' + GHOST_kKeyA);
- } else
- switch (recvChar) {
- case '-': return GHOST_kKeyMinus;
- case '=': return GHOST_kKeyEqual;
- case ',': return GHOST_kKeyComma;
- case '.': return GHOST_kKeyPeriod;
- case '/': return GHOST_kKeySlash;
- case ';': return GHOST_kKeySemicolon;
- case '\'': return GHOST_kKeyQuote;
- case '\\': return GHOST_kKeyBackslash;
- case '[': return GHOST_kKeyLeftBracket;
- case ']': return GHOST_kKeyRightBracket;
- case '`': return GHOST_kKeyAccentGrave;
- default:
- return GHOST_kKeyUnknown;
+ } else {
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4
+ KeyboardLayoutRef keyLayout;
+ UCKeyboardLayout *uchrData;
+
+ KLGetCurrentKeyboardLayout(&keyLayout);
+ KLGetKeyboardLayoutProperty(keyLayout, kKLuchrData, (const void **)
+ &uchrData);
+ /*get actual character value of the "remappable" keys in int'l keyboards,
+ if keyboard layout is not correctly reported (e.g. some non Apple keyboards in Tiger),
+ then fallback on using the received charactersIgnoringModifiers */
+ if (uchrData)
+ {
+ UInt32 deadKeyState=0;
+ UniCharCount actualStrLength=0;
+
+ UCKeyTranslate(uchrData, rawCode, keyAction, 0,
+ LMGetKbdType(), kUCKeyTranslateNoDeadKeysBit, &deadKeyState, 1, &actualStrLength, &recvChar);
+
+ }
+#else
+ /* Leopard and Snow Leopard 64bit compatible API*/
+ CFDataRef uchrHandle; /*the keyboard layout*/
+ TISInputSourceRef kbdTISHandle;
+
+ kbdTISHandle = TISCopyCurrentKeyboardLayoutInputSource();
+ uchrHandle = (CFDataRef)TISGetInputSourceProperty(kbdTISHandle,kTISPropertyUnicodeKeyLayoutData);
+ CFRelease(kbdTISHandle);
+
+ /*get actual character value of the "remappable" keys in int'l keyboards,
+ if keyboard layout is not correctly reported (e.g. some non Apple keyboards in Tiger),
+ then fallback on using the received charactersIgnoringModifiers */
+ if (uchrHandle)
+ {
+ UInt32 deadKeyState=0;
+ UniCharCount actualStrLength=0;
+
+ UCKeyTranslate((UCKeyboardLayout*)CFDataGetBytePtr(uchrHandle), rawCode, keyAction, 0,
+ LMGetKbdType(), kUCKeyTranslateNoDeadKeysBit, &deadKeyState, 1, &actualStrLength, &recvChar);
+
+ }
+#endif
+ switch (recvChar) {
+ case '-': return GHOST_kKeyMinus;
+ case '=': return GHOST_kKeyEqual;
+ case ',': return GHOST_kKeyComma;
+ case '.': return GHOST_kKeyPeriod;
+ case '/': return GHOST_kKeySlash;
+ case ';': return GHOST_kKeySemicolon;
+ case '\'': return GHOST_kKeyQuote;
+ case '\\': return GHOST_kKeyBackslash;
+ case '[': return GHOST_kKeyLeftBracket;
+ case ']': return GHOST_kKeyRightBracket;
+ case '`': return GHOST_kKeyAccentGrave;
+ default:
+ return GHOST_kKeyUnknown;
+ }
}
}
return GHOST_kKeyUnknown;
@@ -1573,9 +1617,11 @@
charsIgnoringModifiers = [event charactersIgnoringModifiers];
if ([charsIgnoringModifiers length]>0)
keyCode = convertKey([event keyCode],
- [charsIgnoringModifiers characterAtIndex:0]);
+ [charsIgnoringModifiers characterAtIndex:0],
+ [event type] == NSKeyDown?kUCKeyActionDown:kUCKeyActionUp);
else
- keyCode = convertKey([event keyCode],0);
+ keyCode = convertKey([event keyCode],0,
+ [event type] == NSKeyDown?kUCKeyActionDown:kUCKeyActionUp);
characters = [event characters];
@@ -1595,9 +1641,10 @@
if ([event type] == NSKeyDown) {
pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyDown, window, keyCode, ascii) );
- //printf("\nKey pressed keyCode=%u ascii=%i %c",keyCode,ascii,ascii);
+ //printf("\nKey down rawCode=0x%x charsIgnoringModifiers=%c keyCode=%u ascii=%i %c",[event keyCode],[charsIgnoringModifiers length]>0?[charsIgnoringModifiers characterAtIndex:0]:' ',keyCode,ascii,ascii);
} else {
pushEvent( new GHOST_EventKey([event timestamp]*1000, GHOST_kEventKeyUp, window, keyCode, ascii) );
+ //printf("\nKey up rawCode=0x%x charsIgnoringModifiers=%c keyCode=%u ascii=%i %c",[event keyCode],[charsIgnoringModifiers length]>0?[charsIgnoringModifiers characterAtIndex:0]:' ',keyCode,ascii,ascii);
}
break;
Copied: branches/render25/release/scripts/keyingsets (from rev 27541, trunk/blender/release/scripts/keyingsets)
Deleted: branches/render25/release/scripts/keyingsets/keyingsets_builtins.py
===================================================================
--- trunk/blender/release/scripts/keyingsets/keyingsets_builtins.py 2010-03-16 16:58:45 UTC (rev 27541)
+++ branches/render25/release/scripts/keyingsets/keyingsets_builtins.py 2010-03-16 17:15:21 UTC (rev 27542)
@@ -1,236 +0,0 @@
-# Built-In Keying Sets
-# None of these Keying Sets should be removed, as these
-# are needed by various parts of Blender in order for them
-# to work correctly.
-
-import bpy
-from keyingsets_utils import *
-
-###############################
-# Built-In KeyingSets
-
-# Location
-class BUILTIN_KSI_Location(bpy.types.KeyingSetInfo):
- bl_idname = "Location"
- bl_builtin = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- generate = RKS_GEN_location
-
-# Rotation
-class BUILTIN_KSI_Rotation(bpy.types.KeyingSetInfo):
- bl_idname = "Rotation"
- bl_builtin = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- generate = RKS_GEN_rotation
-
-# Scale
-class BUILTIN_KSI_Scaling(bpy.types.KeyingSetInfo):
- bl_idname = "Scaling"
- bl_builtin = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- generate = RKS_GEN_scaling
-
-# ------------
-
-# LocRot
-class BUILTIN_KSI_LocRot(bpy.types.KeyingSetInfo):
- bl_idname = "LocRot"
- bl_builtin = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- def generate(self, context, ks, data):
- # location
- RKS_GEN_location(self, context, ks, data)
- # rotation
- RKS_GEN_rotation(self, context, ks, data)
-
-# LocScale
-class BUILTIN_KSI_LocScale(bpy.types.KeyingSetInfo):
- bl_idname = "LocScale"
- bl_builtin = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- def generate(self, context, ks, data):
- # location
- RKS_GEN_location(self, context, ks, data)
- # scale
- RKS_GEN_scaling(self, context, ks, data)
-
-# LocRotScale
-class BUILTIN_KSI_LocRotScale(bpy.types.KeyingSetInfo):
- bl_idname = "LocRotScale"
- bl_builtin = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- def generate(self, context, ks, data):
- # location
- RKS_GEN_location(self, context, ks, data)
- # rotation
- RKS_GEN_rotation(self, context, ks, data)
- # scale
- RKS_GEN_scaling(self, context, ks, data)
-
-# RotScale
-class BUILTIN_KSI_RotScale(bpy.types.KeyingSetInfo):
- bl_idname = "RotScale"
- bl_builtin = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- def generate(self, context, ks, data):
- # rotation
- RKS_GEN_rotation(self, context, ks, data)
- # scaling
- RKS_GEN_scaling(self, context, ks, data)
-
-# ------------
-
-# Location
-class BUILTIN_KSI_VisualLoc(bpy.types.KeyingSetInfo):
- bl_idname = "Visual Location"
- bl_builtin = True
-
- insertkey_visual = True
-
- # poll - use predefined callback for selected bones/objects
- poll = RKS_POLL_selected_items
-
- # iterator - use callback for selected bones/objects
- iterator = RKS_ITER_selected_item
-
- # generator - use callback for location
- generate = RKS_GEN_location
-
-# Rotation
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list