forked from bartvdbraak/blender
Merge branch 'master' into blender2.8
This commit is contained in:
commit
7c6136b35c
@ -3194,7 +3194,7 @@ void ED_operatortypes_animchannels(void)
|
||||
// TODO: check on a poll callback for this, to get hotkeys into menus
|
||||
void ED_keymap_animchannels(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Animation Channels", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Animation Channels", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* click-select */
|
||||
|
@ -1648,7 +1648,7 @@ void ED_operatortypes_marker(void)
|
||||
/* called in screen_ops.c:ED_keymap_screen() */
|
||||
void ED_keymap_marker(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Markers", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Markers", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
WM_keymap_verify_item(keymap, "MARKER_OT_add", MKEY, KM_PRESS, 0, 0);
|
||||
|
@ -536,7 +536,7 @@ void ED_operatortypes_anim(void)
|
||||
|
||||
void ED_keymap_anim(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Animation", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Animation", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* frame management */
|
||||
|
@ -193,7 +193,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* Armature ------------------------ */
|
||||
keymap = WM_keymap_find(keyconf, "Armature", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Armature", 0, 0);
|
||||
keymap->poll = ED_operator_editarmature;
|
||||
|
||||
/* only set in editmode armature, by space_view3d listener */
|
||||
@ -294,7 +294,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
|
||||
|
||||
/* Pose ------------------------ */
|
||||
/* only set in posemode, by space_view3d listener */
|
||||
keymap = WM_keymap_find(keyconf, "Pose", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Pose", 0, 0);
|
||||
keymap->poll = ED_operator_posemode;
|
||||
|
||||
/* set parent and add object are object-based operators, but we make them
|
||||
|
@ -170,7 +170,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Font", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Font", 0, 0);
|
||||
keymap->poll = ED_operator_editfont;
|
||||
|
||||
/* only set in editmode font, by space_view3d listener */
|
||||
@ -230,7 +230,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
|
||||
RNA_boolean_set(kmi->ptr, "accent", true); /* accented characters */
|
||||
|
||||
/* only set in editmode curve, by space_view3d listener */
|
||||
keymap = WM_keymap_find(keyconf, "Curve", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Curve", 0, 0);
|
||||
keymap->poll = ED_operator_editsurfcurve;
|
||||
|
||||
WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
|
@ -62,7 +62,7 @@
|
||||
/* Generic Drawing Keymap - Annotations */
|
||||
static void ed_keymap_gpencil_general(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* Draw --------------------------------------- */
|
||||
@ -335,7 +335,7 @@ static void ed_keymap_gpencil_weight(wmKeyMap *keymap)
|
||||
/* Stroke Editing Keymap - Only when editmode is enabled */
|
||||
static void ed_keymap_gpencil_editing(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil Stroke Edit Mode", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Edit Mode", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* set poll callback - so that this keymap only gets enabled when stroke editmode is enabled */
|
||||
@ -463,7 +463,7 @@ static void ed_keymap_gpencil_editing(wmKeyConfig *keyconf)
|
||||
/* keys for draw with a drawing brush (no fill) */
|
||||
static void ed_keymap_gpencil_painting_draw(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil Stroke Paint (Draw brush)", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Draw brush)", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* set poll callback */
|
||||
@ -518,7 +518,7 @@ static void ed_keymap_gpencil_painting_draw(wmKeyConfig *keyconf)
|
||||
/* keys for draw with a eraser brush (erase) */
|
||||
static void ed_keymap_gpencil_painting_erase(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil Stroke Paint (Erase)", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Erase)", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* set poll callback */
|
||||
@ -545,7 +545,7 @@ static void ed_keymap_gpencil_painting_erase(wmKeyConfig *keyconf)
|
||||
/* keys for draw with a fill brush */
|
||||
static void ed_keymap_gpencil_painting_fill(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil Stroke Paint (Fill)", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Fill)", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* set poll callback */
|
||||
@ -577,7 +577,7 @@ static void ed_keymap_gpencil_painting_fill(wmKeyConfig *keyconf)
|
||||
/* Stroke Painting Keymap - Only when paintmode is enabled */
|
||||
static void ed_keymap_gpencil_painting(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil Stroke Paint Mode", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint Mode", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* set poll callback - so that this keymap only gets enabled when stroke paintmode is enabled */
|
||||
@ -602,7 +602,7 @@ static void ed_keymap_gpencil_painting(wmKeyConfig *keyconf)
|
||||
/* Stroke Sculpting Keymap - Only when sculptmode is enabled */
|
||||
static void ed_keymap_gpencil_sculpting(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
|
||||
|
||||
/* set poll callback - so that this keymap only gets enabled when stroke sculptmode is enabled */
|
||||
keymap->poll = gp_stroke_sculptmode_poll;
|
||||
@ -620,7 +620,7 @@ static void ed_keymap_gpencil_sculpting(wmKeyConfig *keyconf)
|
||||
/* Stroke Weight Paint Keymap - Only when weight is enabled */
|
||||
static void ed_keymap_gpencil_weightpainting(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Grease Pencil Stroke Weight Mode", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Weight Mode", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* set poll callback - so that this keymap only gets enabled when stroke sculptmode is enabled */
|
||||
|
@ -1372,7 +1372,7 @@ void ED_operatortypes_ui(void)
|
||||
*/
|
||||
void ED_keymap_ui(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "User Interface", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "User Interface", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* eyedroppers - notice they all have the same shortcut, but pass the event
|
||||
|
@ -2130,7 +2130,7 @@ void ED_operatortypes_view2d(void)
|
||||
|
||||
void ED_keymap_view2d(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "View2D", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "View2D", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* scrollers */
|
||||
@ -2190,7 +2190,7 @@ void ED_keymap_view2d(wmKeyConfig *keyconf)
|
||||
WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
|
||||
/* Alternative keymap for buttons listview */
|
||||
keymap = WM_keymap_find(keyconf, "View2D Buttons List", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "View2D Buttons List", 0, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", MIDDLEMOUSE, KM_PRESS, 0, 0);
|
||||
|
@ -59,7 +59,7 @@ void ED_keymap_lattice(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Lattice", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Lattice", 0, 0);
|
||||
keymap->poll = ED_operator_editlattice;
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "LATTICE_OT_select_all", AKEY, KM_PRESS, 0, 0);
|
||||
|
@ -526,7 +526,7 @@ void ED_keymap_mask(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Mask Editing", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Mask Editing", 0, 0);
|
||||
keymap->poll = ED_maskedit_poll;
|
||||
|
||||
WM_keymap_add_item(keymap, "MASK_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
|
||||
|
@ -328,7 +328,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Mesh", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Mesh", 0, 0);
|
||||
keymap->poll = ED_operator_editmesh;
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "MESH_OT_loopcut_slide", RKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
@ -73,7 +73,7 @@ void ED_keymap_metaball(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Metaball", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Metaball", 0, 0);
|
||||
keymap->poll = ED_operator_editmball;
|
||||
|
||||
WM_keymap_add_item(keymap, "OBJECT_OT_metaball_add", AKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
|
@ -308,7 +308,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* Objects, Regardless of Mode -------------------------------------------------- */
|
||||
keymap = WM_keymap_find(keyconf, "Object Non-modal", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Object Non-modal", 0, 0);
|
||||
|
||||
/* modes */
|
||||
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
|
||||
@ -327,7 +327,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
|
||||
|
||||
/* Object Mode ---------------------------------------------------------------- */
|
||||
/* Note: this keymap gets disabled in non-objectmode, */
|
||||
keymap = WM_keymap_find(keyconf, "Object Mode", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Object Mode", 0, 0);
|
||||
keymap->poll = object_mode_poll;
|
||||
|
||||
/* object mode supports PET now */
|
||||
|
@ -114,7 +114,7 @@ static void keymap_particle(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
wmKeyMap *keymap;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Particle", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Particle", 0, 0);
|
||||
keymap->poll = PE_poll;
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_select_all", AKEY, KM_PRESS, 0, 0);
|
||||
@ -208,7 +208,7 @@ static void operatortypes_dynamicpaint(void)
|
||||
|
||||
//static void keymap_pointcache(wmWindowManager *wm)
|
||||
//{
|
||||
// wmKeyMap *keymap = WM_keymap_find(wm, "Pointcache", 0, 0);
|
||||
// wmKeyMap *keymap = WM_keymap_ensure(wm, "Pointcache", 0, 0);
|
||||
//
|
||||
// WM_keymap_add_item(keymap, "PHYSICS_OT_bake_all", AKEY, KM_PRESS, 0, 0);
|
||||
// WM_keymap_add_item(keymap, "PHYSICS_OT_free_all", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
@ -1441,7 +1441,7 @@ static void ed_default_handlers(wmWindowManager *wm, ScrArea *sa, ListBase *hand
|
||||
|
||||
/* XXX it would be good to have boundbox checks for some of these... */
|
||||
if (flag & ED_KEYMAP_UI) {
|
||||
wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "User Interface", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "User Interface", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap);
|
||||
|
||||
/* user interface widgets */
|
||||
@ -1449,12 +1449,12 @@ static void ed_default_handlers(wmWindowManager *wm, ScrArea *sa, ListBase *hand
|
||||
}
|
||||
if (flag & ED_KEYMAP_VIEW2D) {
|
||||
/* 2d-viewport handling+manipulation */
|
||||
wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "View2D", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "View2D", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap);
|
||||
}
|
||||
if (flag & ED_KEYMAP_MARKERS) {
|
||||
/* time-markers */
|
||||
wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "Markers", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "Markers", 0, 0);
|
||||
|
||||
/* use a boundbox restricted map */
|
||||
ARegion *ar;
|
||||
@ -1468,12 +1468,12 @@ static void ed_default_handlers(wmWindowManager *wm, ScrArea *sa, ListBase *hand
|
||||
}
|
||||
if (flag & ED_KEYMAP_ANIMATION) {
|
||||
/* frame changing and timeline operators (for time spaces) */
|
||||
wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "Animation", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "Animation", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap);
|
||||
}
|
||||
if (flag & ED_KEYMAP_FRAMES) {
|
||||
/* frame changing/jumping (for all spaces) */
|
||||
wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "Frames", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "Frames", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap);
|
||||
}
|
||||
if (flag & ED_KEYMAP_GPENCIL) {
|
||||
@ -1484,30 +1484,30 @@ static void ed_default_handlers(wmWindowManager *wm, ScrArea *sa, ListBase *hand
|
||||
* For now, it's easier to just include all,
|
||||
* since you hardly want one without the others.
|
||||
*/
|
||||
wmKeyMap *keymap_general = WM_keymap_find(wm->defaultconf, "Grease Pencil", 0, 0);
|
||||
wmKeyMap *keymap_general = WM_keymap_ensure(wm->defaultconf, "Grease Pencil", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap_general);
|
||||
|
||||
wmKeyMap *keymap_edit = WM_keymap_find(wm->defaultconf, "Grease Pencil Stroke Edit Mode", 0, 0);
|
||||
wmKeyMap *keymap_edit = WM_keymap_ensure(wm->defaultconf, "Grease Pencil Stroke Edit Mode", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap_edit);
|
||||
|
||||
wmKeyMap *keymap_paint = WM_keymap_find(wm->defaultconf, "Grease Pencil Stroke Paint Mode", 0, 0);
|
||||
wmKeyMap *keymap_paint = WM_keymap_ensure(wm->defaultconf, "Grease Pencil Stroke Paint Mode", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap_paint);
|
||||
|
||||
wmKeyMap *keymap_paint_draw = WM_keymap_find(wm->defaultconf, "Grease Pencil Stroke Paint (Draw brush)", 0, 0);
|
||||
wmKeyMap *keymap_paint_draw = WM_keymap_ensure(wm->defaultconf, "Grease Pencil Stroke Paint (Draw brush)", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap_paint_draw);
|
||||
|
||||
wmKeyMap *keymap_paint_erase = WM_keymap_find(wm->defaultconf, "Grease Pencil Stroke Paint (Erase)", 0, 0);
|
||||
wmKeyMap *keymap_paint_erase = WM_keymap_ensure(wm->defaultconf, "Grease Pencil Stroke Paint (Erase)", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap_paint_erase);
|
||||
|
||||
wmKeyMap *keymap_paint_fill = WM_keymap_find(wm->defaultconf, "Grease Pencil Stroke Paint (Fill)", 0, 0);
|
||||
wmKeyMap *keymap_paint_fill = WM_keymap_ensure(wm->defaultconf, "Grease Pencil Stroke Paint (Fill)", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap_paint_fill);
|
||||
|
||||
wmKeyMap *keymap_sculpt = WM_keymap_find(wm->defaultconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
|
||||
wmKeyMap *keymap_sculpt = WM_keymap_ensure(wm->defaultconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap_sculpt);
|
||||
}
|
||||
if (flag & ED_KEYMAP_HEADER) {
|
||||
/* standard keymap for headers regions */
|
||||
wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "Header", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "Header", 0, 0);
|
||||
WM_event_add_keymap_handler(handlers, keymap);
|
||||
}
|
||||
}
|
||||
@ -2307,7 +2307,7 @@ void ED_region_panels_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_PANELS_UI, ar->winx, ar->winy);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "View2D Buttons List", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "View2D Buttons List", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
|
@ -4861,7 +4861,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* Screen Editing ------------------------------------------------ */
|
||||
keymap = WM_keymap_find(keyconf, "Screen Editing", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Screen Editing", 0, 0);
|
||||
|
||||
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "modifier", 0);
|
||||
RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "modifier", 1);
|
||||
@ -4886,12 +4886,12 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
|
||||
|
||||
/* Header Editing ------------------------------------------------ */
|
||||
/* note: this is only used when the cursor is inside the header */
|
||||
keymap = WM_keymap_find(keyconf, "Header", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Header", 0, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "SCREEN_OT_header_context_menu", RIGHTMOUSE, KM_PRESS, 0, 0);
|
||||
|
||||
/* Screen General ------------------------------------------------ */
|
||||
keymap = WM_keymap_find(keyconf, "Screen", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Screen", 0, 0);
|
||||
|
||||
/* standard timers */
|
||||
WM_keymap_add_item(keymap, "SCREEN_OT_animation_step", TIMER0, KM_ANY, KM_ANY, 0);
|
||||
@ -4970,7 +4970,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
|
||||
|
||||
|
||||
/* Anim Playback ------------------------------------------------ */
|
||||
keymap = WM_keymap_find(keyconf, "Frames", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Frames", 0, 0);
|
||||
|
||||
/* frame offsets */
|
||||
#ifdef USE_WM_KEYMAP_27X
|
||||
@ -5023,7 +5023,7 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
|
||||
|
||||
/* Alternative keys for animation and sequencer playing */
|
||||
#if 0 /* XXX: disabled for restoring later... bad implementation */
|
||||
keymap = WM_keymap_find(keyconf, "Frames", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Frames", 0, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "cycle_speed", true);
|
||||
|
||||
|
@ -1297,13 +1297,13 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
int i;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Paint Curve", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Paint Curve", 0, 0);
|
||||
keymap->poll = paint_curve_poll;
|
||||
|
||||
paint_keymap_curve(keymap);
|
||||
|
||||
/* Sculpt mode */
|
||||
keymap = WM_keymap_find(keyconf, "Sculpt", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Sculpt", 0, 0);
|
||||
keymap->poll = sculpt_mode_poll;
|
||||
|
||||
RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
|
||||
@ -1378,7 +1378,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
WM_keymap_add_menu(keymap, "VIEW3D_MT_angle_control", RKEY, KM_PRESS, 0, 0);
|
||||
|
||||
/* Vertex Paint mode */
|
||||
keymap = WM_keymap_find(keyconf, "Vertex Paint", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Vertex Paint", 0, 0);
|
||||
keymap->poll = vertex_paint_mode_poll;
|
||||
|
||||
WM_keymap_verify_item(keymap, "PAINT_OT_vertex_paint", LEFTMOUSE, KM_PRESS, 0, 0);
|
||||
@ -1404,7 +1404,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
RNA_string_set(kmi->ptr, "data_path", "tool_settings.vertex_paint.brush.stroke_method");
|
||||
|
||||
/* Weight Paint mode */
|
||||
keymap = WM_keymap_find(keyconf, "Weight Paint", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Weight Paint", 0, 0);
|
||||
keymap->poll = weight_paint_mode_poll;
|
||||
|
||||
WM_keymap_verify_item(keymap, "PAINT_OT_weight_paint", LEFTMOUSE, KM_PRESS, 0, 0);
|
||||
@ -1435,7 +1435,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
RNA_string_set(kmi->ptr, "data_path", "tool_settings.weight_paint.brush.use_smooth_stroke");
|
||||
|
||||
/*Weight paint's Vertex Selection Mode */
|
||||
keymap = WM_keymap_find(keyconf, "Weight Paint Vertex Selection", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Weight Paint Vertex Selection", 0, 0);
|
||||
keymap->poll = vert_paint_poll;
|
||||
kmi = WM_keymap_add_item(keymap, "PAINT_OT_vert_select_all", AKEY, KM_PRESS, 0, 0);
|
||||
RNA_enum_set(kmi->ptr, "action", SEL_SELECT);
|
||||
@ -1451,7 +1451,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
WM_keymap_add_item(keymap, "VIEW3D_OT_select_circle", CKEY, KM_PRESS, 0, 0);
|
||||
|
||||
/* Image/Texture Paint mode */
|
||||
keymap = WM_keymap_find(keyconf, "Image Paint", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Image Paint", 0, 0);
|
||||
keymap->poll = image_texture_paint_poll;
|
||||
|
||||
RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
|
||||
@ -1479,7 +1479,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
RNA_string_set(kmi->ptr, "data_path", "tool_settings.image_paint.brush.stroke_method");
|
||||
|
||||
/* face-mask mode */
|
||||
keymap = WM_keymap_find(keyconf, "Face Mask", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Face Mask", 0, 0);
|
||||
keymap->poll = facemask_paint_poll;
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_all", AKEY, KM_PRESS, 0, 0);
|
||||
@ -1500,7 +1500,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
|
||||
kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
RNA_boolean_set(kmi->ptr, "deselect", true);
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "UV Sculpt", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "UV Sculpt", 0, 0);
|
||||
keymap->poll = uv_sculpt_keymap_poll;
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, 0, 0);
|
||||
|
@ -281,7 +281,7 @@ void action_keymap(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
|
||||
/* keymap for all regions */
|
||||
keymap = WM_keymap_find(keyconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
|
||||
/* region management... */
|
||||
WM_keymap_add_item(keymap, "ACTION_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
@ -294,6 +294,6 @@ void action_keymap(wmKeyConfig *keyconf)
|
||||
*/
|
||||
|
||||
/* keyframes */
|
||||
keymap = WM_keymap_find(keyconf, "Dopesheet", SPACE_ACTION, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Dopesheet", SPACE_ACTION, 0);
|
||||
action_keymap_keyframes(keyconf, keymap);
|
||||
}
|
||||
|
@ -205,9 +205,9 @@ static void action_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Dopesheet", SPACE_ACTION, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet", SPACE_ACTION, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -296,12 +296,12 @@ static void action_channel_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Animation Channels", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Animation Channels", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
WM_keymap_add_menu(keymap, "DOPESHEET_MT_specials_channels", WKEY, KM_PRESS, 0, 0);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -749,7 +749,7 @@ static void action_buttons_area_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
|
@ -130,7 +130,7 @@ static void buttons_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Property Editor", SPACE_BUTS, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Property Editor", SPACE_BUTS, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -330,7 +330,7 @@ static void buttons_operatortypes(void)
|
||||
|
||||
static void buttons_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Property Editor", SPACE_BUTS, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Property Editor", SPACE_BUTS, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "BUTTONS_OT_context_menu", RIGHTMOUSE, KM_PRESS, 0, 0);
|
||||
}
|
||||
|
@ -543,7 +543,7 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
|
||||
|
||||
/* ******** Global hotkeys avalaible for all regions ******** */
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Clip", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Clip", SPACE_CLIP, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "CLIP_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
|
||||
|
||||
@ -583,7 +583,7 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
|
||||
|
||||
/* ******** Hotkeys avalaible for main region only ******** */
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Clip Editor", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Clip Editor", SPACE_CLIP, 0);
|
||||
// keymap->poll = ED_space_clip_tracking_poll;
|
||||
/* ** View/navigation ** */
|
||||
|
||||
@ -754,7 +754,7 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
|
||||
|
||||
/* ******** Hotkeys avalaible for preview region only ******** */
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Clip Graph Editor", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Clip Graph Editor", SPACE_CLIP, 0);
|
||||
|
||||
/* "timeline" */
|
||||
WM_keymap_add_item(keymap, "CLIP_OT_change_frame", ACTIONMOUSE, KM_PRESS, 0, 0);
|
||||
@ -810,7 +810,7 @@ static void clip_keymap(struct wmKeyConfig *keyconf)
|
||||
|
||||
/* ******** Hotkeys avalaible for channels region only ******** */
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "CLIP_OT_dopesheet_select_channel", LEFTMOUSE, KM_PRESS, 0, 0);
|
||||
RNA_boolean_set(kmi->ptr, "extend", true); /* toggle */
|
||||
@ -1109,14 +1109,14 @@ static void clip_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
|
||||
|
||||
/* mask polls mode */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip Editor", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip Editor", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -1235,13 +1235,13 @@ static void clip_preview_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip Graph Editor", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip Graph Editor", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -1359,7 +1359,7 @@ static void clip_channels_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -1435,7 +1435,7 @@ static void clip_tools_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -1480,7 +1480,7 @@ static void clip_properties_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Clip", SPACE_CLIP, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,7 @@ static void console_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
}
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Console", SPACE_CONSOLE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Console", SPACE_CONSOLE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* add drop boxes */
|
||||
@ -265,7 +265,7 @@ static void console_operatortypes(void)
|
||||
|
||||
static void console_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Console", SPACE_CONSOLE, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Console", SPACE_CONSOLE, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
@ -330,10 +330,10 @@ static void file_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
|
||||
|
||||
/* own keymaps */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "File Browser Main", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "File Browser Main", SPACE_FILE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -491,7 +491,7 @@ static void file_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMapItem *kmi;
|
||||
/* keys for all regions */
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "File Browser", SPACE_FILE, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "File Browser", SPACE_FILE, 0);
|
||||
|
||||
/* More common 'fliebrowser-like navigation' shortcuts. */
|
||||
WM_keymap_add_item(keymap, "FILE_OT_parent", UPARROWKEY, KM_PRESS, KM_ALT, 0);
|
||||
@ -515,7 +515,7 @@ static void file_keymap(struct wmKeyConfig *keyconf)
|
||||
WM_keymap_add_item(keymap, "FILE_OT_bookmark_add", BKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
||||
/* keys for main region */
|
||||
keymap = WM_keymap_find(keyconf, "File Browser Main", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "File Browser Main", SPACE_FILE, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_execute", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
|
||||
RNA_boolean_set(kmi->ptr, "need_active", true);
|
||||
|
||||
@ -607,7 +607,7 @@ static void file_keymap(struct wmKeyConfig *keyconf)
|
||||
|
||||
|
||||
/* keys for button region (top) */
|
||||
keymap = WM_keymap_find(keyconf, "File Browser Buttons", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "File Browser Buttons", SPACE_FILE, 0);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
|
||||
RNA_int_set(kmi->ptr, "increment", 1);
|
||||
kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
@ -631,7 +631,7 @@ static void file_tools_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
/* own keymaps */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -659,7 +659,7 @@ static void file_header_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_header_init(ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -676,10 +676,10 @@ static void file_ui_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "File Browser", SPACE_FILE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "File Browser Buttons", SPACE_FILE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "File Browser Buttons", SPACE_FILE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
|
@ -693,7 +693,7 @@ void graphedit_keymap(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* keymap for all regions */
|
||||
keymap = WM_keymap_find(keyconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
WM_keymap_add_item(keymap, "GRAPH_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
|
||||
/* extrapolation works on channels, not keys */
|
||||
@ -719,6 +719,6 @@ void graphedit_keymap(wmKeyConfig *keyconf)
|
||||
*/
|
||||
|
||||
/* keyframes */
|
||||
keymap = WM_keymap_find(keyconf, "Graph Editor", SPACE_IPO, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Graph Editor", SPACE_IPO, 0);
|
||||
graphedit_keymap_keyframes(keyconf, keymap);
|
||||
}
|
||||
|
@ -222,9 +222,9 @@ static void graph_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Graph Editor", SPACE_IPO, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Graph Editor", SPACE_IPO, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -368,9 +368,9 @@ static void graph_channel_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Animation Channels", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Animation Channels", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -420,7 +420,7 @@ static void graph_buttons_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Graph Editor Generic", SPACE_IPO, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
|
@ -293,7 +293,7 @@ static void image_operatortypes(void)
|
||||
|
||||
static void image_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
int i;
|
||||
|
||||
@ -311,7 +311,7 @@ static void image_keymap(struct wmKeyConfig *keyconf)
|
||||
WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, 0, 0);
|
||||
RNA_boolean_set(WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, KM_ALT, 0)->ptr, "reverse", true);
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Image", SPACE_IMAGE, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Image", SPACE_IMAGE, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "IMAGE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
|
||||
|
||||
@ -678,29 +678,29 @@ static void image_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
WM_gizmomap_add_handlers(ar, ar->gizmo_map);
|
||||
|
||||
/* mask polls mode */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* image paint polls for mode */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Curve", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Curve", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Paint Curve", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Paint Curve", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Image Paint", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Image Paint", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "UV Editor", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "UV Editor", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "UV Sculpt", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "UV Sculpt", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
/* own keymaps */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Image", SPACE_IMAGE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Image", SPACE_IMAGE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -868,7 +868,7 @@ static void image_buttons_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
ar->v2d.scroll = V2D_SCROLL_RIGHT | V2D_SCROLL_VERTICAL_HIDE;
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -922,7 +922,7 @@ static void image_tools_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
ar->v2d.scroll = V2D_SCROLL_RIGHT | V2D_SCROLL_VERTICAL_HIDE;
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Image Generic", SPACE_IMAGE, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
|
@ -137,7 +137,7 @@ static void info_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Info", SPACE_INFO, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Info", SPACE_INFO, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -207,12 +207,12 @@ static void info_operatortypes(void)
|
||||
|
||||
static void info_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Window", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Window", 0, 0);
|
||||
|
||||
WM_keymap_verify_item(keymap, "INFO_OT_reports_display_update", TIMERREPORT, KM_ANY, KM_ANY, 0);
|
||||
|
||||
/* info space */
|
||||
keymap = WM_keymap_find(keyconf, "Info", SPACE_INFO, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Info", SPACE_INFO, 0);
|
||||
|
||||
|
||||
/* report selection */
|
||||
|
373
source/blender/editors/space_logic/space_logic.c
Normal file
373
source/blender/editors/space_logic/space_logic.c
Normal file
@ -0,0 +1,373 @@
|
||||
/*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2009 Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Contributor(s): Blender Foundation
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/** \file blender/editors/space_logic/space_logic.c
|
||||
* \ingroup splogic
|
||||
*/
|
||||
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "DNA_gpencil_types.h"
|
||||
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_screen.h"
|
||||
|
||||
#include "ED_space_api.h"
|
||||
#include "ED_screen.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
||||
#include "UI_resources.h"
|
||||
#include "UI_view2d.h"
|
||||
|
||||
#include "logic_intern.h"
|
||||
|
||||
/* ******************** manage regions ********************* */
|
||||
|
||||
ARegion *logic_has_buttons_region(ScrArea *sa)
|
||||
{
|
||||
ARegion *ar, *arnew;
|
||||
|
||||
ar = BKE_area_find_region_type(sa, RGN_TYPE_UI);
|
||||
if (ar) return ar;
|
||||
|
||||
/* add subdiv level; after header */
|
||||
ar = BKE_area_find_region_type(sa, RGN_TYPE_HEADER);
|
||||
|
||||
/* is error! */
|
||||
if (ar == NULL) return NULL;
|
||||
|
||||
arnew= MEM_callocN(sizeof(ARegion), "buttons for image");
|
||||
|
||||
BLI_insertlinkafter(&sa->regionbase, ar, arnew);
|
||||
arnew->regiontype = RGN_TYPE_UI;
|
||||
arnew->alignment = RGN_ALIGN_RIGHT;
|
||||
|
||||
arnew->flag = RGN_FLAG_HIDDEN;
|
||||
|
||||
return arnew;
|
||||
}
|
||||
|
||||
/* ******************** default callbacks for image space ***************** */
|
||||
|
||||
static SpaceLink *logic_new(const bContext *C)
|
||||
{
|
||||
ScrArea *sa= CTX_wm_area(C);
|
||||
ARegion *ar;
|
||||
SpaceLogic *slogic;
|
||||
|
||||
slogic= MEM_callocN(sizeof(SpaceLogic), "initlogic");
|
||||
slogic->spacetype= SPACE_LOGIC;
|
||||
|
||||
/* default options */
|
||||
slogic->scaflag = ((BUTS_SENS_SEL|BUTS_SENS_ACT|BUTS_SENS_LINK) |
|
||||
(BUTS_CONT_SEL|BUTS_CONT_ACT|BUTS_CONT_LINK) |
|
||||
(BUTS_ACT_SEL|BUTS_ACT_ACT|BUTS_ACT_LINK) |
|
||||
(BUTS_SENS_STATE|BUTS_ACT_STATE));
|
||||
|
||||
|
||||
/* header */
|
||||
ar= MEM_callocN(sizeof(ARegion), "header for logic");
|
||||
|
||||
BLI_addtail(&slogic->regionbase, ar);
|
||||
ar->regiontype= RGN_TYPE_HEADER;
|
||||
ar->alignment= RGN_ALIGN_BOTTOM;
|
||||
|
||||
/* buttons/list view */
|
||||
ar= MEM_callocN(sizeof(ARegion), "buttons for logic");
|
||||
|
||||
BLI_addtail(&slogic->regionbase, ar);
|
||||
ar->regiontype= RGN_TYPE_UI;
|
||||
ar->alignment= RGN_ALIGN_RIGHT;
|
||||
|
||||
/* main region */
|
||||
ar= MEM_callocN(sizeof(ARegion), "main region for logic");
|
||||
|
||||
BLI_addtail(&slogic->regionbase, ar);
|
||||
ar->regiontype= RGN_TYPE_WINDOW;
|
||||
|
||||
ar->v2d.tot.xmin = 0.0f;
|
||||
ar->v2d.tot.ymax = 0.0f;
|
||||
ar->v2d.tot.xmax = 1150.0f;
|
||||
ar->v2d.tot.ymin = ( 1150.0f/(float)sa->winx ) * (float)-sa->winy;
|
||||
|
||||
ar->v2d.cur = ar->v2d.tot;
|
||||
|
||||
ar->v2d.min[0] = 1.0f;
|
||||
ar->v2d.min[1] = 1.0f;
|
||||
|
||||
ar->v2d.max[0] = 32000.0f;
|
||||
ar->v2d.max[1] = 32000.0f;
|
||||
|
||||
ar->v2d.minzoom = 0.5f;
|
||||
ar->v2d.maxzoom = 1.5f;
|
||||
|
||||
ar->v2d.scroll = (V2D_SCROLL_RIGHT | V2D_SCROLL_BOTTOM);
|
||||
ar->v2d.keepzoom = V2D_KEEPZOOM | V2D_LIMITZOOM | V2D_KEEPASPECT;
|
||||
ar->v2d.keeptot = V2D_KEEPTOT_BOUNDS;
|
||||
ar->v2d.align = V2D_ALIGN_NO_POS_Y | V2D_ALIGN_NO_NEG_X;
|
||||
ar->v2d.keepofs = V2D_KEEPOFS_Y;
|
||||
|
||||
return (SpaceLink *)slogic;
|
||||
}
|
||||
|
||||
/* not spacelink itself */
|
||||
static void logic_free(SpaceLink *UNUSED(sl))
|
||||
{
|
||||
// Spacelogic *slogic= (SpaceLogic *) sl;
|
||||
|
||||
// if (slogic->gpd)
|
||||
// XXX BKE_gpencil_free(slogic->gpd);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* spacetype; init callback */
|
||||
static void logic_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static SpaceLink *logic_duplicate(SpaceLink *sl)
|
||||
{
|
||||
SpaceLogic *slogicn= MEM_dupallocN(sl);
|
||||
|
||||
return (SpaceLink *)slogicn;
|
||||
}
|
||||
|
||||
static void logic_operatortypes(void)
|
||||
{
|
||||
WM_operatortype_append(LOGIC_OT_properties);
|
||||
WM_operatortype_append(LOGIC_OT_links_cut);
|
||||
}
|
||||
|
||||
static void logic_keymap(struct wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Logic Editor", SPACE_LOGIC, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "LOGIC_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "LOGIC_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
|
||||
WM_keymap_add_menu(keymap, "LOGIC_MT_logicbricks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "LOGIC_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
|
||||
#ifdef WITH_INPUT_NDOF
|
||||
WM_keymap_add_item(keymap, "LOGIC_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void logic_refresh(const bContext *UNUSED(C), ScrArea *UNUSED(sa))
|
||||
{
|
||||
// SpaceLogic *slogic= CTX_wm_space_logic(C);
|
||||
// Object *obedit= CTX_data_edit_object(C);
|
||||
|
||||
}
|
||||
|
||||
static void logic_listener(bScreen *UNUSED(sc), ScrArea *UNUSED(sa), ARegion *ar, wmNotifier *wmn)
|
||||
{
|
||||
/* context changes */
|
||||
switch (wmn->category) {
|
||||
case NC_LOGIC:
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
case NC_SCENE:
|
||||
switch (wmn->data) {
|
||||
case ND_FRAME:
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
|
||||
case ND_OB_ACTIVE:
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case NC_OBJECT:
|
||||
break;
|
||||
case NC_ID:
|
||||
if (wmn->action == NA_RENAME)
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static int logic_context(const bContext *UNUSED(C), const char *UNUSED(member), bContextDataResult *UNUSED(result))
|
||||
{
|
||||
// SpaceLogic *slogic= CTX_wm_space_logic(C);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/************************** main region ***************************/
|
||||
|
||||
|
||||
/* add handlers, stuff you only do once or on area/region changes */
|
||||
static void logic_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
{
|
||||
wmKeyMap *keymap;
|
||||
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
/* own keymaps */
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Logic Editor", SPACE_LOGIC, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
static void logic_main_region_draw(const bContext *C, ARegion *ar)
|
||||
{
|
||||
/* draw entirely, view changes should be handled here */
|
||||
// SpaceLogic *slogic= CTX_wm_space_logic(C);
|
||||
View2D *v2d= &ar->v2d;
|
||||
View2DScrollers *scrollers;
|
||||
|
||||
/* clear and setup matrix */
|
||||
UI_ThemeClearColor(TH_BACK);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
UI_view2d_view_ortho(v2d);
|
||||
|
||||
logic_buttons((bContext *)C, ar);
|
||||
|
||||
/* reset view matrix */
|
||||
UI_view2d_view_restore(C);
|
||||
|
||||
/* scrollers */
|
||||
scrollers= UI_view2d_scrollers_calc(C, v2d, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
|
||||
UI_view2d_scrollers_draw(C, v2d, scrollers);
|
||||
UI_view2d_scrollers_free(scrollers);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* *********************** buttons region ************************ */
|
||||
|
||||
/* add handlers, stuff you only do once or on area/region changes */
|
||||
static void logic_buttons_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
{
|
||||
wmKeyMap *keymap;
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Logic Editor", SPACE_LOGIC, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
static void logic_buttons_region_draw(const bContext *C, ARegion *ar)
|
||||
{
|
||||
ED_region_panels(C, ar, NULL, -1, true);
|
||||
}
|
||||
|
||||
/************************* header region **************************/
|
||||
|
||||
/* add handlers, stuff you only do once or on area/region changes */
|
||||
static void logic_header_region_init(wmWindowManager *UNUSED(wm), ARegion *ar)
|
||||
{
|
||||
ED_region_header_init(ar);
|
||||
}
|
||||
|
||||
static void logic_header_region_draw(const bContext *C, ARegion *ar)
|
||||
{
|
||||
ED_region_header(C, ar);
|
||||
}
|
||||
|
||||
/**************************** spacetype *****************************/
|
||||
|
||||
static void logic_id_remap(ScrArea *UNUSED(sa), SpaceLink *slink, ID *old_id, ID *new_id)
|
||||
{
|
||||
SpaceLogic *slog = (SpaceLogic *)slink;
|
||||
|
||||
if (!ELEM(GS(old_id->name), ID_GD)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((ID *)slog->gpd == old_id) {
|
||||
slog->gpd = (bGPdata *)new_id;
|
||||
id_us_min(old_id);
|
||||
id_us_plus(new_id);
|
||||
}
|
||||
}
|
||||
|
||||
/* only called once, from space/spacetypes.c */
|
||||
void ED_spacetype_logic(void)
|
||||
{
|
||||
SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype logic");
|
||||
ARegionType *art;
|
||||
|
||||
st->spaceid = SPACE_LOGIC;
|
||||
strncpy(st->name, "Logic", BKE_ST_MAXNAME);
|
||||
|
||||
st->new = logic_new;
|
||||
st->free = logic_free;
|
||||
st->init = logic_init;
|
||||
st->duplicate = logic_duplicate;
|
||||
st->operatortypes = logic_operatortypes;
|
||||
st->keymap = logic_keymap;
|
||||
st->refresh = logic_refresh;
|
||||
st->context = logic_context;
|
||||
st->id_remap = logic_id_remap;
|
||||
|
||||
/* regions: main window */
|
||||
art = MEM_callocN(sizeof(ARegionType), "spacetype logic region");
|
||||
art->regionid = RGN_TYPE_WINDOW;
|
||||
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES | ED_KEYMAP_VIEW2D;
|
||||
art->init = logic_main_region_init;
|
||||
art->draw = logic_main_region_draw;
|
||||
art->listener = logic_listener;
|
||||
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
/* regions: listview/buttons */
|
||||
art = MEM_callocN(sizeof(ARegionType), "spacetype logic region");
|
||||
art->regionid = RGN_TYPE_UI;
|
||||
art->prefsizex= 220; // XXX
|
||||
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_FRAMES;
|
||||
art->listener = logic_listener;
|
||||
art->init = logic_buttons_region_init;
|
||||
art->draw = logic_buttons_region_draw;
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
/* regions: header */
|
||||
art= MEM_callocN(sizeof(ARegionType), "spacetype logic region");
|
||||
art->regionid = RGN_TYPE_HEADER;
|
||||
art->prefsizey = HEADERY;
|
||||
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_FRAMES | ED_KEYMAP_HEADER;
|
||||
art->init = logic_header_region_init;
|
||||
art->draw = logic_header_region_draw;
|
||||
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
BKE_spacetype_register(st);
|
||||
}
|
@ -314,7 +314,7 @@ void nla_keymap(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* keymap for all regions ------------------------------------------- */
|
||||
keymap = WM_keymap_find(keyconf, "NLA Generic", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "NLA Generic", SPACE_NLA, 0);
|
||||
|
||||
/* region management */
|
||||
WM_keymap_add_item(keymap, "NLA_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
@ -346,10 +346,10 @@ void nla_keymap(wmKeyConfig *keyconf)
|
||||
*
|
||||
* However, those operations which involve clicking on channels and/or the placement of them in the view are implemented here instead
|
||||
*/
|
||||
keymap = WM_keymap_find(keyconf, "NLA Channels", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "NLA Channels", SPACE_NLA, 0);
|
||||
nla_keymap_channels(keymap);
|
||||
|
||||
/* data ------------------------------------------------------------- */
|
||||
keymap = WM_keymap_find(keyconf, "NLA Editor", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "NLA Editor", SPACE_NLA, 0);
|
||||
nla_keymap_main(keyconf, keymap);
|
||||
}
|
||||
|
@ -214,13 +214,13 @@ static void nla_channel_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
/* own keymap */
|
||||
/* own channels map first to override some channel keymaps */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "NLA Channels", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "NLA Channels", SPACE_NLA, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
/* now generic channels map for everything else that can apply */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Animation Channels", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Animation Channels", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "NLA Generic", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "NLA Generic", SPACE_NLA, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -260,9 +260,9 @@ static void nla_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "NLA Editor", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "NLA Editor", SPACE_NLA, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
keymap = WM_keymap_find(wm->defaultconf, "NLA Generic", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "NLA Generic", SPACE_NLA, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -355,7 +355,7 @@ static void nla_buttons_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "NLA Generic", SPACE_NLA, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "NLA Generic", SPACE_NLA, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
|
@ -231,13 +231,13 @@ void node_keymap(struct wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* Entire Editor only ----------------- */
|
||||
keymap = WM_keymap_find(keyconf, "Node Generic", SPACE_NODE, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "NODE_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "NODE_OT_toolbar", TKEY, KM_PRESS, 0, 0);
|
||||
|
||||
/* Main Region only ----------------- */
|
||||
keymap = WM_keymap_find(keyconf, "Node Editor", SPACE_NODE, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
|
||||
|
||||
/* mouse select in nodes used to be both keys, but perhaps this should be reduced?
|
||||
* NOTE: mouse-clicks on left-mouse will fall through to allow transform-tweak, but also link/resize
|
||||
|
@ -596,7 +596,7 @@ static void node_buttons_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -612,7 +612,7 @@ static void node_toolbar_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -655,10 +655,10 @@ static void node_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
WM_gizmomap_add_handlers(ar, ar->gizmo_map);
|
||||
|
||||
/* own keymaps */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Node Generic", SPACE_NODE, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Node Editor", SPACE_NODE, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Node Editor", SPACE_NODE, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* add drop boxes */
|
||||
|
@ -120,7 +120,7 @@ void outliner_operatortypes(void)
|
||||
|
||||
void outliner_keymap(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Outliner", SPACE_OUTLINER, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Outliner", SPACE_OUTLINER, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
WM_keymap_add_item(keymap, "OUTLINER_OT_highlight_update", MOUSEMOVE, KM_ANY, KM_ANY, 0);
|
||||
|
@ -84,7 +84,7 @@ static void outliner_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Outliner", SPACE_OUTLINER, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Outliner", SPACE_OUTLINER, 0);
|
||||
/* don't pass on view2d mask, it's always set with scrollbar space, hide fails */
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, NULL, &ar->winrct);
|
||||
|
||||
|
@ -133,7 +133,7 @@ static void script_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Script", SPACE_SCRIPT, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Script", SPACE_SCRIPT, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
|
@ -138,7 +138,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* Common items ------------------------------------------------------------------ */
|
||||
keymap = WM_keymap_find(keyconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
|
||||
@ -149,7 +149,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_toggle", TABKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
||||
/* Strips Region --------------------------------------------------------------- */
|
||||
keymap = WM_keymap_find(keyconf, "Sequencer", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Sequencer", SPACE_SEQ, 0);
|
||||
|
||||
kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_all", AKEY, KM_PRESS, 0, 0);
|
||||
RNA_enum_set(kmi->ptr, "action", SEL_SELECT);
|
||||
@ -343,7 +343,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
|
||||
|
||||
|
||||
/* Preview Region ----------------------------------------------------------- */
|
||||
keymap = WM_keymap_find(keyconf, "SequencerPreview", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "SequencerPreview", SPACE_SEQ, 0);
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, KM_PRESS, 0, 0);
|
||||
#ifdef WITH_INPUT_NDOF
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
|
||||
|
@ -471,15 +471,15 @@ static void sequencer_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
#if 0
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
#endif
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Sequencer", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Sequencer", SPACE_SEQ, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* add drop boxes */
|
||||
@ -594,15 +594,15 @@ static void sequencer_preview_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
#if 0
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Mask Editing", 0, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
#endif
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "SequencerPreview", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "SequencerPreview", SPACE_SEQ, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
@ -699,7 +699,7 @@ static void sequencer_buttons_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
{
|
||||
wmKeyMap *keymap;
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "SequencerCommon", SPACE_SEQ, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
@ -244,7 +244,7 @@ static void text_keymap(struct wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Text Generic", SPACE_TEXT, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Text Generic", SPACE_TEXT, 0);
|
||||
WM_keymap_add_item(keymap, "TEXT_OT_start_find", FKEY, KM_PRESS, KM_CTRL, 0);
|
||||
#ifdef __APPLE__
|
||||
WM_keymap_add_item(keymap, "TEXT_OT_start_find", FKEY, KM_PRESS, KM_OSKEY, 0);
|
||||
@ -254,7 +254,7 @@ static void text_keymap(struct wmKeyConfig *keyconf)
|
||||
WM_keymap_add_item(keymap, "TEXT_OT_replace", HKEY, KM_PRESS, KM_CTRL, 0);
|
||||
WM_keymap_add_item(keymap, "TEXT_OT_properties", TKEY, KM_PRESS, KM_CTRL, 0);
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "Text", SPACE_TEXT, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "Text", SPACE_TEXT, 0);
|
||||
|
||||
#ifdef __APPLE__
|
||||
RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
|
||||
@ -426,9 +426,9 @@ static void text_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_STANDARD, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Text Generic", SPACE_TEXT, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Text Generic", SPACE_TEXT, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Text", SPACE_TEXT, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Text", SPACE_TEXT, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
/* add drop boxes */
|
||||
@ -543,7 +543,7 @@ static void text_properties_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
/* own keymaps */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Text Generic", SPACE_TEXT, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Text Generic", SPACE_TEXT, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
|
||||
}
|
||||
|
834
source/blender/editors/space_time/space_time.c
Normal file
834
source/blender/editors/space_time/space_time.c
Normal file
@ -0,0 +1,834 @@
|
||||
/*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2008 Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Contributor(s): Blender Foundation
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/** \file blender/editors/space_time/space_time.c
|
||||
* \ingroup sptime
|
||||
*/
|
||||
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "DNA_cachefile_types.h"
|
||||
#include "DNA_constraint_types.h"
|
||||
#include "DNA_gpencil_types.h"
|
||||
#include "DNA_modifier_types.h"
|
||||
#include "DNA_object_types.h"
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "MEM_guardedalloc.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
#include "BLI_dlrbTree.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_constraint.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_modifier.h"
|
||||
#include "BKE_screen.h"
|
||||
#include "BKE_pointcache.h"
|
||||
|
||||
#include "ED_anim_api.h"
|
||||
#include "ED_keyframes_draw.h"
|
||||
#include "ED_screen.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_glutil.h"
|
||||
|
||||
#include "UI_resources.h"
|
||||
#include "UI_view2d.h"
|
||||
#include "UI_interface.h"
|
||||
|
||||
#include "ED_space_api.h"
|
||||
#include "ED_markers.h"
|
||||
|
||||
#include "time_intern.h"
|
||||
|
||||
/* ************************ main time area region *********************** */
|
||||
|
||||
static void time_draw_sfra_efra(Scene *scene, View2D *v2d)
|
||||
{
|
||||
/* draw darkened area outside of active timeline
|
||||
* frame range used is preview range or scene range
|
||||
*/
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glEnable(GL_BLEND);
|
||||
glColor4f(0.0f, 0.0f, 0.0f, 0.4f);
|
||||
|
||||
if (PSFRA < PEFRA) {
|
||||
glRectf(v2d->cur.xmin, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax);
|
||||
glRectf((float)PEFRA, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax);
|
||||
}
|
||||
else {
|
||||
glRectf(v2d->cur.xmin, v2d->cur.ymin, v2d->cur.xmax, v2d->cur.ymax);
|
||||
}
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
UI_ThemeColorShade(TH_BACK, -60);
|
||||
/* thin lines where the actual frames are */
|
||||
fdrawline((float)PSFRA, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax);
|
||||
fdrawline((float)PEFRA, v2d->cur.ymin, (float)PEFRA, v2d->cur.ymax);
|
||||
}
|
||||
|
||||
static void time_draw_cache(Main *bmain, SpaceTime *stime, Object *ob, Scene *scene)
|
||||
{
|
||||
PTCacheID *pid;
|
||||
ListBase pidlist;
|
||||
SpaceTimeCache *stc = stime->caches.first;
|
||||
const float cache_draw_height = (4.0f * UI_DPI_FAC * U.pixelsize);
|
||||
float yoffs = 0.f;
|
||||
|
||||
if (!(stime->cache_display & TIME_CACHE_DISPLAY) || (!ob))
|
||||
return;
|
||||
|
||||
BKE_ptcache_ids_from_object(bmain, &pidlist, ob, scene, 0);
|
||||
|
||||
/* iterate over pointcaches on the active object,
|
||||
* add spacetimecache and vertex array for each */
|
||||
for (pid = pidlist.first; pid; pid = pid->next) {
|
||||
float col[4], *fp;
|
||||
int i, sta = pid->cache->startframe, end = pid->cache->endframe;
|
||||
int len = (end - sta + 1) * 4;
|
||||
|
||||
switch (pid->type) {
|
||||
case PTCACHE_TYPE_SOFTBODY:
|
||||
if (!(stime->cache_display & TIME_CACHE_SOFTBODY)) continue;
|
||||
break;
|
||||
case PTCACHE_TYPE_PARTICLES:
|
||||
if (!(stime->cache_display & TIME_CACHE_PARTICLES)) continue;
|
||||
break;
|
||||
case PTCACHE_TYPE_CLOTH:
|
||||
if (!(stime->cache_display & TIME_CACHE_CLOTH)) continue;
|
||||
break;
|
||||
case PTCACHE_TYPE_SMOKE_DOMAIN:
|
||||
case PTCACHE_TYPE_SMOKE_HIGHRES:
|
||||
if (!(stime->cache_display & TIME_CACHE_SMOKE)) continue;
|
||||
break;
|
||||
case PTCACHE_TYPE_DYNAMICPAINT:
|
||||
if (!(stime->cache_display & TIME_CACHE_DYNAMICPAINT)) continue;
|
||||
break;
|
||||
case PTCACHE_TYPE_RIGIDBODY:
|
||||
if (!(stime->cache_display & TIME_CACHE_RIGIDBODY)) continue;
|
||||
break;
|
||||
}
|
||||
|
||||
if (pid->cache->cached_frames == NULL)
|
||||
continue;
|
||||
|
||||
/* make sure we have stc with correct array length */
|
||||
if (stc == NULL || MEM_allocN_len(stc->array) != len * 2 * sizeof(float)) {
|
||||
if (stc) {
|
||||
MEM_freeN(stc->array);
|
||||
}
|
||||
else {
|
||||
stc = MEM_callocN(sizeof(SpaceTimeCache), "spacetimecache");
|
||||
BLI_addtail(&stime->caches, stc);
|
||||
}
|
||||
|
||||
stc->array = MEM_callocN(len * 2 * sizeof(float), "SpaceTimeCache array");
|
||||
}
|
||||
|
||||
/* fill the vertex array with a quad for each cached frame */
|
||||
for (i = sta, fp = stc->array; i <= end; i++) {
|
||||
if (pid->cache->cached_frames[i - sta]) {
|
||||
fp[0] = (float)i - 0.5f;
|
||||
fp[1] = 0.0;
|
||||
fp += 2;
|
||||
|
||||
fp[0] = (float)i - 0.5f;
|
||||
fp[1] = 1.0;
|
||||
fp += 2;
|
||||
|
||||
fp[0] = (float)i + 0.5f;
|
||||
fp[1] = 1.0;
|
||||
fp += 2;
|
||||
|
||||
fp[0] = (float)i + 0.5f;
|
||||
fp[1] = 0.0;
|
||||
fp += 2;
|
||||
}
|
||||
}
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(0.0, (float)V2D_SCROLL_HEIGHT + yoffs, 0.0);
|
||||
glScalef(1.0, cache_draw_height, 0.0);
|
||||
|
||||
switch (pid->type) {
|
||||
case PTCACHE_TYPE_SOFTBODY:
|
||||
col[0] = 1.0; col[1] = 0.4; col[2] = 0.02;
|
||||
col[3] = 0.1;
|
||||
break;
|
||||
case PTCACHE_TYPE_PARTICLES:
|
||||
col[0] = 1.0; col[1] = 0.1; col[2] = 0.02;
|
||||
col[3] = 0.1;
|
||||
break;
|
||||
case PTCACHE_TYPE_CLOTH:
|
||||
col[0] = 0.1; col[1] = 0.1; col[2] = 0.75;
|
||||
col[3] = 0.1;
|
||||
break;
|
||||
case PTCACHE_TYPE_SMOKE_DOMAIN:
|
||||
case PTCACHE_TYPE_SMOKE_HIGHRES:
|
||||
col[0] = 0.2; col[1] = 0.2; col[2] = 0.2;
|
||||
col[3] = 0.1;
|
||||
break;
|
||||
case PTCACHE_TYPE_DYNAMICPAINT:
|
||||
col[0] = 1.0; col[1] = 0.1; col[2] = 0.75;
|
||||
col[3] = 0.1;
|
||||
break;
|
||||
case PTCACHE_TYPE_RIGIDBODY:
|
||||
col[0] = 1.0; col[1] = 0.6; col[2] = 0.0;
|
||||
col[3] = 0.1;
|
||||
break;
|
||||
default:
|
||||
col[0] = 1.0; col[1] = 0.0; col[2] = 1.0;
|
||||
col[3] = 0.1;
|
||||
BLI_assert(0);
|
||||
break;
|
||||
}
|
||||
glColor4fv(col);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
|
||||
glRectf((float)sta, 0.0, (float)end, 1.0);
|
||||
|
||||
col[3] = 0.4f;
|
||||
if (pid->cache->flag & PTCACHE_BAKED) {
|
||||
col[0] -= 0.4f; col[1] -= 0.4f; col[2] -= 0.4f;
|
||||
}
|
||||
else if (pid->cache->flag & PTCACHE_OUTDATED) {
|
||||
col[0] += 0.4f; col[1] += 0.4f; col[2] += 0.4f;
|
||||
}
|
||||
glColor4fv(col);
|
||||
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
glVertexPointer(2, GL_FLOAT, 0, stc->array);
|
||||
glDrawArrays(GL_QUADS, 0, (fp - stc->array) / 2);
|
||||
glDisableClientState(GL_VERTEX_ARRAY);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
glPopMatrix();
|
||||
|
||||
yoffs += cache_draw_height;
|
||||
|
||||
stc = stc->next;
|
||||
}
|
||||
|
||||
BLI_freelistN(&pidlist);
|
||||
|
||||
/* free excessive caches */
|
||||
while (stc) {
|
||||
SpaceTimeCache *tmp = stc->next;
|
||||
BLI_remlink(&stime->caches, stc);
|
||||
MEM_freeN(stc->array);
|
||||
MEM_freeN(stc);
|
||||
stc = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
static void time_cache_free(SpaceTime *stime)
|
||||
{
|
||||
SpaceTimeCache *stc;
|
||||
|
||||
for (stc = stime->caches.first; stc; stc = stc->next) {
|
||||
if (stc->array) {
|
||||
MEM_freeN(stc->array);
|
||||
stc->array = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
BLI_freelistN(&stime->caches);
|
||||
}
|
||||
|
||||
static void time_cache_refresh(SpaceTime *stime)
|
||||
{
|
||||
/* Free previous caches to indicate full refresh */
|
||||
time_cache_free(stime);
|
||||
}
|
||||
|
||||
/* helper function - find actkeycolumn that occurs on cframe, or the nearest one if not found */
|
||||
static ActKeyColumn *time_cfra_find_ak(ActKeyColumn *ak, float cframe)
|
||||
{
|
||||
ActKeyColumn *akn = NULL;
|
||||
|
||||
/* sanity checks */
|
||||
if (ak == NULL)
|
||||
return NULL;
|
||||
|
||||
/* check if this is a match, or whether it is in some subtree */
|
||||
if (cframe < ak->cfra)
|
||||
akn = time_cfra_find_ak(ak->left, cframe);
|
||||
else if (cframe > ak->cfra)
|
||||
akn = time_cfra_find_ak(ak->right, cframe);
|
||||
|
||||
/* if no match found (or found match), just use the current one */
|
||||
if (akn == NULL)
|
||||
return ak;
|
||||
else
|
||||
return akn;
|
||||
}
|
||||
|
||||
/* helper for time_draw_keyframes() */
|
||||
static void time_draw_idblock_keyframes(View2D *v2d, ID *id, short onlysel)
|
||||
{
|
||||
bDopeSheet ads = {NULL};
|
||||
DLRBT_Tree keys;
|
||||
ActKeyColumn *ak;
|
||||
|
||||
float fac1 = (GS(id->name) == ID_GD) ? 0.8f : 0.6f; /* draw GPencil keys taller, to help distinguish them */
|
||||
float fac2 = 1.0f - fac1;
|
||||
|
||||
float ymin = v2d->tot.ymin;
|
||||
float ymax = v2d->tot.ymax * fac1 + ymin * fac2;
|
||||
|
||||
/* init binarytree-list for getting keyframes */
|
||||
BLI_dlrbTree_init(&keys);
|
||||
|
||||
/* init dopesheet settings */
|
||||
if (onlysel)
|
||||
ads.filterflag |= ADS_FILTER_ONLYSEL;
|
||||
|
||||
/* populate tree with keyframe nodes */
|
||||
switch (GS(id->name)) {
|
||||
case ID_SCE:
|
||||
scene_to_keylist(&ads, (Scene *)id, &keys, NULL);
|
||||
break;
|
||||
case ID_OB:
|
||||
ob_to_keylist(&ads, (Object *)id, &keys, NULL);
|
||||
break;
|
||||
case ID_GD:
|
||||
gpencil_to_keylist(&ads, (bGPdata *)id, &keys);
|
||||
break;
|
||||
case ID_CF:
|
||||
cachefile_to_keylist(&ads, (CacheFile *)id, &keys, NULL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* build linked-list for searching */
|
||||
BLI_dlrbTree_linkedlist_sync(&keys);
|
||||
|
||||
/* start drawing keyframes
|
||||
* - we use the binary-search capabilities of the tree to only start from
|
||||
* the first visible keyframe (last one can then be easily checked)
|
||||
* - draw within a single GL block to be faster
|
||||
*/
|
||||
glBegin(GL_LINES);
|
||||
for (ak = time_cfra_find_ak(keys.root, v2d->cur.xmin);
|
||||
(ak) && (ak->cfra <= v2d->cur.xmax);
|
||||
ak = ak->next)
|
||||
{
|
||||
glVertex2f(ak->cfra, ymin);
|
||||
glVertex2f(ak->cfra, ymax);
|
||||
}
|
||||
glEnd(); // GL_LINES
|
||||
|
||||
/* free temp stuff */
|
||||
BLI_dlrbTree_free(&keys);
|
||||
}
|
||||
|
||||
static void time_draw_caches_keyframes(Main *bmain, Scene *scene, View2D *v2d, bool onlysel)
|
||||
{
|
||||
CacheFile *cache_file;
|
||||
|
||||
for (cache_file = bmain->cachefiles.first;
|
||||
cache_file;
|
||||
cache_file = cache_file->id.next)
|
||||
{
|
||||
cache_file->draw_flag &= ~CACHEFILE_KEYFRAME_DRAWN;
|
||||
}
|
||||
|
||||
for (Base *base = scene->base.first; base; base = base->next) {
|
||||
Object *ob = base->object;
|
||||
|
||||
ModifierData *md = modifiers_findByType(ob, eModifierType_MeshSequenceCache);
|
||||
|
||||
if (md) {
|
||||
MeshSeqCacheModifierData *mcmd = (MeshSeqCacheModifierData *)md;
|
||||
|
||||
cache_file = mcmd->cache_file;
|
||||
|
||||
if (!cache_file || (cache_file->draw_flag & CACHEFILE_KEYFRAME_DRAWN) != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
cache_file->draw_flag |= CACHEFILE_KEYFRAME_DRAWN;
|
||||
|
||||
time_draw_idblock_keyframes(v2d, (ID *)cache_file, onlysel);
|
||||
}
|
||||
|
||||
for (bConstraint *con = ob->constraints.first; con; con = con->next) {
|
||||
if (con->type != CONSTRAINT_TYPE_TRANSFORM_CACHE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
bTransformCacheConstraint *data = con->data;
|
||||
|
||||
cache_file = data->cache_file;
|
||||
|
||||
if (!cache_file || (cache_file->draw_flag & CACHEFILE_KEYFRAME_DRAWN) != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
cache_file->draw_flag |= CACHEFILE_KEYFRAME_DRAWN;
|
||||
|
||||
time_draw_idblock_keyframes(v2d, (ID *)cache_file, onlysel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* draw keyframe lines for timeline */
|
||||
static void time_draw_keyframes(const bContext *C, ARegion *ar)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Object *ob = CTX_data_active_object(C);
|
||||
View2D *v2d = &ar->v2d;
|
||||
bool onlysel = ((scene->flag & SCE_KEYS_NO_SELONLY) == 0);
|
||||
|
||||
/* set this for all keyframe lines once and for all */
|
||||
glLineWidth(1.0);
|
||||
|
||||
/* draw cache files keyframes (if available) */
|
||||
UI_ThemeColor(TH_TIME_KEYFRAME);
|
||||
time_draw_caches_keyframes(CTX_data_main(C), scene, v2d, onlysel);
|
||||
|
||||
/* draw grease pencil keyframes (if available) */
|
||||
UI_ThemeColor(TH_TIME_GP_KEYFRAME);
|
||||
if (scene->gpd) {
|
||||
time_draw_idblock_keyframes(v2d, (ID *)scene->gpd, onlysel);
|
||||
}
|
||||
if (ob && ob->gpd) {
|
||||
time_draw_idblock_keyframes(v2d, (ID *)ob->gpd, onlysel);
|
||||
}
|
||||
|
||||
/* draw scene keyframes first
|
||||
* - don't try to do this when only drawing active/selected data keyframes,
|
||||
* since this can become quite slow
|
||||
*/
|
||||
if (onlysel == 0) {
|
||||
/* set draw color */
|
||||
UI_ThemeColorShade(TH_TIME_KEYFRAME, -50);
|
||||
time_draw_idblock_keyframes(v2d, (ID *)scene, onlysel);
|
||||
}
|
||||
|
||||
/* draw keyframes from selected objects
|
||||
* - only do the active object if in posemode (i.e. showing only keyframes for the bones)
|
||||
* OR the onlysel flag was set, which means that only active object's keyframes should
|
||||
* be considered
|
||||
*/
|
||||
UI_ThemeColor(TH_TIME_KEYFRAME);
|
||||
|
||||
if (ob && ((ob->mode == OB_MODE_POSE) || onlysel)) {
|
||||
/* draw keyframes for active object only */
|
||||
time_draw_idblock_keyframes(v2d, (ID *)ob, onlysel);
|
||||
}
|
||||
else {
|
||||
bool active_done = false;
|
||||
|
||||
/* draw keyframes from all selected objects */
|
||||
CTX_DATA_BEGIN (C, Object *, obsel, selected_objects)
|
||||
{
|
||||
/* last arg is 0, since onlysel doesn't apply here... */
|
||||
time_draw_idblock_keyframes(v2d, (ID *)obsel, 0);
|
||||
|
||||
/* if this object is the active one, set flag so that we don't draw again */
|
||||
if (obsel == ob)
|
||||
active_done = true;
|
||||
}
|
||||
CTX_DATA_END;
|
||||
|
||||
/* if active object hasn't been done yet, draw it... */
|
||||
if (ob && (active_done == 0))
|
||||
time_draw_idblock_keyframes(v2d, (ID *)ob, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------- */
|
||||
|
||||
static void time_refresh(const bContext *UNUSED(C), ScrArea *sa)
|
||||
{
|
||||
/* find the main timeline region and refresh cache display*/
|
||||
ARegion *ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW);
|
||||
if (ar) {
|
||||
SpaceTime *stime = (SpaceTime *)sa->spacedata.first;
|
||||
time_cache_refresh(stime);
|
||||
}
|
||||
}
|
||||
|
||||
/* editor level listener */
|
||||
static void time_listener(bScreen *UNUSED(sc), ScrArea *sa, wmNotifier *wmn)
|
||||
{
|
||||
|
||||
/* mainly for updating cache display */
|
||||
switch (wmn->category) {
|
||||
case NC_OBJECT:
|
||||
{
|
||||
switch (wmn->data) {
|
||||
case ND_BONE_SELECT:
|
||||
case ND_BONE_ACTIVE:
|
||||
case ND_POINTCACHE:
|
||||
case ND_MODIFIER:
|
||||
case ND_PARTICLE:
|
||||
case ND_KEYS:
|
||||
ED_area_tag_refresh(sa);
|
||||
ED_area_tag_redraw(sa);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NC_SCENE:
|
||||
{
|
||||
switch (wmn->data) {
|
||||
case ND_RENDER_RESULT:
|
||||
ED_area_tag_redraw(sa);
|
||||
break;
|
||||
case ND_OB_ACTIVE:
|
||||
case ND_FRAME:
|
||||
ED_area_tag_refresh(sa);
|
||||
break;
|
||||
case ND_FRAME_RANGE:
|
||||
{
|
||||
ARegion *ar;
|
||||
Scene *scene = wmn->reference;
|
||||
|
||||
for (ar = sa->regionbase.first; ar; ar = ar->next) {
|
||||
if (ar->regiontype == RGN_TYPE_WINDOW) {
|
||||
ar->v2d.tot.xmin = (float)(SFRA - 4);
|
||||
ar->v2d.tot.xmax = (float)(EFRA + 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NC_SPACE:
|
||||
{
|
||||
switch (wmn->data) {
|
||||
case ND_SPACE_CHANGED:
|
||||
ED_area_tag_refresh(sa);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NC_WM:
|
||||
{
|
||||
switch (wmn->data) {
|
||||
case ND_FILEREAD:
|
||||
ED_area_tag_refresh(sa);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------- */
|
||||
|
||||
/* add handlers, stuff you only do once or on area/region changes */
|
||||
static void time_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
{
|
||||
wmKeyMap *keymap;
|
||||
|
||||
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
|
||||
|
||||
/* own keymap */
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Timeline", SPACE_TIME, 0);
|
||||
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
|
||||
}
|
||||
|
||||
static void time_main_region_draw(const bContext *C, ARegion *ar)
|
||||
{
|
||||
/* draw entirely, view changes should be handled here */
|
||||
Main *bmain = CTX_data_main(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SpaceTime *stime = CTX_wm_space_time(C);
|
||||
Object *obact = CTX_data_active_object(C);
|
||||
View2D *v2d = &ar->v2d;
|
||||
View2DGrid *grid;
|
||||
View2DScrollers *scrollers;
|
||||
int unit, flag = 0;
|
||||
|
||||
/* clear and setup matrix */
|
||||
UI_ThemeClearColor(TH_BACK);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
UI_view2d_view_ortho(v2d);
|
||||
|
||||
/* grid */
|
||||
unit = (stime->flag & TIME_DRAWFRAMES) ? V2D_UNIT_FRAMES : V2D_UNIT_SECONDS;
|
||||
grid = UI_view2d_grid_calc(scene, v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
|
||||
UI_view2d_grid_draw(v2d, grid, (V2D_VERTICAL_LINES | V2D_VERTICAL_AXIS));
|
||||
UI_view2d_grid_free(grid);
|
||||
|
||||
ED_region_draw_cb_draw(C, ar, REGION_DRAW_PRE_VIEW);
|
||||
|
||||
/* start and end frame */
|
||||
time_draw_sfra_efra(scene, v2d);
|
||||
|
||||
/* current frame */
|
||||
flag = DRAWCFRA_WIDE; /* this is only really needed on frames where there's a keyframe, but this will do... */
|
||||
if ((stime->flag & TIME_DRAWFRAMES) == 0) flag |= DRAWCFRA_UNIT_SECONDS;
|
||||
if (stime->flag & TIME_CFRA_NUM) flag |= DRAWCFRA_SHOW_NUMBOX;
|
||||
ANIM_draw_cfra(C, v2d, flag);
|
||||
|
||||
UI_view2d_view_ortho(v2d);
|
||||
|
||||
/* keyframes */
|
||||
time_draw_keyframes(C, ar);
|
||||
|
||||
/* markers */
|
||||
UI_view2d_view_orthoSpecial(ar, v2d, 1);
|
||||
ED_markers_draw(C, 0);
|
||||
|
||||
/* caches */
|
||||
time_draw_cache(bmain, stime, obact, scene);
|
||||
|
||||
/* callback */
|
||||
UI_view2d_view_ortho(v2d);
|
||||
ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
|
||||
|
||||
/* reset view matrix */
|
||||
UI_view2d_view_restore(C);
|
||||
|
||||
/* scrollers */
|
||||
scrollers = UI_view2d_scrollers_calc(C, v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY);
|
||||
UI_view2d_scrollers_draw(C, v2d, scrollers);
|
||||
UI_view2d_scrollers_free(scrollers);
|
||||
}
|
||||
|
||||
static void time_main_region_listener(bScreen *UNUSED(sc), ScrArea *UNUSED(sa), ARegion *ar, wmNotifier *wmn)
|
||||
{
|
||||
/* context changes */
|
||||
switch (wmn->category) {
|
||||
case NC_SPACE:
|
||||
if (wmn->data == ND_SPACE_TIME)
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
|
||||
case NC_ANIMATION:
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
|
||||
case NC_SCENE:
|
||||
switch (wmn->data) {
|
||||
case ND_OB_SELECT:
|
||||
case ND_OB_ACTIVE:
|
||||
case ND_FRAME:
|
||||
case ND_FRAME_RANGE:
|
||||
case ND_KEYINGSET:
|
||||
case ND_RENDER_OPTIONS:
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case NC_GPENCIL:
|
||||
if (wmn->data == ND_DATA)
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* ************************ header time area region *********************** */
|
||||
|
||||
/* add handlers, stuff you only do once or on area/region changes */
|
||||
static void time_header_region_init(wmWindowManager *UNUSED(wm), ARegion *ar)
|
||||
{
|
||||
ED_region_header_init(ar);
|
||||
}
|
||||
|
||||
static void time_header_region_draw(const bContext *C, ARegion *ar)
|
||||
{
|
||||
ED_region_header(C, ar);
|
||||
}
|
||||
|
||||
static void time_header_region_listener(bScreen *UNUSED(sc), ScrArea *UNUSED(sa), ARegion *ar, wmNotifier *wmn)
|
||||
{
|
||||
/* context changes */
|
||||
switch (wmn->category) {
|
||||
case NC_SCREEN:
|
||||
{
|
||||
if (wmn->data == ND_ANIMPLAY)
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
}
|
||||
case NC_SCENE:
|
||||
{
|
||||
switch (wmn->data) {
|
||||
case ND_RENDER_RESULT:
|
||||
case ND_OB_SELECT:
|
||||
case ND_FRAME:
|
||||
case ND_FRAME_RANGE:
|
||||
case ND_KEYINGSET:
|
||||
case ND_RENDER_OPTIONS:
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NC_SPACE:
|
||||
{
|
||||
if (wmn->data == ND_SPACE_TIME)
|
||||
ED_region_tag_redraw(ar);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ******************** default callbacks for time space ***************** */
|
||||
|
||||
static SpaceLink *time_new(const bContext *C)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
ARegion *ar;
|
||||
SpaceTime *stime;
|
||||
|
||||
stime = MEM_callocN(sizeof(SpaceTime), "inittime");
|
||||
|
||||
stime->spacetype = SPACE_TIME;
|
||||
stime->flag |= TIME_DRAWFRAMES;
|
||||
|
||||
/* header */
|
||||
ar = MEM_callocN(sizeof(ARegion), "header for time");
|
||||
|
||||
BLI_addtail(&stime->regionbase, ar);
|
||||
ar->regiontype = RGN_TYPE_HEADER;
|
||||
ar->alignment = RGN_ALIGN_BOTTOM;
|
||||
|
||||
/* main region */
|
||||
ar = MEM_callocN(sizeof(ARegion), "main region for time");
|
||||
|
||||
BLI_addtail(&stime->regionbase, ar);
|
||||
ar->regiontype = RGN_TYPE_WINDOW;
|
||||
|
||||
ar->v2d.tot.xmin = (float)(SFRA - 4);
|
||||
ar->v2d.tot.ymin = 0.0f;
|
||||
ar->v2d.tot.xmax = (float)(EFRA + 4);
|
||||
ar->v2d.tot.ymax = 50.0f;
|
||||
|
||||
ar->v2d.cur = ar->v2d.tot;
|
||||
|
||||
ar->v2d.min[0] = 1.0f;
|
||||
ar->v2d.min[1] = 50.0f;
|
||||
|
||||
ar->v2d.max[0] = MAXFRAMEF;
|
||||
ar->v2d.max[1] = 50.0;
|
||||
|
||||
ar->v2d.minzoom = 0.1f;
|
||||
ar->v2d.maxzoom = 10.0;
|
||||
|
||||
ar->v2d.scroll |= (V2D_SCROLL_BOTTOM | V2D_SCROLL_SCALE_HORIZONTAL);
|
||||
ar->v2d.align |= V2D_ALIGN_NO_NEG_Y;
|
||||
ar->v2d.keepofs |= V2D_LOCKOFS_Y;
|
||||
ar->v2d.keepzoom |= V2D_LOCKZOOM_Y;
|
||||
|
||||
|
||||
return (SpaceLink *)stime;
|
||||
}
|
||||
|
||||
/* not spacelink itself */
|
||||
static void time_free(SpaceLink *sl)
|
||||
{
|
||||
SpaceTime *stime = (SpaceTime *)sl;
|
||||
|
||||
time_cache_free(stime);
|
||||
}
|
||||
/* spacetype; init callback in ED_area_initialize() */
|
||||
/* init is called to (re)initialize an existing editor (file read, screen changes) */
|
||||
/* validate spacedata, add own area level handlers */
|
||||
static void time_init(wmWindowManager *UNUSED(wm), ScrArea *sa)
|
||||
{
|
||||
SpaceTime *stime = (SpaceTime *)sa->spacedata.first;
|
||||
|
||||
time_cache_free(stime);
|
||||
|
||||
/* enable all cache display */
|
||||
stime->cache_display |= TIME_CACHE_DISPLAY;
|
||||
stime->cache_display |= (TIME_CACHE_SOFTBODY | TIME_CACHE_PARTICLES);
|
||||
stime->cache_display |= (TIME_CACHE_CLOTH | TIME_CACHE_SMOKE | TIME_CACHE_DYNAMICPAINT);
|
||||
stime->cache_display |= TIME_CACHE_RIGIDBODY;
|
||||
}
|
||||
|
||||
static SpaceLink *time_duplicate(SpaceLink *sl)
|
||||
{
|
||||
SpaceTime *stime = (SpaceTime *)sl;
|
||||
SpaceTime *stimen = MEM_dupallocN(stime);
|
||||
|
||||
BLI_listbase_clear(&stimen->caches);
|
||||
|
||||
return (SpaceLink *)stimen;
|
||||
}
|
||||
|
||||
/* only called once, from space_api/spacetypes.c */
|
||||
/* it defines all callbacks to maintain spaces */
|
||||
void ED_spacetype_time(void)
|
||||
{
|
||||
SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype time");
|
||||
ARegionType *art;
|
||||
|
||||
st->spaceid = SPACE_TIME;
|
||||
strncpy(st->name, "Timeline", BKE_ST_MAXNAME);
|
||||
|
||||
st->new = time_new;
|
||||
st->free = time_free;
|
||||
st->init = time_init;
|
||||
st->duplicate = time_duplicate;
|
||||
st->operatortypes = time_operatortypes;
|
||||
st->keymap = NULL;
|
||||
st->listener = time_listener;
|
||||
st->refresh = time_refresh;
|
||||
|
||||
/* regions: main window */
|
||||
art = MEM_callocN(sizeof(ARegionType), "spacetype time region");
|
||||
art->regionid = RGN_TYPE_WINDOW;
|
||||
art->keymapflag = ED_KEYMAP_VIEW2D | ED_KEYMAP_MARKERS | ED_KEYMAP_ANIMATION | ED_KEYMAP_FRAMES;
|
||||
|
||||
art->init = time_main_region_init;
|
||||
art->draw = time_main_region_draw;
|
||||
art->listener = time_main_region_listener;
|
||||
art->keymap = time_keymap;
|
||||
art->lock = 1; /* Due to pointcache, see T4960. */
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
/* regions: header */
|
||||
art = MEM_callocN(sizeof(ARegionType), "spacetype time region");
|
||||
art->regionid = RGN_TYPE_HEADER;
|
||||
art->prefsizey = HEADERY;
|
||||
art->keymapflag = ED_KEYMAP_UI | ED_KEYMAP_VIEW2D | ED_KEYMAP_FRAMES | ED_KEYMAP_HEADER;
|
||||
|
||||
art->init = time_header_region_init;
|
||||
art->draw = time_header_region_draw;
|
||||
art->listener = time_header_region_listener;
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
BKE_spacetype_register(st);
|
||||
}
|
226
source/blender/editors/space_time/time_ops.c
Normal file
226
source/blender/editors/space_time/time_ops.c
Normal file
@ -0,0 +1,226 @@
|
||||
/*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2008 Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Contributor(s): Blender Foundation
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
*/
|
||||
|
||||
/** \file blender/editors/space_time/time_ops.c
|
||||
* \ingroup sptime
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "DNA_scene_types.h"
|
||||
|
||||
#include "BLI_blenlib.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_context.h"
|
||||
|
||||
#include "ED_anim_api.h"
|
||||
#include "ED_screen.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
||||
#include "time_intern.h"
|
||||
|
||||
/* ****************** Start/End Frame Operators *******************************/
|
||||
static int time_set_sfra_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
int frame;
|
||||
|
||||
if (scene == NULL)
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
frame = CFRA;
|
||||
|
||||
/* if Preview Range is defined, set the 'start' frame for that */
|
||||
if (PRVRANGEON)
|
||||
scene->r.psfra = frame;
|
||||
else
|
||||
scene->r.sfra = frame;
|
||||
|
||||
if (PEFRA < frame) {
|
||||
if (PRVRANGEON)
|
||||
scene->r.pefra = frame;
|
||||
else
|
||||
scene->r.efra = frame;
|
||||
}
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
static void TIME_OT_start_frame_set(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "Set Start Frame";
|
||||
ot->idname = "TIME_OT_start_frame_set";
|
||||
ot->description = "Set the start frame";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = time_set_sfra_exec;
|
||||
ot->poll = ED_operator_timeline_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
}
|
||||
|
||||
|
||||
static int time_set_efra_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
int frame;
|
||||
|
||||
if (scene == NULL)
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
frame = CFRA;
|
||||
|
||||
/* if Preview Range is defined, set the 'end' frame for that */
|
||||
if (PRVRANGEON)
|
||||
scene->r.pefra = frame;
|
||||
else
|
||||
scene->r.efra = frame;
|
||||
|
||||
if (PSFRA > frame) {
|
||||
if (PRVRANGEON)
|
||||
scene->r.psfra = frame;
|
||||
else
|
||||
scene->r.sfra = frame;
|
||||
}
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_FRAME, scene);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
static void TIME_OT_end_frame_set(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "Set End Frame";
|
||||
ot->idname = "TIME_OT_end_frame_set";
|
||||
ot->description = "Set the end frame";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = time_set_efra_exec;
|
||||
ot->poll = ED_operator_timeline_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
}
|
||||
|
||||
/* ************************ View All Operator *******************************/
|
||||
|
||||
static int time_view_all_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
ARegion *ar = CTX_wm_region(C);
|
||||
|
||||
if (ELEM(NULL, scene, ar))
|
||||
return OPERATOR_CANCELLED;
|
||||
|
||||
View2D *v2d = &ar->v2d;
|
||||
|
||||
/* set extents of view to start/end frames (Preview Range too) */
|
||||
v2d->cur.xmin = (float)PSFRA;
|
||||
v2d->cur.xmax = (float)PEFRA;
|
||||
|
||||
/* we need an extra "buffer" factor on either side so that the endpoints are visible */
|
||||
const float extra = 0.01f * BLI_rctf_size_x(&v2d->cur);
|
||||
v2d->cur.xmin -= extra;
|
||||
v2d->cur.xmax += extra;
|
||||
|
||||
/* this only affects this TimeLine instance, so just force redraw of this region */
|
||||
ED_region_tag_redraw(ar);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
static void TIME_OT_view_all(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "View All";
|
||||
ot->idname = "TIME_OT_view_all";
|
||||
ot->description = "Show the entire playable frame range";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = time_view_all_exec;
|
||||
ot->poll = ED_operator_timeline_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
}
|
||||
|
||||
/* ************************ View Frame Operator *******************************/
|
||||
|
||||
static int time_view_frame_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
|
||||
ANIM_center_frame(C, smooth_viewtx);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
static void TIME_OT_view_frame(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
ot->name = "View Frame";
|
||||
ot->idname = "TIME_OT_view_frame";
|
||||
ot->description = "Reset viewable area to show range around current frame";
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = time_view_frame_exec;
|
||||
ot->poll = ED_operator_timeline_active;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
}
|
||||
|
||||
/* ************************** registration **********************************/
|
||||
|
||||
void time_operatortypes(void)
|
||||
{
|
||||
WM_operatortype_append(TIME_OT_start_frame_set);
|
||||
WM_operatortype_append(TIME_OT_end_frame_set);
|
||||
WM_operatortype_append(TIME_OT_view_all);
|
||||
WM_operatortype_append(TIME_OT_view_frame);
|
||||
}
|
||||
|
||||
void time_keymap(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Timeline", SPACE_TIME, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "TIME_OT_start_frame_set", SKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "TIME_OT_end_frame_set", EKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "TIME_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
|
||||
#ifdef WITH_INPUT_NDOF
|
||||
WM_keymap_add_item(keymap, "TIME_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
|
||||
#endif
|
||||
WM_keymap_add_item(keymap, "TIME_OT_view_frame", PAD0, KM_PRESS, 0, 0);
|
||||
}
|
@ -128,7 +128,7 @@ static void topbar_main_region_init(wmWindowManager *wm, ARegion *region)
|
||||
}
|
||||
UI_view2d_region_reinit(®ion->v2d, V2D_COMMONVIEW_HEADER, region->winx, region->winy);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "View2D Buttons List", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "View2D Buttons List", 0, 0);
|
||||
WM_event_add_keymap_handler(®ion->handlers, keymap);
|
||||
}
|
||||
|
||||
|
@ -465,74 +465,74 @@ static void view3d_main_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
/* object ops. */
|
||||
|
||||
/* important to be before Pose keymap since they can both be enabled at once */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Face Mask", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Face Mask", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Weight Paint Vertex Selection", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Weight Paint Vertex Selection", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
/* pose is not modal, operator poll checks for this */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Pose", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Pose", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Object Mode", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Object Mode", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Paint Curve", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Paint Curve", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Curve", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Curve", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Image Paint", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Image Paint", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Vertex Paint", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Vertex Paint", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Weight Paint", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Weight Paint", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Sculpt", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Sculpt", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Mesh", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Mesh", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Curve", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Curve", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Armature", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Armature", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Pose", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Pose", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Metaball", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Metaball", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Lattice", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Lattice", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Particle", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Particle", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
/* editfont keymap swallows all... */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Font", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Font", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Object Non-modal", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Object Non-modal", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Frames", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Frames", 0, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
/* own keymap, last so modes can override it */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "3D View", SPACE_VIEW3D, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "3D View", SPACE_VIEW3D, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
/* add drop boxes */
|
||||
@ -1150,7 +1150,7 @@ static void view3d_main_region_cursor(wmWindow *win, ScrArea *sa, ARegion *ar)
|
||||
/* add handlers, stuff you only do once or on area/region changes */
|
||||
static void view3d_header_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
|
||||
@ -1231,7 +1231,7 @@ static void view3d_buttons_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
@ -1360,7 +1360,7 @@ static void view3d_tools_region_init(wmWindowManager *wm, ARegion *ar)
|
||||
|
||||
ED_region_panels_init(wm, ar);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
WM_event_add_keymap_handler(&ar->handlers, keymap);
|
||||
}
|
||||
|
||||
|
@ -237,13 +237,13 @@ void view3d_keymap(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "3D View Generic", SPACE_VIEW3D, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "VIEW3D_OT_properties", NKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "VIEW3D_OT_toolshelf", TKEY, KM_PRESS, 0, 0);
|
||||
|
||||
/* only for region 3D window */
|
||||
keymap = WM_keymap_find(keyconf, "3D View", SPACE_VIEW3D, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "3D View", SPACE_VIEW3D, 0);
|
||||
|
||||
WM_keymap_verify_item(keymap, "VIEW3D_OT_cursor3d", ACTIONMOUSE, KM_CLICK, 0, 0);
|
||||
|
||||
|
@ -4397,7 +4397,7 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf)
|
||||
wmKeyMap *keymap;
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
keymap = WM_keymap_find(keyconf, "UV Editor", 0, 0);
|
||||
keymap = WM_keymap_ensure(keyconf, "UV Editor", 0, 0);
|
||||
keymap->poll = ED_operator_uvedit_can_uv_sculpt;
|
||||
|
||||
#ifdef USE_WM_KEYMAP_27X
|
||||
|
@ -286,7 +286,7 @@ static void rna_KeyMap_item_remove(wmKeyMap *km, ReportList *reports, PointerRNA
|
||||
static wmKeyMap *rna_keymap_new(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid, bool modal)
|
||||
{
|
||||
if (modal == 0) {
|
||||
return WM_keymap_find(keyconf, idname, spaceid, regionid);
|
||||
return WM_keymap_ensure(keyconf, idname, spaceid, regionid);
|
||||
}
|
||||
else {
|
||||
return WM_modalkeymap_add(keyconf, idname, NULL); /* items will be lazy init */
|
||||
|
@ -78,7 +78,7 @@ bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *
|
||||
int WM_keymap_item_to_string(wmKeyMapItem *kmi, const bool compact, char *result, const int result_len);
|
||||
|
||||
wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid);
|
||||
wmKeyMap *WM_keymap_find(struct wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid);
|
||||
wmKeyMap *WM_keymap_ensure(struct wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid);
|
||||
wmKeyMap *WM_keymap_find_all(const struct bContext *C, const char *idname, int spaceid, int regionid);
|
||||
wmKeyMap *WM_keymap_active(struct wmWindowManager *wm, struct wmKeyMap *keymap);
|
||||
wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, const char *opname);
|
||||
|
@ -656,7 +656,7 @@ wmKeyMap *WM_gizmogroup_keymap_common(
|
||||
const wmGizmoGroupType *gzgt, wmKeyConfig *config)
|
||||
{
|
||||
/* Use area and region id since we might have multiple gizmos with the same name in different areas/regions */
|
||||
wmKeyMap *km = WM_keymap_find(config, gzgt->name, gzgt->gzmap_params.spaceid, gzgt->gzmap_params.regionid);
|
||||
wmKeyMap *km = WM_keymap_ensure(config, gzgt->name, gzgt->gzmap_params.spaceid, gzgt->gzmap_params.regionid);
|
||||
|
||||
WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", LEFTMOUSE, KM_PRESS, KM_ANY, 0);
|
||||
gizmogroup_tweak_modal_keymap(config, gzgt->name);
|
||||
@ -671,7 +671,7 @@ wmKeyMap *WM_gizmogroup_keymap_common_select(
|
||||
const wmGizmoGroupType *gzgt, wmKeyConfig *config)
|
||||
{
|
||||
/* Use area and region id since we might have multiple gizmos with the same name in different areas/regions */
|
||||
wmKeyMap *km = WM_keymap_find(config, gzgt->name, gzgt->gzmap_params.spaceid, gzgt->gzmap_params.regionid);
|
||||
wmKeyMap *km = WM_keymap_ensure(config, gzgt->name, gzgt->gzmap_params.spaceid, gzgt->gzmap_params.regionid);
|
||||
|
||||
WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", ACTIONMOUSE, KM_PRESS, KM_ANY, 0);
|
||||
WM_keymap_add_item(km, "GIZMOGROUP_OT_gizmo_tweak", EVT_TWEAK_S, KM_ANY, 0, 0);
|
||||
|
@ -1131,7 +1131,7 @@ void wm_gizmomaptypes_free(void)
|
||||
void wm_gizmos_keymap(wmKeyConfig *keyconf)
|
||||
{
|
||||
/* we add this item-less keymap once and use it to group gizmo-group keymaps into it */
|
||||
WM_keymap_find(keyconf, "Gizmos", 0, 0);
|
||||
WM_keymap_ensure(keyconf, "Gizmos", 0, 0);
|
||||
|
||||
for (wmGizmoMapType *gzmap_type = gizmomaptypes.first; gzmap_type; gzmap_type = gzmap_type->next) {
|
||||
for (wmGizmoGroupTypeRef *gzgt_ref = gzmap_type->grouptype_refs.first; gzgt_ref; gzgt_ref = gzgt_ref->next) {
|
||||
|
@ -824,7 +824,7 @@ wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int
|
||||
return NULL;
|
||||
}
|
||||
|
||||
wmKeyMap *WM_keymap_find(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
|
||||
wmKeyMap *WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
|
||||
{
|
||||
wmKeyMap *km = WM_keymap_list_find(&keyconf->keymaps, idname, spaceid, regionid);
|
||||
|
||||
@ -851,7 +851,7 @@ wmKeyMap *WM_keymap_find_all(const bContext *C, const char *idname, int spaceid,
|
||||
|
||||
wmKeyMap *WM_modalkeymap_add(wmKeyConfig *keyconf, const char *idname, const EnumPropertyItem *items)
|
||||
{
|
||||
wmKeyMap *km = WM_keymap_find(keyconf, idname, 0, 0);
|
||||
wmKeyMap *km = WM_keymap_ensure(keyconf, idname, 0, 0);
|
||||
km->flag |= KEYMAP_MODAL;
|
||||
km->modal_items = items;
|
||||
|
||||
|
@ -3444,7 +3444,7 @@ static void gesture_zoom_border_modal_keymap(wmKeyConfig *keyconf)
|
||||
/* default keymap for windows and screens, only call once per WM */
|
||||
void wm_window_keymap(wmKeyConfig *keyconf)
|
||||
{
|
||||
wmKeyMap *keymap = WM_keymap_find(keyconf, "Window", 0, 0);
|
||||
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Window", 0, 0);
|
||||
wmKeyMapItem *kmi;
|
||||
|
||||
/* note, this doesn't replace existing keymap items */
|
||||
|
@ -767,13 +767,13 @@ void wm_window_ghostwindows_ensure(wmWindowManager *wm)
|
||||
wm_window_ensure_eventstate(win);
|
||||
|
||||
/* add keymap handlers (1 handler for all keys in map!) */
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Window", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Window", 0, 0);
|
||||
WM_event_add_keymap_handler(&win->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Screen", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Screen", 0, 0);
|
||||
WM_event_add_keymap_handler(&win->handlers, keymap);
|
||||
|
||||
keymap = WM_keymap_find(wm->defaultconf, "Screen Editing", 0, 0);
|
||||
keymap = WM_keymap_ensure(wm->defaultconf, "Screen Editing", 0, 0);
|
||||
WM_event_add_keymap_handler(&win->modalhandlers, keymap);
|
||||
|
||||
/* add drop boxes */
|
||||
|
772
source/blenderplayer/bad_level_call_stubs/stubs.c
Normal file
772
source/blenderplayer/bad_level_call_stubs/stubs.c
Normal file
@ -0,0 +1,772 @@
|
||||
/*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
*
|
||||
* The Original Code is: all of this file.
|
||||
*
|
||||
* Contributor(s): none yet.
|
||||
*
|
||||
* ***** END GPL LICENSE BLOCK *****
|
||||
* BKE_bad_level_calls function stubs
|
||||
*/
|
||||
|
||||
/** \file blenderplayer/bad_level_call_stubs/stubs.c
|
||||
* \ingroup blc
|
||||
*/
|
||||
|
||||
#ifdef WITH_GAMEENGINE
|
||||
|
||||
#define ASSERT_STUBS 0
|
||||
#if ASSERT_STUBS
|
||||
# include <assert.h>
|
||||
# define STUB_ASSERT(x) (assert(x))
|
||||
#else
|
||||
# define STUB_ASSERT(x)
|
||||
#endif
|
||||
|
||||
|
||||
struct ARegion;
|
||||
struct ARegionType;
|
||||
struct BMEditMesh;
|
||||
struct Base;
|
||||
struct bContext;
|
||||
struct BoundBox;
|
||||
struct Brush;
|
||||
struct CSG_FaceIteratorDescriptor;
|
||||
struct CSG_VertexIteratorDescriptor;
|
||||
struct ChannelDriver;
|
||||
struct ColorBand;
|
||||
struct Context;
|
||||
struct Curve;
|
||||
struct CurveMapping;
|
||||
struct DerivedMesh;
|
||||
struct EditBone;
|
||||
struct EnvMap;
|
||||
struct FCurve;
|
||||
struct Heap;
|
||||
struct HeapNode;
|
||||
struct ID;
|
||||
struct ImBuf;
|
||||
struct Image;
|
||||
struct ImageUser;
|
||||
struct KeyingSet;
|
||||
struct KeyingSetInfo;
|
||||
struct MCol;
|
||||
struct MTex;
|
||||
struct Main;
|
||||
struct Mask;
|
||||
struct Material;
|
||||
struct MenuType;
|
||||
struct Mesh;
|
||||
struct MetaBall;
|
||||
struct Lattice;
|
||||
struct ModifierData;
|
||||
struct MovieClip;
|
||||
struct MultiresModifierData;
|
||||
struct HookModifierData;
|
||||
struct NodeBlurData;
|
||||
struct Nurb;
|
||||
struct Object;
|
||||
struct PBVHNode;
|
||||
struct PyObject;
|
||||
struct Render;
|
||||
struct RenderEngine;
|
||||
struct RenderEngineType;
|
||||
struct RenderLayer;
|
||||
struct RenderResult;
|
||||
struct Scene;
|
||||
struct Scene;
|
||||
struct ScrArea;
|
||||
struct SculptSession;
|
||||
struct ShadeInput;
|
||||
struct ShadeResult;
|
||||
struct SpaceButs;
|
||||
struct SpaceClip;
|
||||
struct SpaceImage;
|
||||
struct SpaceNode;
|
||||
struct Tex;
|
||||
struct TexResult;
|
||||
struct Text;
|
||||
struct ToolSettings;
|
||||
struct View2D;
|
||||
struct View3D;
|
||||
struct bAction;
|
||||
struct bArmature;
|
||||
struct bConstraint;
|
||||
struct bConstraintOb;
|
||||
struct bConstraintTarget;
|
||||
struct bContextDataResult;
|
||||
struct bGPDlayer;
|
||||
struct bNode;
|
||||
struct bNodeType;
|
||||
struct bNodeSocket;
|
||||
struct bNodeSocketType;
|
||||
struct bNodeTree;
|
||||
struct bNodeTreeType;
|
||||
struct bPoseChannel;
|
||||
struct bPythonConstraint;
|
||||
struct bTheme;
|
||||
struct uiLayout;
|
||||
struct wmEvent;
|
||||
struct wmKeyConfig;
|
||||
struct wmKeyMap;
|
||||
struct wmOperator;
|
||||
struct wmOperatorType;
|
||||
struct wmWindow;
|
||||
struct wmWindowManager;
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* Declarations */
|
||||
|
||||
/* may cause troubles... enable for now so args match for certain */
|
||||
#if 1
|
||||
#if defined(__GNUC__)
|
||||
# pragma GCC diagnostic error "-Wmissing-prototypes"
|
||||
# pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#endif
|
||||
|
||||
#include "../../intern/dualcon/dualcon.h"
|
||||
#include "../../intern/elbeem/extern/elbeem.h"
|
||||
#include "../blender/blenkernel/BKE_modifier.h"
|
||||
#include "../blender/blenkernel/BKE_paint.h"
|
||||
#include "../blender/compositor/COM_compositor.h"
|
||||
#include "../blender/editors/include/ED_armature.h"
|
||||
#include "../blender/editors/include/ED_anim_api.h"
|
||||
#include "../blender/editors/include/ED_buttons.h"
|
||||
#include "../blender/editors/include/ED_clip.h"
|
||||
#include "../blender/editors/include/ED_curve.h"
|
||||
#include "../blender/editors/include/ED_fileselect.h"
|
||||
#include "../blender/editors/include/ED_gpencil.h"
|
||||
#include "../blender/editors/include/ED_image.h"
|
||||
#include "../blender/editors/include/ED_info.h"
|
||||
#include "../blender/editors/include/ED_keyframes_edit.h"
|
||||
#include "../blender/editors/include/ED_keyframing.h"
|
||||
#include "../blender/editors/include/ED_lattice.h"
|
||||
#include "../blender/editors/include/ED_mball.h"
|
||||
#include "../blender/editors/include/ED_mesh.h"
|
||||
#include "../blender/editors/include/ED_node.h"
|
||||
#include "../blender/editors/include/ED_object.h"
|
||||
#include "../blender/editors/include/ED_particle.h"
|
||||
#include "../blender/editors/include/ED_render.h"
|
||||
#include "../blender/editors/include/ED_screen.h"
|
||||
#include "../blender/editors/include/ED_space_api.h"
|
||||
#include "../blender/editors/include/ED_text.h"
|
||||
#include "../blender/editors/include/ED_transform.h"
|
||||
#include "../blender/editors/include/ED_transform_snap_object_context.h"
|
||||
#include "../blender/editors/include/ED_uvedit.h"
|
||||
#include "../blender/editors/include/ED_view3d.h"
|
||||
#include "../blender/editors/include/UI_interface.h"
|
||||
#include "../blender/editors/include/UI_interface_icons.h"
|
||||
#include "../blender/editors/include/UI_resources.h"
|
||||
#include "../blender/editors/include/UI_view2d.h"
|
||||
#include "../blender/freestyle/FRS_freestyle.h"
|
||||
#include "../blender/python/BPY_extern.h"
|
||||
#include "../blender/render/extern/include/RE_engine.h"
|
||||
#include "../blender/render/extern/include/RE_pipeline.h"
|
||||
#include "../blender/render/extern/include/RE_render_ext.h"
|
||||
#include "../blender/render/extern/include/RE_shader_ext.h"
|
||||
#include "../blender/windowmanager/WM_api.h"
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* Externs
|
||||
* (ideally we wouldn't have _any_ but we can't include all directly)
|
||||
*/
|
||||
|
||||
/* bpy_operator_wrap.h */
|
||||
extern void macro_wrapper(struct wmOperatorType *ot, void *userdata);
|
||||
extern void operator_wrapper(struct wmOperatorType *ot, void *userdata);
|
||||
/* bpy_rna.h */
|
||||
extern bool pyrna_id_FromPyObject(struct PyObject *obj, struct ID **id);
|
||||
extern const char *BPY_app_translations_py_pgettext(const char *msgctxt, const char *msgid);
|
||||
extern const char *BPY_app_translations_py_pgettext(const char *msgctxt, const char *msgid);
|
||||
extern struct PyObject *pyrna_id_CreatePyObject(struct ID *id);
|
||||
extern bool pyrna_id_CheckPyObject(struct PyObject *obj);
|
||||
/* bpy_interface.c */
|
||||
bool BPY_string_is_keyword(const char *str) { return false; }
|
||||
|
||||
#endif
|
||||
/* end declarations */
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* Return Macro's */
|
||||
|
||||
#include <string.h> /* memset */
|
||||
#define RET_NULL {STUB_ASSERT(0); return (void *) NULL;}
|
||||
#define RET_ZERO {STUB_ASSERT(0); return 0;}
|
||||
#define RET_MINUSONE {STUB_ASSERT(0); return -1;}
|
||||
#define RET_STRUCT(t) {struct t v; STUB_ASSERT(0); memset(&v, 0, sizeof(v)); return v;}
|
||||
#define RET_ARG(arg) {STUB_ASSERT(0); return arg; }
|
||||
#define RET_NONE {STUB_ASSERT(0);}
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/* Stubs */
|
||||
|
||||
/*new render funcs */
|
||||
void EDBM_selectmode_set(struct BMEditMesh *em) RET_NONE
|
||||
void EDBM_mesh_load(struct Main *bmain, struct Object *ob) RET_NONE
|
||||
void EDBM_mesh_make(struct Object *ob, const int select_mode, const bool use_key_index) RET_NONE
|
||||
void EDBM_mesh_normals_update(struct BMEditMesh *em) RET_NONE
|
||||
void *g_system;
|
||||
bool EDBM_uv_check(struct BMEditMesh *em) RET_ZERO
|
||||
|
||||
float *RE_RenderLayerGetPass(volatile struct RenderLayer *rl, const char *name, const char *viewname) RET_NULL
|
||||
float RE_filter_value(int type, float x) RET_ZERO
|
||||
struct RenderLayer *RE_GetRenderLayer(struct RenderResult *rr, const char *name) RET_NULL
|
||||
void RE_texture_rng_init() RET_NONE
|
||||
void RE_texture_rng_exit() RET_NONE
|
||||
|
||||
bool RE_layers_have_name(struct RenderResult *result) RET_ZERO
|
||||
const char *RE_engine_active_view_get(struct RenderEngine *engine) RET_NULL
|
||||
void RE_engine_active_view_set(struct RenderEngine *engine, const char *viewname) RET_NONE
|
||||
void RE_engine_get_camera_model_matrix(struct RenderEngine *engine, struct Object *camera, bool use_spherical_stereo, float *r_modelmat) RET_NONE
|
||||
float RE_engine_get_camera_shift_x(struct RenderEngine *engine, struct Object *camera, bool use_spherical_stereo) RET_ZERO
|
||||
bool RE_engine_get_spherical_stereo(struct RenderEngine *engine, struct Object *camera) RET_ZERO
|
||||
void RE_SetActiveRenderView(struct Render *re, const char *viewname) RET_NONE
|
||||
|
||||
struct RenderPass *RE_pass_find_by_name(volatile struct RenderLayer *rl, const char *name, const char *viewname) RET_NULL
|
||||
struct RenderPass *RE_pass_find_by_type(volatile struct RenderLayer *rl, int passtype, const char *viewname) RET_NULL
|
||||
bool RE_HasCombinedLayer(RenderResult *res) RET_ZERO
|
||||
|
||||
/* imagetexture.c stub */
|
||||
void ibuf_sample(struct ImBuf *ibuf, float fx, float fy, float dx, float dy, float *result) RET_NONE
|
||||
|
||||
/* Freestyle */
|
||||
bool ED_texture_context_check_linestyle(const struct bContext *C) RET_ZERO
|
||||
void FRS_free_view_map_cache(void) RET_NONE
|
||||
|
||||
/* texture.c */
|
||||
int multitex_ext(struct Tex *tex, float texvec[3], float dxt[3], float dyt[3], int osatex, struct TexResult *texres, short thread, struct ImagePool *pool, bool scene_color_manage, const bool skip_load_image) RET_ZERO
|
||||
int multitex_ext_safe(struct Tex *tex, float texvec[3], struct TexResult *texres, struct ImagePool *pool, bool scene_color_manage, const bool skip_load_image) RET_ZERO
|
||||
int multitex_nodes(struct Tex *tex, float texvec[3], float dxt[3], float dyt[3], int osatex, struct TexResult *texres, const short thread, short which_output, struct ShadeInput *shi, struct MTex *mtex, struct ImagePool *pool) RET_ZERO
|
||||
|
||||
struct Material *RE_sample_material_init(struct Material *orig_mat, struct Scene *scene) RET_NULL
|
||||
void RE_sample_material_free(struct Material *mat) RET_NONE
|
||||
void RE_sample_material_color(
|
||||
struct Material *mat, float color[3], float *alpha, const float volume_co[3], const float surface_co[3],
|
||||
int tri_index, struct DerivedMesh *orcoDm, struct Object *ob) RET_NONE
|
||||
/* nodes */
|
||||
struct Render *RE_GetRender(const char *name) RET_NULL
|
||||
struct Render *RE_GetSceneRender(const struct Scene *scene) RET_NULL
|
||||
struct Object *RE_GetCamera(struct Render *re) RET_NULL
|
||||
float RE_lamp_get_data(struct ShadeInput *shi, struct Object *lamp_obj, float col[4], float lv[3], float *dist, float shadow[4]) RET_ZERO
|
||||
const float (*RE_object_instance_get_matrix(struct ObjectInstanceRen *obi, int matrix_id))[4] RET_NULL
|
||||
const float (*RE_render_current_get_matrix(int matrix_id))[4] RET_NULL
|
||||
float RE_object_instance_get_object_pass_index(struct ObjectInstanceRen *obi) RET_ZERO
|
||||
float RE_object_instance_get_random_id(struct ObjectInstanceRen *obi) RET_ZERO
|
||||
|
||||
/* blenkernel */
|
||||
bool BKE_paint_proj_mesh_data_check(struct Scene *scene, struct Object *ob, bool *uvs, bool *mat, bool *tex, bool *stencil) RET_ZERO
|
||||
|
||||
/* render */
|
||||
void RE_FreeRenderResult(struct RenderResult *res) RET_NONE
|
||||
void RE_FreeAllRenderResults(void) RET_NONE
|
||||
struct RenderResult *RE_MultilayerConvert(void *exrhandle, const char *colorspace, bool predivide, int rectx, int recty) RET_NULL
|
||||
struct Scene *RE_GetScene(struct Render *re) RET_NULL
|
||||
void RE_Database_Free(struct Render *re) RET_NONE
|
||||
void RE_FreeRender(struct Render *re) RET_NONE
|
||||
void RE_DataBase_GetView(struct Render *re, float mat[4][4]) RET_NONE
|
||||
int externtex(
|
||||
const struct MTex *mtex, const float vec[3], float *tin, float *tr, float *tg, float *tb, float *ta,
|
||||
const int thread, struct ImagePool *pool, const bool skip_load_image, const bool texnode_preview) RET_ZERO
|
||||
float texture_value_blend(float tex, float out, float fact, float facg, int blendtype) RET_ZERO
|
||||
void texture_rgb_blend(float in[3], const float tex[3], const float out[3], float fact, float facg, int blendtype) RET_NONE
|
||||
double elbeemEstimateMemreq(int res, float sx, float sy, float sz, int refine, char *retstr) RET_ZERO
|
||||
struct Render *RE_NewRender(const char *name) RET_NULL
|
||||
struct Render *RE_NewSceneRender(const struct Scene *scene) RET_NULL
|
||||
void RE_SwapResult(struct Render *re, struct RenderResult **rr) RET_NONE
|
||||
void RE_BlenderFrame(struct Render *re, struct Main *bmain, struct Scene *scene, struct SceneRenderLayer *srl, struct Object *camera_override, unsigned int lay_override, int frame, const bool write_still) RET_NONE
|
||||
bool RE_WriteEnvmapResult(struct ReportList *reports, struct Scene *scene, struct EnvMap *env, const char *relpath, const char imtype, float layout[12]) RET_ZERO
|
||||
|
||||
/* rna */
|
||||
float *ED_view3d_cursor3d_get(struct Scene *scene, struct View3D *v3d) RET_NULL
|
||||
void WM_menutype_free(void) RET_NONE
|
||||
void WM_menutype_freelink(struct MenuType *mt) RET_NONE
|
||||
bool WM_menutype_add(struct MenuType *mt) RET_ZERO
|
||||
int WM_operator_props_dialog_popup(struct bContext *C, struct wmOperator *op, int width, int height) RET_ZERO
|
||||
int WM_operator_confirm(struct bContext *C, struct wmOperator *op, const struct wmEvent *event) RET_ZERO
|
||||
struct MenuType *WM_menutype_find(const char *idname, bool quiet) RET_NULL
|
||||
void WM_operator_stack_clear(struct wmWindowManager *wm) RET_NONE
|
||||
void WM_operator_handlers_clear(wmWindowManager *wm, struct wmOperatorType *ot) RET_NONE
|
||||
bool WM_operator_is_repeat(const struct bContext *C, const struct wmOperator *op) RET_ZERO;
|
||||
|
||||
void WM_autosave_init(wmWindowManager *wm) RET_NONE
|
||||
void WM_jobs_kill_all_except(struct wmWindowManager *wm, void *owner) RET_NONE
|
||||
|
||||
void WM_lib_reload(struct Library *lib, struct bContext *C, struct ReportList *reports) RET_NONE
|
||||
|
||||
char *WM_clipboard_text_get(bool selection, int *r_len) RET_NULL
|
||||
char *WM_clipboard_text_get_firstline(bool selection, int *r_len) RET_NULL
|
||||
void WM_clipboard_text_set(const char *buf, bool selection) RET_NONE
|
||||
|
||||
void WM_cursor_set(struct wmWindow *win, int curor) RET_NONE
|
||||
void WM_cursor_modal_set(struct wmWindow *win, int curor) RET_NONE
|
||||
void WM_cursor_modal_restore(struct wmWindow *win) RET_NONE
|
||||
void WM_cursor_time(struct wmWindow *win, int nr) RET_NONE
|
||||
void WM_cursor_warp(struct wmWindow *win, int x, int y) RET_NONE
|
||||
|
||||
struct wmJob *WM_jobs_get(struct wmWindowManager *wm, struct wmWindow *win, void *owner, const char *name, int flag, int job_type) RET_NULL
|
||||
void WM_jobs_customdata_set(struct wmJob *job, void *customdata, void (*free)(void *)) RET_NONE
|
||||
void WM_jobs_timer(struct wmJob *job, double timestep, unsigned int note, unsigned int endnote) RET_NONE
|
||||
|
||||
void WM_jobs_callbacks(struct wmJob *job,
|
||||
void (*startjob)(void *, short *, short *, float *),
|
||||
void (*initjob)(void *),
|
||||
void (*update)(void *),
|
||||
void (*endjob)(void *)) RET_NONE
|
||||
|
||||
void WM_jobs_start(struct wmWindowManager *wm, struct wmJob *job) RET_NONE
|
||||
void WM_report(ReportType type, const char *message) RET_NONE
|
||||
|
||||
#ifdef WITH_INPUT_NDOF
|
||||
void WM_ndof_deadzone_set(float deadzone) RET_NONE
|
||||
#endif
|
||||
|
||||
void WM_uilisttype_init(void) RET_NONE
|
||||
struct uiListType *WM_uilisttype_find(const char *idname, bool quiet) RET_NULL
|
||||
bool WM_uilisttype_add(struct uiListType *ult) RET_ZERO
|
||||
void WM_uilisttype_freelink(struct uiListType *ult) RET_NONE
|
||||
void WM_uilisttype_free(void) RET_NONE
|
||||
|
||||
struct wmKeyMapItem *WM_keymap_item_find_id(struct wmKeyMap *keymap, int id) RET_NULL
|
||||
struct wmKeyMapItem *WM_key_event_operator(
|
||||
const struct bContext *C, const char *opname, int opcontext,
|
||||
struct IDProperty *properties, const bool is_hotkey,
|
||||
struct wmKeyMap **r_keymap) RET_NULL
|
||||
void WM_keyconfig_update(struct wmWindowManager *wm) RET_NONE
|
||||
|
||||
int WM_enum_search_invoke(struct bContext *C, struct wmOperator *op, const struct wmEvent *event) RET_ZERO
|
||||
void WM_event_add_notifier(const struct bContext *C, unsigned int type, void *reference) RET_NONE
|
||||
void WM_main_add_notifier(unsigned int type, void *reference) RET_NONE
|
||||
void ED_armature_bone_rename(struct Main *bmain, struct bArmature *arm, const char *oldnamep, const char *newnamep) RET_NONE
|
||||
void ED_armature_transform(struct Main *bmain, struct bArmature *arm, float mat[4][4], const bool do_props) RET_NONE
|
||||
struct wmEventHandler *WM_event_add_modal_handler(struct bContext *C, struct wmOperator *op) RET_NULL
|
||||
struct wmTimer *WM_event_add_timer(struct wmWindowManager *wm, struct wmWindow *win, int event_type, double timestep) RET_NULL
|
||||
void WM_event_remove_timer(struct wmWindowManager *wm, struct wmWindow *win, struct wmTimer *timer) RET_NONE
|
||||
float WM_event_tablet_data(const struct wmEvent *event, int *pen_flip, float tilt[2]) RET_ZERO
|
||||
bool WM_event_is_tablet(const struct wmEvent *event) RET_ZERO
|
||||
void ED_armature_ebone_remove(struct bArmature *arm, struct EditBone *exBone) RET_NONE
|
||||
void object_test_constraints(struct Main *bmain, struct Object *owner) RET_NONE
|
||||
void ED_armature_ebone_to_mat4(struct EditBone *ebone, float mat[4][4]) RET_NONE
|
||||
void ED_armature_ebone_from_mat4(EditBone *ebone, float mat[4][4]) RET_NONE
|
||||
void ED_object_parent(struct Object *ob, struct Object *par, int type, const char *substr) RET_NONE
|
||||
void ED_object_constraint_set_active(struct Object *ob, struct bConstraint *con) RET_NONE
|
||||
void ED_node_composit_default(const struct bContext *C, struct Scene *scene) RET_NONE
|
||||
void *ED_region_draw_cb_activate(struct ARegionType *art, void(*draw)(const struct bContext *, struct ARegion *, void *), void *custumdata, int type) RET_ZERO /* XXX this one looks weird */
|
||||
void *ED_region_draw_cb_customdata(void *handle) RET_ZERO /* XXX This one looks wrong also */
|
||||
void ED_region_draw_cb_exit(struct ARegionType *art, void *handle) RET_NONE
|
||||
void ED_area_headerprint(struct ScrArea *sa, const char *str) RET_NONE
|
||||
void ED_gpencil_parent_location(struct bGPDlayer *gpl, float diff_mat[4][4]) RET_NONE
|
||||
void UI_view2d_region_to_view(struct View2D *v2d, float x, float y, float *viewx, float *viewy) RET_NONE
|
||||
bool UI_view2d_view_to_region_clip(struct View2D *v2d, float x, float y, int *regionx, int *regiony) RET_ZERO
|
||||
void UI_view2d_view_to_region(struct View2D *v2d, float x, float y, int *regionx, int *region_y) RET_NONE
|
||||
void UI_view2d_sync(struct bScreen *screen, struct ScrArea *sa, struct View2D *v2dcur, int flag) RET_NONE
|
||||
|
||||
struct EditBone *ED_armature_ebone_get_mirrored(const struct ListBase *edbo, EditBone *ebo) RET_NULL
|
||||
struct EditBone *ED_armature_ebone_add(struct bArmature *arm, const char *name) RET_NULL
|
||||
struct ListBase *get_active_constraints (struct Object *ob) RET_NULL
|
||||
struct ListBase *get_constraint_lb(struct Object *ob, struct bConstraint *con, struct bPoseChannel **r_pchan) RET_NULL
|
||||
|
||||
bool ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit) RET_ZERO
|
||||
bool ED_space_image_show_render(struct SpaceImage *sima) RET_ZERO
|
||||
bool ED_space_image_show_paint(struct SpaceImage *sima) RET_ZERO
|
||||
void ED_space_image_paint_update(struct Main *bmain, struct wmWindowManager *wm, struct Scene *scene) RET_NONE
|
||||
void ED_space_image_set(struct Main *bmain, struct SpaceImage *sima, struct Scene *scene, struct Object *obedit, struct Image *ima) RET_NONE
|
||||
void ED_space_image_uv_sculpt_update(struct Main *bmain, struct wmWindowManager *wm, struct Scene *scene) RET_NONE
|
||||
void ED_space_image_scopes_update(const struct bContext *C, struct SpaceImage *sima, struct ImBuf *ibuf, bool use_view_settings) RET_NONE
|
||||
|
||||
void ED_uvedit_get_aspect(struct Scene *scene, struct Object *ob, struct BMesh *em, float *aspx, float *aspy) RET_NONE
|
||||
|
||||
void ED_screen_set_scene(struct bContext *C, struct bScreen *screen, struct Scene *scene) RET_NONE
|
||||
struct MovieClip *ED_space_clip_get_clip(struct SpaceClip *sc) RET_NULL
|
||||
void ED_space_clip_set_clip(struct bContext *C, struct bScreen *screen, struct SpaceClip *sc, struct MovieClip *clip) RET_NONE
|
||||
void ED_space_clip_set_mask(struct bContext *C, struct SpaceClip *sc, struct Mask *mask) RET_NONE
|
||||
void ED_space_image_set_mask(struct bContext *C, struct SpaceImage *sima, struct Mask *mask) RET_NONE
|
||||
|
||||
void ED_area_tag_redraw_regiontype(struct ScrArea *sa, int regiontype) RET_NONE
|
||||
void ED_render_engine_changed(struct Main *bmain) RET_NONE
|
||||
|
||||
void ED_file_read_bookmarks(void) RET_NONE
|
||||
void ED_file_change_dir(struct bContext *C) RET_NONE
|
||||
void ED_preview_kill_jobs(struct wmWindowManager *wm, struct Main *bmain) RET_NONE
|
||||
struct FSMenu *ED_fsmenu_get(void) RET_NULL
|
||||
struct FSMenuEntry *ED_fsmenu_get_category(struct FSMenu *fsmenu, FSMenuCategory category) RET_NULL
|
||||
int ED_fsmenu_get_nentries(struct FSMenu *fsmenu, FSMenuCategory category) RET_ZERO
|
||||
struct FSMenuEntry *ED_fsmenu_get_entry(struct FSMenu *fsmenu, FSMenuCategory category, int index) RET_NULL
|
||||
char *ED_fsmenu_entry_get_path(struct FSMenuEntry *fsentry) RET_NULL
|
||||
void ED_fsmenu_entry_set_path(struct FSMenuEntry *fsentry, const char *name) RET_NONE
|
||||
char *ED_fsmenu_entry_get_name(struct FSMenuEntry *fsentry) RET_NULL
|
||||
void ED_fsmenu_entry_set_name(struct FSMenuEntry *fsentry, const char *name) RET_NONE
|
||||
|
||||
struct PTCacheEdit *PE_get_current(struct Main *bmain, struct Scene *scene, struct Object *ob) RET_NULL
|
||||
void PE_current_changed(struct Main *bmain, struct Scene *scene, struct Object *ob) RET_NONE
|
||||
|
||||
/* rna keymap */
|
||||
struct wmKeyMap *WM_keymap_active(struct wmWindowManager *wm, struct wmKeyMap *keymap) RET_NULL
|
||||
struct wmKeyMap *WM_keymap_ensure(struct wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid) RET_NULL
|
||||
struct wmKeyMapItem *WM_keymap_add_item(struct wmKeyMap *keymap, const char *idname, int type, int val, int modifier, int keymodifier) RET_NULL
|
||||
struct wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid) RET_NULL
|
||||
struct wmKeyConfig *WM_keyconfig_new(struct wmWindowManager *wm, const char *idname) RET_NULL
|
||||
struct wmKeyConfig *WM_keyconfig_new_user(struct wmWindowManager *wm, const char *idname) RET_NULL
|
||||
bool WM_keyconfig_remove(struct wmWindowManager *wm, struct wmKeyConfig *keyconf) RET_ZERO
|
||||
bool WM_keymap_remove(struct wmKeyConfig *keyconfig, struct wmKeyMap *keymap) RET_ZERO
|
||||
void WM_keyconfig_set_active(struct wmWindowManager *wm, const char *idname) RET_NONE
|
||||
bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi) RET_ZERO
|
||||
void WM_keymap_restore_to_default(struct wmKeyMap *keymap, struct bContext *C) RET_NONE
|
||||
void WM_keymap_restore_item_to_default(struct bContext *C, struct wmKeyMap *keymap, struct wmKeyMapItem *kmi) RET_NONE
|
||||
void WM_keymap_properties_reset(struct wmKeyMapItem *kmi, struct IDProperty *properties) RET_NONE
|
||||
void WM_keyconfig_update_tag(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi) RET_NONE
|
||||
bool WM_keymap_item_compare(struct wmKeyMapItem *k1, struct wmKeyMapItem *k2) RET_ZERO
|
||||
int WM_keymap_map_type_get(struct wmKeyMapItem *kmi) RET_ZERO
|
||||
|
||||
|
||||
/* rna editors */
|
||||
|
||||
struct FCurve *verify_fcurve(struct bAction *act, const char group[], struct PointerRNA *ptr, const char rna_path[], const int array_index, short add) RET_NULL
|
||||
int insert_vert_fcurve(struct FCurve *fcu, float x, float y, eBezTriple_KeyframeType keytype, eInsertKeyFlags flag) RET_ZERO
|
||||
void delete_fcurve_key(struct FCurve *fcu, int index, bool do_recalc) RET_NONE
|
||||
struct KeyingSetInfo *ANIM_keyingset_info_find_name (const char name[]) RET_NULL
|
||||
struct KeyingSet *ANIM_scene_get_active_keyingset (struct Scene *scene) RET_NULL
|
||||
int ANIM_scene_get_keyingset_index(struct Scene *scene, struct KeyingSet *ks) RET_ZERO
|
||||
void ANIM_id_update(struct Scene *scene, struct ID *id) RET_NONE
|
||||
struct ListBase builtin_keyingsets;
|
||||
void ANIM_keyingset_info_register(struct KeyingSetInfo *ksi) RET_NONE
|
||||
void ANIM_keyingset_info_unregister(struct Main *bmain, KeyingSetInfo *ksi) RET_NONE
|
||||
short ANIM_validate_keyingset(struct bContext *C, struct ListBase *dsources, struct KeyingSet *ks) RET_ZERO
|
||||
int ANIM_add_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag, int type) RET_ZERO
|
||||
bool ANIM_remove_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag) RET_ZERO
|
||||
void ED_space_image_release_buffer(struct SpaceImage *sima, struct ImBuf *ibuf, void *lock) RET_NONE
|
||||
struct ImBuf *ED_space_image_acquire_buffer(struct SpaceImage *sima, void **r_lock) RET_NULL
|
||||
void ED_space_image_get_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy) RET_NONE
|
||||
const char *ED_info_stats_string(struct Scene *scene) RET_NULL
|
||||
void ED_area_tag_redraw(struct ScrArea *sa) RET_NONE
|
||||
void ED_area_tag_refresh(struct ScrArea *sa) RET_NONE
|
||||
void ED_area_newspace(struct bContext *C, struct ScrArea *sa, int type, const bool skip_ar_exit) RET_NONE
|
||||
void ED_region_tag_redraw(struct ARegion *ar) RET_NONE
|
||||
void WM_event_add_fileselect(struct bContext *C, struct wmOperator *op) RET_NONE
|
||||
void WM_cursor_wait(bool val) RET_NONE
|
||||
void ED_node_texture_default(const struct bContext *C, struct Tex *tex) RET_NONE
|
||||
void ED_node_tag_update_id(struct ID *id) RET_NONE
|
||||
void ED_node_tag_update_nodetree(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node) RET_NONE
|
||||
void ED_node_tree_update(const struct bContext *C) RET_NONE
|
||||
void ED_node_set_tree_type(struct SpaceNode *snode, struct bNodeTreeType *typeinfo) RET_NONE
|
||||
void ED_init_custom_node_type(struct bNodeType *ntype) RET_NONE
|
||||
void ED_init_custom_node_socket_type(struct bNodeSocketType *stype) RET_NONE
|
||||
void ED_init_standard_node_socket_type(struct bNodeSocketType *stype) RET_NONE
|
||||
void ED_init_node_socket_type_virtual(struct bNodeSocketType *stype) RET_NONE
|
||||
int ED_node_tree_path_length(struct SpaceNode *snode) RET_ZERO
|
||||
void ED_node_tree_path_get(struct SpaceNode *snode, char *value) RET_NONE
|
||||
void ED_node_tree_path_get_fixedbuf(struct SpaceNode *snode, char *value, int max_length) RET_NONE
|
||||
void ED_node_tree_start(struct SpaceNode *snode, struct bNodeTree *ntree, struct ID *id, struct ID *from) RET_NONE
|
||||
void ED_node_tree_push(struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *gnode) RET_NONE
|
||||
void ED_node_tree_pop(struct SpaceNode *snode) RET_NONE
|
||||
int ED_view3d_scene_layer_set(int lay, const bool *values, int *active) RET_ZERO
|
||||
void ED_view3d_quadview_update(struct ScrArea *sa, struct ARegion *ar, bool do_clip) RET_NONE
|
||||
void ED_view3d_from_m4(float mat[4][4], float ofs[3], float quat[4], float *dist) RET_NONE
|
||||
struct BGpic *ED_view3d_background_image_new(struct View3D *v3d) RET_NULL
|
||||
void ED_view3d_background_image_remove(struct View3D *v3d, struct BGpic *bgpic) RET_NONE
|
||||
void ED_view3d_background_image_clear(struct View3D *v3d) RET_NONE
|
||||
void ED_view3d_update_viewmat(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, float viewmat[4][4], float winmat[4][4], const struct rcti *rect) RET_NONE
|
||||
float ED_view3d_grid_scale(struct Scene *scene, struct View3D *v3d, const char **grid_unit) RET_ZERO
|
||||
void ED_view3d_shade_update(struct Main *bmain, struct View3D *v3d, struct ScrArea *sa) RET_NONE
|
||||
void ED_node_shader_default(const struct bContext *C, struct ID *id) RET_NONE
|
||||
void ED_screen_animation_timer_update(struct bScreen *screen, int redraws, int refresh) RET_NONE
|
||||
struct bScreen *ED_screen_animation_playing(const struct wmWindowManager *wm) RET_NULL
|
||||
void ED_base_object_select(struct Base *base, short mode) RET_NONE
|
||||
bool ED_object_modifier_remove(struct ReportList *reports, struct Main *bmain, struct Object *ob, struct ModifierData *md) RET_ZERO
|
||||
struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name, int type) RET_ZERO
|
||||
void ED_object_modifier_clear(struct Main *bmain, struct Object *ob) RET_NONE
|
||||
bool ED_object_editmode_enter(struct bContext *C, int flag) RET_ZERO
|
||||
bool ED_object_editmode_exit(struct bContext *C, int flag) RET_ZERO
|
||||
bool ED_object_editmode_load(struct Main *bmain, struct Object *obedit) RET_ZERO
|
||||
void ED_object_check_force_modifiers(struct Main *bmain, struct Scene *scene, struct Object *object) RET_NONE
|
||||
bool uiLayoutGetActive(struct uiLayout *layout) RET_ZERO
|
||||
int uiLayoutGetOperatorContext(struct uiLayout *layout) RET_ZERO
|
||||
int uiLayoutGetAlignment(struct uiLayout *layout) RET_ZERO
|
||||
bool uiLayoutGetEnabled(struct uiLayout *layout) RET_ZERO
|
||||
float uiLayoutGetScaleX(struct uiLayout *layout) RET_ZERO
|
||||
float uiLayoutGetScaleY(struct uiLayout *layout) RET_ZERO
|
||||
void uiLayoutSetActive(struct uiLayout *layout, bool active) RET_NONE
|
||||
void uiLayoutSetOperatorContext(struct uiLayout *layout, int opcontext) RET_NONE
|
||||
void uiLayoutSetEnabled(uiLayout *layout, bool enabled) RET_NONE
|
||||
void uiLayoutSetAlignment(uiLayout *layout, char alignment) RET_NONE
|
||||
void uiLayoutSetScaleX(struct uiLayout *layout, float scale) RET_NONE
|
||||
void uiLayoutSetScaleY(struct uiLayout *layout, float scale) RET_NONE
|
||||
void uiTemplateIconView(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, bool show_labels, float icon_scale) RET_NONE
|
||||
void ED_base_object_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Base *base) RET_NONE
|
||||
void ED_mesh_update(struct Mesh *mesh, struct bContext *C, bool calc_edges, bool calc_tessface) RET_NONE
|
||||
void ED_mesh_vertices_add(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
void ED_mesh_edges_add(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
void ED_mesh_tessfaces_add(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
void ED_mesh_loops_add(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
void ED_mesh_polys_add(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
void ED_mesh_vertices_remove(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
void ED_mesh_edges_remove(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
void ED_mesh_faces_remove(struct Mesh *mesh, struct ReportList *reports, int count) RET_NONE
|
||||
int ED_mesh_color_add(struct Mesh *me, const char *name, const bool active_set) RET_MINUSONE
|
||||
int ED_mesh_uv_texture_add(struct Mesh *me, const char *name, const bool active_set) RET_MINUSONE
|
||||
bool ED_mesh_color_remove_named(struct Mesh *me, const char *name) RET_ZERO
|
||||
bool ED_mesh_uv_texture_remove_named(struct Mesh *me, const char *name) RET_ZERO
|
||||
void ED_object_constraint_dependency_update(struct Main *bmain, struct Object *ob) RET_NONE
|
||||
void ED_object_constraint_dependency_tag_update(struct Main *bmain, struct Object *ob, struct bConstraint *con) RET_NONE
|
||||
void ED_object_constraint_update(struct Main *bmain, struct Object *ob) RET_NONE
|
||||
void ED_object_constraint_tag_update(struct Main *bmain, struct Object *ob, struct bConstraint *con) RET_NONE
|
||||
void ED_vgroup_vert_add(struct Object *ob, struct bDeformGroup *dg, int vertnum, float weight, int assignmode) RET_NONE
|
||||
void ED_vgroup_vert_remove(struct Object *ob, struct bDeformGroup *dg, int vertnum) RET_NONE
|
||||
float ED_vgroup_vert_weight(struct Object *ob, struct bDeformGroup *dg, int vertnum) RET_ZERO
|
||||
int ED_mesh_mirror_topo_table(struct Object *ob, struct DerivedMesh *dm, char mode) RET_ZERO
|
||||
int ED_mesh_mirror_spatial_table(struct Object *ob, struct BMEditMesh *em, struct DerivedMesh *dm, const float co[3], char mode) RET_ZERO
|
||||
|
||||
float ED_armature_ebone_roll_to_vector(const EditBone *bone, const float new_up_axis[3], const bool axis_only) RET_ZERO
|
||||
void ED_space_image_get_size(struct SpaceImage *sima, int *width, int *height) RET_NONE
|
||||
bool ED_space_image_check_show_maskedit(struct Scene *scene, struct SpaceImage *sima) RET_ZERO
|
||||
|
||||
bool ED_texture_context_check_world(const struct bContext *C) RET_ZERO
|
||||
bool ED_texture_context_check_material(const struct bContext *C) RET_ZERO
|
||||
bool ED_texture_context_check_lamp(const struct bContext *C) RET_ZERO
|
||||
bool ED_texture_context_check_particles(const struct bContext *C) RET_ZERO
|
||||
bool ED_texture_context_check_others(const struct bContext *C) RET_ZERO
|
||||
|
||||
bool ED_text_region_location_from_cursor(SpaceText *st, ARegion *ar, const int cursor_co[2], int r_pixel_co[2]) RET_ZERO
|
||||
|
||||
SnapObjectContext *ED_transform_snap_object_context_create(
|
||||
struct Main *bmain, struct Scene *scene, int flag) RET_NULL
|
||||
SnapObjectContext *ED_transform_snap_object_context_create_view3d(
|
||||
struct Main *bmain, struct Scene *scene, int flag,
|
||||
const struct ARegion *ar, const struct View3D *v3d) RET_NULL
|
||||
void ED_transform_snap_object_context_destroy(SnapObjectContext *sctx) RET_NONE
|
||||
bool ED_transform_snap_object_project_ray_ex(
|
||||
struct SnapObjectContext *sctx,
|
||||
const struct SnapObjectParams *params,
|
||||
const float ray_start[3], const float ray_normal[3], float *ray_depth,
|
||||
/* return args */
|
||||
float r_loc[3], float r_no[3], int *r_index,
|
||||
struct Object **r_ob, float r_obmat[4][4]) RET_ZERO
|
||||
|
||||
void ED_curve_editnurb_load(struct Main *bmain, struct Object *obedit) RET_NONE
|
||||
void ED_curve_editnurb_make(struct Object *obedit) RET_NONE
|
||||
|
||||
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon) RET_NONE
|
||||
|
||||
void uiItemFullO(uiLayout *layout, const char *idname, const char *name, int icon, struct IDProperty *properties, int context, int flag, struct PointerRNA *r_opptr) RET_NONE
|
||||
void uiItemFullO_ptr(struct uiLayout *layout, struct wmOperatorType *ot, const char *name, int icon, struct IDProperty *properties, int context, int flag, struct PointerRNA *r_opptr) RET_NONE
|
||||
void uiItemFullOMenuHold_ptr( uiLayout *layout, struct wmOperatorType *ot, const char *name, int icon, struct IDProperty *properties, int context, int flag, const char *menu_id, /* extra menu arg. */ PointerRNA *r_opptr) RET_NONE
|
||||
struct uiLayout *uiLayoutRow(uiLayout *layout, bool align) RET_NULL
|
||||
struct uiLayout *uiLayoutColumn(uiLayout *layout, bool align) RET_NULL
|
||||
struct uiLayout *uiLayoutColumnFlow(uiLayout *layout, int number, bool align) RET_NULL
|
||||
struct uiLayout *uiLayoutBox(struct uiLayout *layout) RET_NULL
|
||||
struct uiLayout *uiLayoutSplit(uiLayout *layout, float percentage, bool align) RET_NULL
|
||||
bool uiLayoutGetRedAlert(struct uiLayout *layout) RET_ZERO
|
||||
void uiLayoutSetRedAlert(uiLayout *layout, bool redalert) RET_NONE
|
||||
void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
void uiItemMenuEnumR_prop(uiLayout *layout, struct PointerRNA *ptr, PropertyRNA *prop, const char *name, int icon) RET_NONE
|
||||
void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *name, int icon) RET_NONE
|
||||
void uiItemEnumR_string_prop(uiLayout *layout, struct PointerRNA *ptr, PropertyRNA *prop, const char *value, const char *name, int icon) RET_NONE
|
||||
void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *value, const char *name, int icon) RET_NONE
|
||||
void uiItemPointerR_prop(uiLayout *layout, struct PointerRNA *ptr, PropertyRNA *prop, struct PointerRNA *searchptr, PropertyRNA *searchprop, const char *name, int icon) RET_NONE
|
||||
void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, struct PointerRNA *searchptr, const char *searchpropname, const char *name, int icon) RET_NONE
|
||||
void uiItemsEnumO(uiLayout *layout, const char *opname, const char *propname) RET_NONE
|
||||
void uiItemEnumO_string(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value) RET_NONE
|
||||
void uiItemMenuEnumO(uiLayout *layout, struct bContext *C, const char *opname, const char *propname, const char *name, int icon) RET_NONE
|
||||
void uiItemMenuEnumO_ptr(uiLayout *layout, struct bContext *C, struct wmOperatorType *ot, const char *propname, const char *name, int icon) RET_NONE
|
||||
void uiItemBooleanO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value) RET_NONE
|
||||
void uiItemIntO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value) RET_NONE
|
||||
void uiItemFloatO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, float value) RET_NONE
|
||||
void uiItemStringO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value) RET_NONE
|
||||
void uiItemL(struct uiLayout *layout, const char *name, int icon) RET_NONE
|
||||
void uiItemM(uiLayout *layout, const char *menuname, const char *name, int icon) RET_NONE
|
||||
void uiItemS(struct uiLayout *layout) RET_NONE
|
||||
void uiItemFullR(uiLayout *layout, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, int value, int flag, const char *name, int icon) RET_NONE
|
||||
void uiLayoutSetContextPointer(uiLayout *layout, const char *name, struct PointerRNA *ptr) RET_NONE
|
||||
void UI_reinit_font(void) RET_NONE
|
||||
int UI_rnaptr_icon_get(struct bContext *C, struct PointerRNA *ptr, int rnaicon, const bool big) RET_ZERO
|
||||
struct bTheme *UI_GetTheme(void) RET_NULL
|
||||
|
||||
/* rna template */
|
||||
void uiTemplateAnyID(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *proptypename, const char *text) RET_NONE
|
||||
void uiTemplatePathBuilder(uiLayout *layout, struct PointerRNA *ptr, const char *propname, struct PointerRNA *root_ptr, const char *text) RET_NONE
|
||||
void uiTemplateHeader(struct uiLayout *layout, struct bContext *C) RET_NONE
|
||||
void uiTemplateID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop, int filter) RET_NONE
|
||||
struct uiLayout *uiTemplateModifier(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr) RET_NULL
|
||||
struct uiLayout *uiTemplateConstraint(struct uiLayout *layout, struct PointerRNA *ptr) RET_NULL
|
||||
void uiTemplatePreview(struct uiLayout *layout, struct bContext *C, struct ID *id, bool show_buttons, struct ID *parent,
|
||||
struct MTex *slot, const char *preview_id) RET_NONE
|
||||
void uiTemplateIDPreview(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop, int rows, int cols, int filter) RET_NONE
|
||||
void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int type, bool levels, bool brush, bool neg_slope) RET_NONE
|
||||
void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, const char *propname, bool expand) RET_NONE
|
||||
void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, const char *propname, PointerRNA *used_ptr, const char *used_propname, int active_layer) RET_NONE
|
||||
void uiTemplateImageLayers(struct uiLayout *layout, struct bContext *C, struct Image *ima, struct ImageUser *iuser) RET_NONE
|
||||
void uiTemplateList(struct uiLayout *layout, struct bContext *C, const char *listtype_name, const char *list_id,
|
||||
PointerRNA *dataptr, const char *propname, PointerRNA *active_dataptr, const char *active_propname,
|
||||
const char *item_dyntip_propname, int rows, int maxrows, int layout_type, int columns) RET_NONE
|
||||
void uiTemplateRunningJobs(struct uiLayout *layout, struct bContext *C) RET_NONE
|
||||
void uiTemplateOperatorSearch(struct uiLayout *layout) RET_NONE
|
||||
void uiTemplateHeader3D(struct uiLayout *layout, struct bContext *C) RET_NONE
|
||||
void uiTemplateEditModeSelection(struct uiLayout *layout, struct bContext *C) RET_NONE
|
||||
void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *userptr, bool compact, bool multiview) RET_NONE
|
||||
void uiTemplateColorPicker(uiLayout *layout, struct PointerRNA *ptr, const char *propname, bool value_slider, bool lock, bool lock_luminosity, bool cubic) RET_NONE
|
||||
void uiTemplateHistogram(uiLayout *layout, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C) RET_NONE
|
||||
void uiTemplateWaveform(uiLayout *layout, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
void uiTemplateVectorscope(uiLayout *layout, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
void uiTemplateNodeLink(struct uiLayout *layout, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input) RET_NONE
|
||||
void uiTemplateNodeView(struct uiLayout *layout, struct bContext *C, struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *input) RET_NONE
|
||||
void uiTemplateTextureUser(struct uiLayout *layout, struct bContext *C) RET_NONE
|
||||
void uiTemplateTextureShow(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop) RET_NONE
|
||||
void uiTemplateKeymapItemProperties(struct uiLayout *layout, struct PointerRNA *ptr) RET_NONE
|
||||
void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, bool compact) RET_NONE
|
||||
void uiTemplateMovieclipInformation(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, struct PointerRNA *userptr) RET_NONE
|
||||
void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
void uiTemplateMarker(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, PointerRNA *userptr, PointerRNA *trackptr, bool compact) RET_NONE
|
||||
void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr, bool color_management) RET_NONE
|
||||
void uiTemplateColorspaceSettings(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
void uiTemplateColormanagedViewSettings(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
void uiTemplateComponentMenu(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *name) RET_NONE
|
||||
void uiTemplateNodeSocket(struct uiLayout *layout, struct bContext *C, float *color) RET_NONE
|
||||
void uiTemplatePalette(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, bool color) RET_NONE
|
||||
void uiTemplateImageStereo3d(struct uiLayout *layout, struct PointerRNA *stereo3d_format_ptr) RET_NONE
|
||||
void uiTemplateCacheFile(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname) RET_NONE
|
||||
|
||||
/* rna render */
|
||||
struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h, const char *layername, const char *viewname) RET_NULL
|
||||
struct RenderResult *RE_AcquireResultRead(struct Render *re) RET_NULL
|
||||
struct RenderResult *RE_AcquireResultWrite(struct Render *re) RET_NULL
|
||||
struct RenderResult *RE_engine_get_result(struct RenderEngine *re) RET_NULL
|
||||
struct RenderStats *RE_GetStats(struct Render *re) RET_NULL
|
||||
struct RenderData *RE_engine_get_render_data(struct Render *re) RET_NULL
|
||||
void RE_engine_update_result(struct RenderEngine *engine, struct RenderResult *result) RET_NONE
|
||||
void RE_engine_update_progress(struct RenderEngine *engine, float progress) RET_NONE
|
||||
void RE_engine_set_error_message(RenderEngine *engine, const char *msg) RET_NONE
|
||||
void RE_engine_add_pass(RenderEngine *engine, const char *name, int channels, const char *chan_id, const char *layername) RET_NONE
|
||||
void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result, bool cancel, bool highlight, bool merge_results) RET_NONE
|
||||
void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info) RET_NONE
|
||||
void RE_layer_load_from_file(struct RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y) RET_NONE
|
||||
void RE_result_load_from_file(struct RenderResult *result, struct ReportList *reports, const char *filename) RET_NONE
|
||||
void RE_AcquireResultImage(struct Render *re, struct RenderResult *rr, const int view_id) RET_NONE
|
||||
void RE_ReleaseResult(struct Render *re) RET_NONE
|
||||
void RE_ReleaseResultImage(struct Render *re) RET_NONE
|
||||
bool RE_engine_test_break(struct RenderEngine *engine) RET_ZERO
|
||||
void RE_engines_init() RET_NONE
|
||||
void RE_engines_exit() RET_NONE
|
||||
void RE_engine_report(struct RenderEngine *engine, int type, const char *msg) RET_NONE
|
||||
ListBase R_engines = {NULL, NULL};
|
||||
void RE_engine_free(struct RenderEngine *engine) RET_NONE
|
||||
struct RenderEngineType *RE_engines_find(const char *idname) RET_NULL
|
||||
void RE_engine_update_memory_stats(struct RenderEngine *engine, float mem_used, float mem_peak) RET_NONE
|
||||
struct RenderEngine *RE_engine_create(struct RenderEngineType *type) RET_NULL
|
||||
void RE_engine_frame_set(struct RenderEngine *engine, int frame, float subframe) RET_NONE
|
||||
void RE_FreePersistentData(void) RET_NONE
|
||||
void RE_point_density_cache(struct Scene *scene, struct PointDensity *pd, const bool use_render_params) RET_NONE
|
||||
void RE_point_density_minmax(struct Scene *scene, struct PointDensity *pd, const bool use_render_params, float r_min[3], float r_max[3]) RET_NONE
|
||||
void RE_point_density_sample(struct Scene *scene, struct PointDensity *pd, int resolution, const bool use_render_params, float *values) RET_NONE
|
||||
void RE_point_density_free(struct PointDensity *pd) RET_NONE
|
||||
void RE_instance_get_particle_info(struct ObjectInstanceRen *obi, float *index, float *random, float *age, float *lifetime, float co[3], float *size, float vel[3], float angvel[3]) RET_NONE
|
||||
void RE_FreeAllPersistentData(void) RET_NONE
|
||||
float RE_fresnel_dielectric(float incoming[3], float normal[3], float eta) RET_ZERO
|
||||
void RE_engine_register_pass(struct RenderEngine *engine, struct Scene *scene, struct SceneRenderLayer *srl, const char *name, int channels, const char *chanid, int type) RET_NONE
|
||||
|
||||
/* python */
|
||||
struct wmOperatorType *WM_operatortype_find(const char *idname, bool quiet) RET_NULL
|
||||
void WM_operatortype_iter(struct GHashIterator *ghi) RET_NONE
|
||||
struct wmOperatorTypeMacro *WM_operatortype_macro_define(struct wmOperatorType *ot, const char *idname) RET_NULL
|
||||
int WM_operator_call_py(struct bContext *C, struct wmOperatorType *ot, short context, struct PointerRNA *properties, struct ReportList *reports, const bool is_undo) RET_ZERO
|
||||
void WM_operatortype_remove_ptr(struct wmOperatorType *ot) RET_NONE
|
||||
bool WM_operatortype_remove(const char *idname) RET_ZERO
|
||||
bool WM_operator_poll(struct bContext *C, struct wmOperatorType *ot) RET_ZERO
|
||||
bool WM_operator_poll_context(struct bContext *C, struct wmOperatorType *ot, short context) RET_ZERO
|
||||
int WM_operator_props_popup(struct bContext *C, struct wmOperator *op, const struct wmEvent *event) RET_ZERO
|
||||
void WM_operator_properties_free(struct PointerRNA *ptr) RET_NONE
|
||||
void WM_operator_properties_create(struct PointerRNA *ptr, const char *opstring) RET_NONE
|
||||
void WM_operator_properties_create_ptr(struct PointerRNA *ptr, struct wmOperatorType *ot) RET_NONE
|
||||
void WM_operator_properties_sanitize(struct PointerRNA *ptr, const bool no_context) RET_NONE
|
||||
void WM_operatortype_append_ptr(void (*opfunc)(struct wmOperatorType *, void *), void *userdata) RET_NONE
|
||||
void WM_operatortype_append_macro_ptr(void (*opfunc)(struct wmOperatorType *, void *), void *userdata) RET_NONE
|
||||
void WM_operator_bl_idname(char *to, const char *from) RET_NONE
|
||||
void WM_operator_py_idname(char *to, const char *from) RET_NONE
|
||||
bool WM_operator_py_idname_ok_or_report(struct ReportList *reports, const char *classname, const char *idname) RET_ZERO
|
||||
int WM_operator_ui_popup(struct bContext *C, struct wmOperator *op, int width, int height) RET_ZERO
|
||||
void update_autoflags_fcurve(struct FCurve *fcu, struct bContext *C, struct ReportList *reports, struct PointerRNA *ptr) RET_NONE
|
||||
short insert_keyframe(struct Main *bmain, struct ReportList *reports, struct ID *id, struct bAction *act, const char group[], const char rna_path[], int array_index, float cfra, eBezTriple_KeyframeType keytype, eInsertKeyFlags flag) RET_ZERO
|
||||
short delete_keyframe(struct ReportList *reports, struct ID *id, struct bAction *act, const char group[], const char rna_path[], int array_index, float cfra, eInsertKeyFlags flag) RET_ZERO
|
||||
struct bAction *verify_adt_action(struct Main *bmain, struct ID *id, short add) RET_NULL
|
||||
char *WM_operator_pystring_ex(struct bContext *C, struct wmOperator *op, const bool all_args, const bool macro_args, struct wmOperatorType *ot, struct PointerRNA *opptr) RET_NULL
|
||||
char *WM_operator_pystring(struct bContext *C, struct wmOperator *op, const bool all_args, const bool macro_args) RET_NULL
|
||||
struct wmKeyMapItem *WM_modalkeymap_add_item(struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, int value) RET_NULL
|
||||
struct wmKeyMapItem *WM_modalkeymap_add_item_str(struct wmKeyMap *km, int type, int val, int modifier, int keymodifier, const char *value) RET_NULL
|
||||
struct wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, const char *idname, const struct EnumPropertyItem *items) RET_NULL
|
||||
struct uiPopupMenu *UI_popup_menu_begin(struct bContext *C, const char *title, int icon) RET_NULL
|
||||
void UI_popup_menu_end(struct bContext *C, struct uiPopupMenu *head) RET_NONE
|
||||
struct uiLayout *UI_popup_menu_layout(struct uiPopupMenu *head) RET_NULL
|
||||
struct uiLayout *UI_pie_menu_layout(struct uiPieMenu *pie) RET_NULL
|
||||
int UI_pie_menu_invoke(struct bContext *C, const char *idname, const struct wmEvent *event) RET_ZERO
|
||||
struct uiPieMenu *UI_pie_menu_begin(struct bContext *C, const char *title, int icon, const struct wmEvent *event) RET_NULL
|
||||
void UI_pie_menu_end(struct bContext *C, uiPieMenu *pie) RET_NONE
|
||||
struct uiLayout *uiLayoutRadial(struct uiLayout *layout) RET_NULL
|
||||
int UI_pie_menu_invoke_from_operator_enum(struct bContext *C, const char *title, const char *opname,
|
||||
const char *propname, const struct wmEvent *event) RET_ZERO
|
||||
|
||||
void ED_mesh_calc_tessface(struct Mesh *mesh, bool free_mpoly) RET_NONE
|
||||
|
||||
/* bpy/python internal api */
|
||||
extern void BPY_RNA_operator_wrapper(struct wmOperatorType *ot, void *userdata);
|
||||
extern void BPY_RNA_operator_macro_wrapper(struct wmOperatorType *ot, void *userdata);
|
||||
void BPY_RNA_operator_wrapper(struct wmOperatorType *ot, void *userdata) RET_NONE
|
||||
void BPY_RNA_operator_macro_wrapper(struct wmOperatorType *ot, void *userdata) RET_NONE
|
||||
void BPY_text_free_code(struct Text *text) RET_NONE
|
||||
void BPY_id_release(struct ID *id) RET_NONE
|
||||
int BPY_context_member_get(struct bContext *C, const char *member, struct bContextDataResult *result) RET_ZERO
|
||||
void BPY_pyconstraint_target(struct bPythonConstraint *con, struct bConstraintTarget *ct) RET_NONE
|
||||
float BPY_driver_exec(PathResolvedRNA *anim_rna, struct ChannelDriver *driver, const float evaltime) RET_ZERO /* might need this one! */
|
||||
void BPY_DECREF(void *pyob_ptr) RET_NONE
|
||||
void BPY_DECREF_RNA_INVALIDATE(void *pyob_ptr) RET_NONE;
|
||||
void BPY_pyconstraint_exec(struct bPythonConstraint *con, struct bConstraintOb *cob, struct ListBase *targets) RET_NONE
|
||||
bool pyrna_id_FromPyObject(struct PyObject *obj, struct ID **id) RET_ZERO
|
||||
struct PyObject *pyrna_id_CreatePyObject(struct ID *id) RET_NULL
|
||||
bool pyrna_id_CheckPyObject(struct PyObject *obj) RET_ZERO
|
||||
void BPY_context_update(struct bContext *C) RET_NONE
|
||||
const char *BPY_app_translations_py_pgettext(const char *msgctxt, const char *msgid) RET_ARG(msgid)
|
||||
|
||||
/* intern/dualcon */
|
||||
|
||||
void *dualcon(const DualConInput *input_mesh,
|
||||
/* callbacks for output */
|
||||
DualConAllocOutput alloc_output,
|
||||
DualConAddVert add_vert,
|
||||
DualConAddQuad add_quad,
|
||||
|
||||
DualConFlags flags,
|
||||
DualConMode mode,
|
||||
float threshold,
|
||||
float hermite_num,
|
||||
float scale,
|
||||
int depth) RET_ZERO
|
||||
|
||||
/* compositor */
|
||||
void COM_execute(RenderData *rd, Scene *scene, bNodeTree *editingtree, int rendering,
|
||||
const ColorManagedViewSettings *viewSettings, const ColorManagedDisplaySettings *displaySettings,
|
||||
const char *viewName) RET_NONE
|
||||
|
||||
/*multiview*/
|
||||
bool RE_RenderResult_is_stereo(RenderResult *res) RET_ZERO
|
||||
void uiTemplateImageViews(uiLayout *layout, struct PointerRNA *imfptr) RET_NONE
|
||||
|
||||
#endif // WITH_GAMEENGINE
|
Loading…
Reference in New Issue
Block a user