diff options
author | Mike Erwin <significant.bit@gmail.com> | 2017-03-22 21:48:47 +0300 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2017-03-22 21:48:47 +0300 |
commit | 98a0dd6888b74de132fa936e15f5d589042e8f91 (patch) | |
tree | b3e0f498fd73dc7fda77d8393cc599b15e0265ac /source/blender/editors | |
parent | 0c2fd1357d32744c59957e0bdc846d34e7b74f30 (diff) |
OpenGL: load projection matrix with new API
New API does not share legacy OpenGL's concept of matrix modes.
Part of T49450
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/screen/glutil.c | 13 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 8 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw_legacy.c | 5 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_view.c | 4 |
4 files changed, 7 insertions, 23 deletions
diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c index 0834f05706e..05572146df7 100644 --- a/source/blender/editors/screen/glutil.c +++ b/source/blender/editors/screen/glutil.c @@ -675,9 +675,7 @@ void glaEnd2DDraw(gla2DDrawInfo *di) { glViewport(di->orig_vp[0], di->orig_vp[1], di->orig_vp[2], di->orig_vp[3]); glScissor(di->orig_vp[0], di->orig_vp[1], di->orig_vp[2], di->orig_vp[3]); - glMatrixMode(GL_PROJECTION); - gpuLoadMatrix3D(di->orig_projmat); - glMatrixMode(GL_MODELVIEW); + gpuLoadProjectionMatrix3D(di->orig_projmat); gpuLoadMatrix3D(di->orig_viewmat); MEM_freeN(di); @@ -702,7 +700,6 @@ void bglPolygonOffset(float viewdist, float dist) // glPolygonOffset(-1.0, -1.0); /* hack below is to mimic polygon offset */ - glMatrixMode(GL_PROJECTION); gpuGetProjectionMatrix3D(winmat); /* dist is from camera to center point */ @@ -734,17 +731,13 @@ void bglPolygonOffset(float viewdist, float dist) winmat[14] -= offs; offset += offs; - - gpuLoadMatrix3D(winmat); - glMatrixMode(GL_MODELVIEW); } else { - glMatrixMode(GL_PROJECTION); winmat[14] += offset; offset = 0.0; - gpuLoadMatrix3D(winmat); - glMatrixMode(GL_MODELVIEW); } + + gpuLoadProjectionMatrix3D(winmat); } /* **** Color management helper functions for GLSL display/transform ***** */ diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 2fa154015fd..0aad272eaa4 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -207,9 +207,7 @@ static void view3d_main_region_setup_view(Scene *scene, View3D *v3d, ARegion *ar ED_view3d_update_viewmat(scene, v3d, ar, viewmat, winmat); /* set for opengl */ - glMatrixMode(GL_PROJECTION); - gpuLoadMatrix3D(rv3d->winmat); /* XXX make a gpuLoadProjectionMatrix function? */ - glMatrixMode(GL_MODELVIEW); + gpuLoadProjectionMatrix3D(rv3d->winmat); gpuLoadMatrix3D(rv3d->viewmat); } @@ -1496,9 +1494,7 @@ static void view3d_draw_grid(const bContext *C, ARegion *ar) *(&grid_unit) = NULL; /* drawgrid need this to detect/affect smallest valid unit... */ drawgrid(&scene->unit, ar, v3d, &grid_unit); - glMatrixMode(GL_PROJECTION); - gpuLoadMatrix3D(rv3d->winmat); /* XXX make a gpuLoadProjectionMatrix function? */ - glMatrixMode(GL_MODELVIEW); + gpuLoadProjectionMatrix3D(rv3d->winmat); gpuLoadMatrix3D(rv3d->viewmat); } else { diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c index 43e6742061b..3ea3214231a 100644 --- a/source/blender/editors/space_view3d/view3d_draw_legacy.c +++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c @@ -1584,10 +1584,7 @@ static void view3d_draw_objects( ED_region_pixelspace(ar); *grid_unit = NULL; /* drawgrid need this to detect/affect smallest valid unit... */ VP_legacy_drawgrid(&scene->unit, ar, v3d, grid_unit); - /* XXX make function? replaces persp(1) */ - glMatrixMode(GL_PROJECTION); - gpuLoadMatrix3D(rv3d->winmat); /* XXX make a gpuLoadProjectionMatrix function? */ - glMatrixMode(GL_MODELVIEW); + gpuLoadProjectionMatrix3D(rv3d->winmat); gpuLoadMatrix3D(rv3d->viewmat); } else if (!draw_grids_after) { diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 05915b31322..f0ea7fce0d7 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -96,9 +96,7 @@ void view3d_region_operator_needs_opengl(wmWindow *win, ARegion *ar) RegionView3D *rv3d = ar->regiondata; wmSubWindowSet(win, ar->swinid); - glMatrixMode(GL_PROJECTION); - gpuLoadMatrix3D(rv3d->winmat); - glMatrixMode(GL_MODELVIEW); + gpuLoadProjectionMatrix3D(rv3d->winmat); gpuLoadMatrix3D(rv3d->viewmat); } } |