diff options
Diffstat (limited to 'source/blender/windowmanager/manipulators/intern')
4 files changed, 17 insertions, 21 deletions
diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c index ae3febfc2d1..d526f754d51 100644 --- a/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c +++ b/source/blender/windowmanager/manipulators/intern/manipulator_library/arrow_manipulator.c @@ -42,6 +42,7 @@ #include "RNA_types.h" #include "WM_types.h" +#include "WM_api.h" #include "manipulator_geometry.h" #include "manipulator_library_intern.h" @@ -130,7 +131,7 @@ static void arrow_draw_geom(const ArrowManipulator *arrow, const float col[4], c const float len = arrow->length; const bool use_lighting = /*select == false && ((U.manipulator_flag & V3D_SHADED_MANIPULATORS) != 0)*/ false; - glTranslate3fv(arrow->manipulator.offset); + glTranslatef(UNPACK3(arrow->manipulator.offset)); arrow_draw_line(arrow, col, len); @@ -173,7 +174,7 @@ static void arrow_draw_intern(const ArrowManipulator *arrow, const bool select, arrow_get_matrix(arrow, rot, mat); glPushMatrix(); - glMultMatrixf(mat); + glMultMatrixf((float *)mat); glEnable(GL_BLEND); arrow_draw_geom(arrow, col, select); @@ -190,7 +191,7 @@ static void arrow_draw_intern(const ArrowManipulator *arrow, const bool select, mul_mat3_m4_fl(mat, inter->init_scale); glPushMatrix(); - glMultMatrixf(mat); + glMultMatrixf((float *)mat); glEnable(GL_BLEND); arrow_draw_geom(arrow, ghost_col, select); diff --git a/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c b/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c index ffc38371d7d..908471ec728 100644 --- a/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c +++ b/source/blender/windowmanager/manipulators/intern/manipulator_library/dial_manipulator.c @@ -96,7 +96,7 @@ static void dial_geom_draw( if (use_clipping) { glEnable(GL_CLIP_DISTANCE0); immUniform4fv("ClipPlane", clipping_plane); - immUniformMat4("ModelMatrix", mat); + immUniformMatrix4fv("ModelMatrix", mat); } if (filled) { @@ -117,7 +117,6 @@ static void dial_ghostarc_draw_helpline(const float angle, const float co_outer[ immBindBuiltinProgram(GPU_SHADER_3D_UNIFORM_COLOR); immUniformColor4fv(col); - gpuMatrixBegin3D_legacy(); gpuPushMatrix(); gpuRotateAxis(-RAD2DEGF(angle), 'Z'); @@ -127,7 +126,6 @@ static void dial_ghostarc_draw_helpline(const float angle, const float co_outer[ immEnd(); gpuPopMatrix(); - gpuMatrixEnd(); immUnbindProgram(); } @@ -197,7 +195,7 @@ static void dial_draw_intern(const bContext *C, DialManipulator *dial, const boo } glPushMatrix(); - glMultMatrixf(mat); + glMultMatrixf((float *)mat); if (use_value_indicator) { const float col_inner[] = {0.8f, 0.8f, 0.8f, 0.4f}; diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h index cfdc085e7e4..d435130927e 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator_intern.h @@ -35,7 +35,7 @@ struct wmManipulatorMap; /* wmManipulator */ /* manipulators are set per region by registering them on manipulator-maps */ -typedef struct wmManipulator { +struct wmManipulator { struct wmManipulator *next, *prev; char idname[MAX_NAME + 4]; /* + 4 for unique '.001', '.002', etc suffix */ @@ -106,7 +106,7 @@ typedef struct wmManipulator { * the manipulator is interacted with, those properties get updated */ PointerRNA *ptr; PropertyRNA **props; -} wmManipulator; +}; /* wmManipulator.state */ enum { @@ -170,7 +170,7 @@ void wm_manipulatorgrouptype_keymap_init(struct wmManipulatorGroupType *mgroupty /* -------------------------------------------------------------------- */ /* wmManipulatorMap */ -typedef struct wmManipulatorMap { +struct wmManipulatorMap { struct wmManipulatorMap *next, *prev; struct wmManipulatorMapType *type; @@ -194,7 +194,7 @@ typedef struct wmManipulatorMap { struct wmManipulator **selected_manipulator; int tot_selected; } mmap_context; -} wmManipulatorMap; +}; /** * This is a container for all manipulator types that can be instantiated in a region. @@ -202,13 +202,13 @@ typedef struct wmManipulatorMap { * * \note There is only ever one of these for every (area, region) combination. */ -typedef struct wmManipulatorMapType { +struct wmManipulatorMapType { struct wmManipulatorMapType *next, *prev; char idname[64]; short spaceid, regionid; /* types of manipulator-groups for this manipulator-map type */ ListBase manipulator_grouptypes; -} wmManipulatorMapType; +}; void wm_manipulatormap_selected_delete(wmManipulatorMap *mmap); bool wm_manipulatormap_deselect_all(struct wmManipulatorMap *mmap, wmManipulator ***sel); diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c index 960a77fd74c..303a625fc23 100644 --- a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c +++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c @@ -279,35 +279,32 @@ static int manipulator_find_intersected_3D_intern( ARegion *ar = CTX_wm_region(C); View3D *v3d = sa->spacedata.first; RegionView3D *rv3d = ar->regiondata; - rctf rect, selrect; + rcti rect; GLuint buffer[64]; // max 4 items per select, so large enuf short hits; const bool do_passes = GPU_select_query_check_active(); - extern void view3d_winmatrix_set(ARegion *ar, View3D *v3d, rctf *rect); - + extern void view3d_winmatrix_set(ARegion *ar, View3D *v3d, const rcti *rect); rect.xmin = co[0] - hotspot; rect.xmax = co[0] + hotspot; rect.ymin = co[1] - hotspot; rect.ymax = co[1] + hotspot; - selrect = rect; - view3d_winmatrix_set(ar, v3d, &rect); mul_m4_m4m4(rv3d->persmat, rv3d->winmat, rv3d->viewmat); if (do_passes) - GPU_select_begin(buffer, ARRAY_SIZE(buffer), &selrect, GPU_SELECT_NEAREST_FIRST_PASS, 0); + GPU_select_begin(buffer, ARRAY_SIZE(buffer), &rect, GPU_SELECT_NEAREST_FIRST_PASS, 0); else - GPU_select_begin(buffer, ARRAY_SIZE(buffer), &selrect, GPU_SELECT_ALL, 0); + GPU_select_begin(buffer, ARRAY_SIZE(buffer), &rect, GPU_SELECT_ALL, 0); /* do the drawing */ manipulator_find_active_3D_loop(C, visible_manipulators); hits = GPU_select_end(); if (do_passes) { - GPU_select_begin(buffer, ARRAY_SIZE(buffer), &selrect, GPU_SELECT_NEAREST_SECOND_PASS, hits); + GPU_select_begin(buffer, ARRAY_SIZE(buffer), &rect, GPU_SELECT_NEAREST_SECOND_PASS, hits); manipulator_find_active_3D_loop(C, visible_manipulators); GPU_select_end(); } |