OpenGL: convert to new matrix API (part 3)
Part of T49450
This commit is contained in:
parent
8fe9e94a52
commit
d409c48310
|
@ -58,9 +58,9 @@
|
|||
#include "ED_space_api.h"
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
#include "GPU_draw.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_glutil.h"
|
||||
#include "BLF_api.h"
|
||||
|
||||
|
@ -123,7 +123,7 @@ static void region_draw_emboss(const ARegion *ar, const rcti *scirct)
|
|||
void ED_region_pixelspace(ARegion *ar)
|
||||
{
|
||||
wmOrtho2_region_pixelspace(ar);
|
||||
glLoadIdentity();
|
||||
gpuLoadIdentity();
|
||||
}
|
||||
|
||||
/* only exported for WM */
|
||||
|
@ -455,8 +455,8 @@ static void region_draw_azones(ScrArea *sa, ARegion *ar)
|
|||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(-ar->winrct.xmin, -ar->winrct.ymin, 0.0f);
|
||||
gpuPushMatrix();
|
||||
gpuTranslate2f(-ar->winrct.xmin, -ar->winrct.ymin);
|
||||
|
||||
for (az = sa->actionzones.first; az; az = az->next) {
|
||||
/* test if action zone is over this region */
|
||||
|
@ -493,7 +493,7 @@ static void region_draw_azones(ScrArea *sa, ARegion *ar)
|
|||
}
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
@ -2338,11 +2338,11 @@ void ED_region_image_metadata_draw(int x, int y, ImBuf *ibuf, const rctf *frame,
|
|||
return;
|
||||
|
||||
/* find window pixel coordinates of origin */
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
/* offset and zoom using ogl */
|
||||
glTranslatef(x, y, 0.0f);
|
||||
glScalef(zoomx, zoomy, 1.0f);
|
||||
gpuTranslate2f(x, y);
|
||||
gpuScale2f(zoomx, zoomy);
|
||||
|
||||
BLF_size(blf_mono_font, style->widgetlabel.points * 1.5f * U.pixelsize, U.dpi);
|
||||
|
||||
|
@ -2396,7 +2396,7 @@ void ED_region_image_metadata_draw(int x, int y, ImBuf *ibuf, const rctf *frame,
|
|||
BLF_disable(blf_mono_font, BLF_CLIPPING);
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
void ED_region_grid_draw(ARegion *ar, float zoomx, float zoomy)
|
||||
|
|
|
@ -207,11 +207,10 @@ 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 */
|
||||
/* TODO(merwin): transition to GPU_matrix API */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadMatrixf(rv3d->winmat);
|
||||
gpuLoadMatrix3D(rv3d->winmat); /* XXX make a gpuLoadProjectionMatrix function? */
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadMatrixf(rv3d->viewmat);
|
||||
gpuLoadMatrix3D(rv3d->viewmat);
|
||||
}
|
||||
|
||||
static bool view3d_stereo3d_active(const bContext *C, Scene *scene, View3D *v3d, RegionView3D *rv3d)
|
||||
|
@ -773,9 +772,9 @@ static bool view3d_draw_render_draw(const bContext *C, Scene *scene,
|
|||
|
||||
/* background draw */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
ED_region_pixelspace(ar);
|
||||
|
||||
if (clip_border) {
|
||||
|
@ -804,9 +803,9 @@ static bool view3d_draw_render_draw(const bContext *C, Scene *scene,
|
|||
}
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -1498,9 +1497,9 @@ static void view3d_draw_grid(const bContext *C, ARegion *ar)
|
|||
drawgrid(&scene->unit, ar, v3d, &grid_unit);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadMatrixf(rv3d->winmat);
|
||||
gpuLoadMatrix3D(rv3d->winmat); /* XXX make a gpuLoadProjectionMatrix function? */
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadMatrixf(rv3d->viewmat);
|
||||
gpuLoadMatrix3D(rv3d->viewmat);
|
||||
}
|
||||
else {
|
||||
drawfloor(scene, v3d, &grid_unit, false);
|
||||
|
@ -1786,9 +1785,9 @@ Scene *scene, SceneLayer *sl, Object *ob, Base *base, View3D *v3d,
|
|||
RegionView3D *rv3d, const bool is_boundingbox, const unsigned char color[4])
|
||||
{
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
/* multiply view with object matrix.
|
||||
* local viewmat and persmat, to calculate projections */
|
||||
|
@ -1834,9 +1833,9 @@ RegionView3D *rv3d, const bool is_boundingbox, const unsigned char color[4])
|
|||
ED_view3d_clear_mats_rv3d(rv3d);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
/* ******************** info ***************** */
|
||||
|
|
|
@ -76,7 +76,6 @@
|
|||
#include "IMB_imbuf.h"
|
||||
#include "IMB_colormanagement.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_glutil.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
|
@ -103,6 +102,7 @@
|
|||
#include "GPU_extensions.h"
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_select.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "view3d_intern.h" /* own include */
|
||||
|
||||
|
@ -752,13 +752,13 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
|
|||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
ED_region_pixelspace(ar);
|
||||
|
||||
glTranslatef(centx, centy, 0.0);
|
||||
glRotatef(RAD2DEGF(-bgpic->rotation), 0.0f, 0.0f, 1.0f);
|
||||
gpuTranslate2f(centx, centy);
|
||||
gpuRotate2D(RAD2DEGF(-bgpic->rotation));
|
||||
|
||||
if (bgpic->flag & V3D_BGPIC_FLIP_X) {
|
||||
zoomx *= -1.0f;
|
||||
|
@ -775,9 +775,9 @@ static void view3d_draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d,
|
|||
zoomx, zoomy, col);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
|
@ -1190,7 +1190,7 @@ void ED_view3d_draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d)
|
|||
|
||||
glClear(GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glLoadMatrixf(rv3d->viewmat);
|
||||
gpuLoadMatrix3D(rv3d->viewmat);
|
||||
|
||||
v3d->zbuf = true;
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
@ -1228,7 +1228,7 @@ void ED_view3d_draw_depth(Scene *scene, ARegion *ar, View3D *v3d, bool alphaover
|
|||
|
||||
glClear(GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glLoadMatrixf(rv3d->viewmat);
|
||||
gpuLoadMatrix3D(rv3d->viewmat);
|
||||
|
||||
if (rv3d->rflag & RV3D_CLIPPING) {
|
||||
ED_view3d_clipping_set(rv3d);
|
||||
|
@ -1586,9 +1586,9 @@ static void view3d_draw_objects(
|
|||
VP_legacy_drawgrid(&scene->unit, ar, v3d, grid_unit);
|
||||
/* XXX make function? replaces persp(1) */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadMatrixf(rv3d->winmat);
|
||||
gpuLoadMatrix3D(rv3d->winmat); /* XXX make a gpuLoadProjectionMatrix function? */
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadMatrixf(rv3d->viewmat);
|
||||
gpuLoadMatrix3D(rv3d->viewmat);
|
||||
}
|
||||
else if (!draw_grids_after) {
|
||||
VP_legacy_drawfloor(scene, v3d, grid_unit, true);
|
||||
|
@ -1798,7 +1798,7 @@ void ED_view3d_draw_offscreen(
|
|||
bool do_compositing = false;
|
||||
RegionView3D *rv3d = ar->regiondata;
|
||||
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
/* set temporary new size */
|
||||
int bwinx = ar->winx;
|
||||
|
@ -1884,7 +1884,7 @@ void ED_view3d_draw_offscreen(
|
|||
ar->winy = bwiny;
|
||||
ar->winrct = brect;
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
UI_Theme_Restore(&theme_state);
|
||||
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
#include "GPU_draw.h"
|
||||
#include "GPU_extensions.h"
|
||||
#include "GPU_material.h"
|
||||
#include "GPU_matrix.h"
|
||||
#include "GPU_shader.h"
|
||||
#include "GPU_texture.h"
|
||||
|
||||
|
@ -155,12 +156,12 @@ void GPU_render_text(
|
|||
character = BLI_str_utf8_as_unicode_and_size_safe(textstr + index, &index);
|
||||
|
||||
if (character == '\n') {
|
||||
glTranslatef(line_start, -line_height, 0.0f);
|
||||
gpuTranslate2f(line_start, -line_height);
|
||||
line_start = 0.0f;
|
||||
continue;
|
||||
}
|
||||
else if (character == '\t') {
|
||||
glTranslatef(advance_tab, 0.0f, 0.0f);
|
||||
gpuTranslate2f(advance_tab, 0.0f);
|
||||
line_start -= advance_tab; /* so we can go back to the start of the line */
|
||||
continue;
|
||||
|
||||
|
@ -209,10 +210,10 @@ void GPU_render_text(
|
|||
}
|
||||
glEnd();
|
||||
|
||||
glTranslatef(advance, 0.0f, 0.0f);
|
||||
gpuTranslate2f(advance, 0.0f);
|
||||
line_start -= advance; /* so we can go back to the start of the line */
|
||||
}
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
BKE_image_release_ibuf(ima, first_ibuf, NULL);
|
||||
}
|
||||
|
@ -419,7 +420,7 @@ void GPU_clear_tpage(bool force)
|
|||
GTS.curima = NULL;
|
||||
if (GTS.curtilemode != 0) {
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
gpuLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
GTS.curtilemode = 0;
|
||||
|
@ -603,10 +604,10 @@ int GPU_verify_image(
|
|||
GTS.curtileYRep != GTS.tileYRep)
|
||||
{
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
gpuLoadIdentity();
|
||||
|
||||
if (ima && (ima->tpageflag & IMA_TILES))
|
||||
glScalef(ima->xrep, ima->yrep, 1.0f);
|
||||
gpuScale2f(ima->xrep, ima->yrep);
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
@ -2095,7 +2096,7 @@ void GPU_end_object_materials(void)
|
|||
/* resetting the texture matrix after the scaling needed for tiled textures */
|
||||
if (GTS.tilemode) {
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
gpuLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
}
|
||||
|
@ -2172,8 +2173,8 @@ int GPU_scene_object_lights(Scene *scene, Object *ob, int lay, float viewmat[4][
|
|||
Lamp *la = base->object->data;
|
||||
|
||||
/* setup lamp transform */
|
||||
glPushMatrix();
|
||||
glLoadMatrixf((float *)viewmat);
|
||||
gpuPushMatrix();
|
||||
gpuLoadMatrix3D(viewmat);
|
||||
|
||||
/* setup light */
|
||||
GPULightData light = {0};
|
||||
|
@ -2207,7 +2208,7 @@ int GPU_scene_object_lights(Scene *scene, Object *ob, int lay, float viewmat[4][
|
|||
|
||||
GPU_basic_shader_light_set(count, &light);
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
count++;
|
||||
if (count == 8)
|
||||
|
@ -2285,7 +2286,7 @@ void GPU_state_init(void)
|
|||
glDepthRange(0.0, 1.0);
|
||||
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
gpuLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
|
||||
glFrontFace(GL_CCW);
|
||||
|
|
|
@ -225,9 +225,9 @@ void GPU_texture_bind_as_framebuffer(GPUTexture *tex)
|
|||
GG.currentfb = fb->object;
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
}
|
||||
|
||||
void GPU_framebuffer_slots_bind(GPUFrameBuffer *fb, int slot)
|
||||
|
@ -263,9 +263,9 @@ void GPU_framebuffer_slots_bind(GPUFrameBuffer *fb, int slot)
|
|||
GG.currentfb = fb->object;
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
}
|
||||
|
||||
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
|
||||
|
@ -310,9 +310,9 @@ void GPU_framebuffer_texture_unbind(GPUFrameBuffer *UNUSED(fb), GPUTexture *UNUS
|
|||
{
|
||||
/* restore matrix */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
/* restore attributes */
|
||||
glPopAttrib();
|
||||
|
|
|
@ -89,7 +89,9 @@
|
|||
#include "BLF_api.h"
|
||||
|
||||
#include "BIF_glutil.h" /* for paint cursor */
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "IMB_imbuf_types.h"
|
||||
#include "IMB_imbuf.h"
|
||||
|
@ -3079,8 +3081,8 @@ static void radial_control_paint_tex(RadialControl *rc, float radius, float alph
|
|||
/* set up rotation if available */
|
||||
if (rc->rot_prop) {
|
||||
rot = RNA_property_float_get(&rc->rot_ptr, rc->rot_prop);
|
||||
glPushMatrix();
|
||||
glRotatef(RAD2DEGF(rot), 0, 0, 1);
|
||||
gpuPushMatrix();
|
||||
gpuRotate2D(RAD2DEGF(rot));
|
||||
}
|
||||
|
||||
/* draw textured quad */
|
||||
|
@ -3102,7 +3104,7 @@ static void radial_control_paint_tex(RadialControl *rc, float radius, float alph
|
|||
|
||||
/* undo rotation */
|
||||
if (rc->rot_prop)
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
else {
|
||||
/* flat color if no texture available */
|
||||
|
@ -3170,7 +3172,7 @@ static void radial_control_paint_cursor(bContext *C, int x, int y, void *customd
|
|||
/* Keep cursor in the original place */
|
||||
x = rc->initial_mouse[0] - ar->winrct.xmin;
|
||||
y = rc->initial_mouse[1] - ar->winrct.ymin;
|
||||
glTranslatef((float)x, (float)y, 0.0f);
|
||||
gpuTranslate2f((float)x, (float)y);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glEnable(GL_LINE_SMOOTH);
|
||||
|
@ -3178,7 +3180,7 @@ static void radial_control_paint_cursor(bContext *C, int x, int y, void *customd
|
|||
/* apply zoom if available */
|
||||
if (rc->zoom_prop) {
|
||||
RNA_property_float_get_array(&rc->zoom_ptr, rc->zoom_prop, zoom);
|
||||
glScalef(zoom[0], zoom[1], 1);
|
||||
gpuScale2fv(zoom);
|
||||
}
|
||||
|
||||
/* draw rotated texture */
|
||||
|
@ -3195,23 +3197,23 @@ static void radial_control_paint_cursor(bContext *C, int x, int y, void *customd
|
|||
immUniformColor3fvAlpha(col, 0.5);
|
||||
|
||||
if (rc->subtype == PROP_ANGLE) {
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
/* draw original angle line */
|
||||
glRotatef(RAD2DEGF(rc->initial_value), 0, 0, 1);
|
||||
gpuRotate2D(RAD2DEGF(rc->initial_value));
|
||||
immBegin(GL_LINES, 2);
|
||||
immVertex2f(pos, (float)WM_RADIAL_CONTROL_DISPLAY_MIN_SIZE, 0.0f);
|
||||
immVertex2f(pos, (float)WM_RADIAL_CONTROL_DISPLAY_SIZE, 0.0f);
|
||||
immEnd();
|
||||
|
||||
/* draw new angle line */
|
||||
glRotatef(RAD2DEGF(rc->current_value - rc->initial_value), 0, 0, 1);
|
||||
gpuRotate2D(RAD2DEGF(rc->current_value - rc->initial_value));
|
||||
immBegin(GL_LINES, 2);
|
||||
immVertex2f(pos, (float)WM_RADIAL_CONTROL_DISPLAY_MIN_SIZE, 0.0f);
|
||||
immVertex2f(pos, (float)WM_RADIAL_CONTROL_DISPLAY_SIZE, 0.0f);
|
||||
immEnd();
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
/* draw circles on top */
|
||||
|
|
|
@ -64,6 +64,8 @@
|
|||
#include "BIF_gl.h"
|
||||
#include "BIF_glutil.h"
|
||||
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "DNA_scene_types.h"
|
||||
#include "ED_datafiles.h" /* for fonts */
|
||||
#include "GHOST_C-api.h"
|
||||
|
@ -191,8 +193,8 @@ static void playanim_gl_matrix(void)
|
|||
{
|
||||
/* unified matrix, note it affects offset for drawing */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
|
||||
gpuLoadIdentity();
|
||||
glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f); /* XXX revisit this when 2D matrix API is complete */
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
|
@ -355,11 +357,11 @@ static void playanim_toscreen(PlayState *ps, PlayAnimPict *picture, struct ImBuf
|
|||
|
||||
fac = 2.0f * fac - 1.0f;
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
glLoadIdentity();
|
||||
gpuPushMatrix();
|
||||
gpuLoadIdentity();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
glLoadIdentity();
|
||||
gpuPushMatrix();
|
||||
gpuLoadIdentity();
|
||||
|
||||
glColor4f(0.0f, 1.0f, 0.0f, 1.0f);
|
||||
|
||||
|
@ -368,9 +370,9 @@ static void playanim_toscreen(PlayState *ps, PlayAnimPict *picture, struct ImBuf
|
|||
glVertex2f(fac, 1.0f);
|
||||
glEnd();
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue