OpenGL: convert to new matrix API (part 4)
Part of T49450, fixes a Push/Pop mismatch from part yesterday's 3.
This commit is contained in:
parent
7870bde275
commit
3bd831d1d6
|
@ -58,13 +58,12 @@
|
|||
|
||||
#include "RNA_access.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
|
||||
#include "UI_interface.h"
|
||||
#include "UI_resources.h"
|
||||
#include "UI_view2d.h"
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
/* *************************************************** */
|
||||
/* CURRENT FRAME DRAWING */
|
||||
|
@ -81,8 +80,9 @@ static void draw_cfra_number(Scene *scene, View2D *v2d, const float cfra, const
|
|||
int slen;
|
||||
|
||||
/* because the frame number text is subject to the same scaling as the contents of the view */
|
||||
gpuPushMatrix();
|
||||
UI_view2d_scale_get(v2d, &xscale, &yscale);
|
||||
glScalef(1.0f / xscale, 1.0f, 1.0f);
|
||||
gpuScale2f(1.0f / xscale, 1.0f);
|
||||
|
||||
/* get timecode string
|
||||
* - padding on str-buf passed so that it doesn't sit on the frame indicator
|
||||
|
@ -115,7 +115,7 @@ static void draw_cfra_number(Scene *scene, View2D *v2d, const float cfra, const
|
|||
UI_fontstyle_draw_simple(fstyle, x - 0.25f * U.widget_unit, y + 0.15f * U.widget_unit, numstr, col);
|
||||
|
||||
/* restore view transform */
|
||||
glScalef(xscale, 1.0, 1.0);
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
/* General call for drawing current frame indicator in animation editor */
|
||||
|
|
|
@ -56,10 +56,10 @@
|
|||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_glutil.h"
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "UI_interface.h"
|
||||
#include "UI_interface_icons.h"
|
||||
|
@ -464,7 +464,8 @@ void ED_markers_draw(const bContext *C, int flag)
|
|||
/* no time correction for framelen! space is drawn with old values */
|
||||
ypixels = BLI_rcti_size_y(&v2d->mask);
|
||||
UI_view2d_scale_get(v2d, &xscale, &yscale);
|
||||
glScalef(1.0f / xscale, 1.0f, 1.0f);
|
||||
gpuPushMatrix();
|
||||
gpuScale2f(1.0f / xscale, 1.0f);
|
||||
|
||||
/* x-bounds with offset for text (adjust for long string, avoid checking string width) */
|
||||
font_width_max = (10 * UI_DPI_FAC) / xscale;
|
||||
|
@ -487,7 +488,7 @@ void ED_markers_draw(const bContext *C, int flag)
|
|||
}
|
||||
}
|
||||
|
||||
glScalef(xscale, 1.0f, 1.0f);
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
/* ************************ Marker Wrappers API ********************* */
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
#include "BKE_screen.h"
|
||||
#include "BKE_idprop.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "BLF_api.h"
|
||||
#include "BLT_translation.h"
|
||||
|
@ -1378,10 +1378,10 @@ void UI_block_draw(const bContext *C, uiBlock *block)
|
|||
|
||||
/* pixel space for AA widgets */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
glLoadIdentity();
|
||||
gpuPushMatrix();
|
||||
gpuLoadIdentity();
|
||||
|
||||
wmOrtho2_region_pixelspace(ar);
|
||||
|
||||
|
@ -1407,9 +1407,9 @@ void UI_block_draw(const bContext *C, uiBlock *block)
|
|||
|
||||
/* restore matrix */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
if (multisample_enabled)
|
||||
glEnable(GL_MULTISAMPLE);
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
#include "GPU_immediate.h"
|
||||
#include "GPU_draw.h"
|
||||
#include "GPU_shader.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "UI_resources.h"
|
||||
#include "UI_view2d.h"
|
||||
|
@ -762,17 +763,17 @@ void ED_mask_draw_region(Mask *mask, ARegion *ar,
|
|||
glBlendFunc(GL_DST_COLOR, GL_ZERO);
|
||||
}
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(x, y, 0);
|
||||
glScalef(zoomx, zoomy, 0);
|
||||
gpuPushMatrix();
|
||||
gpuTranslate2f(x, y);
|
||||
gpuScale2f(zoomx, zoomy);
|
||||
if (stabmat) {
|
||||
glMultMatrixf((const float *) stabmat);
|
||||
gpuMultMatrix3D(stabmat); /* XXX make this a 2D matrix */
|
||||
}
|
||||
GPUShader *shader = immDrawPixelsTexSetup(GPU_SHADER_2D_IMAGE_SHUFFLE_COLOR);
|
||||
GPU_shader_uniform_vector(shader, GPU_shader_get_uniform(shader, "shuffle"), 4, 1, red);
|
||||
immDrawPixelsTex(0.0f, 0.0f, width, height, GL_RED, GL_FLOAT, GL_NEAREST, buffer, 1.0f, 1.0f, NULL);
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
|
||||
if (overlay_mode != MASK_OVERLAY_ALPHACHANNEL) {
|
||||
glDisable(GL_BLEND);
|
||||
|
@ -782,14 +783,14 @@ void ED_mask_draw_region(Mask *mask, ARegion *ar,
|
|||
}
|
||||
|
||||
/* apply transformation so mask editing tools will assume drawing from the origin in normalized space */
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
if (stabmat) {
|
||||
glMultMatrixf((const float *) stabmat);
|
||||
gpuMultMatrix3D(stabmat); /* XXX make this a 2D matrix */
|
||||
}
|
||||
|
||||
glTranslatef(x + xofs, y + yofs, 0);
|
||||
glScalef(maxdim * zoomx, maxdim * zoomy, 0);
|
||||
gpuTranslate2f(x + xofs, y + yofs);
|
||||
gpuScale2f(maxdim * zoomx, maxdim * zoomy);
|
||||
|
||||
if (do_draw_cb) {
|
||||
ED_region_draw_cb_draw(C, ar, REGION_DRAW_PRE_VIEW);
|
||||
|
@ -802,7 +803,7 @@ void ED_mask_draw_region(Mask *mask, ARegion *ar,
|
|||
ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
void ED_mask_draw_frames(Mask *mask, ARegion *ar, const int cfra, const int sfra, const int efra)
|
||||
|
|
|
@ -71,9 +71,9 @@
|
|||
#include "RNA_access.h"
|
||||
#include "RNA_define.h"
|
||||
|
||||
#include "GPU_glew.h"
|
||||
#include "GPU_compositing.h"
|
||||
#include "GPU_framebuffer.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "render_intern.h"
|
||||
|
||||
|
@ -335,7 +335,7 @@ static void screen_opengl_render_doit(OGLRender *oglrender, RenderResult *rr)
|
|||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
wmOrtho2(0, sizex, 0, sizey);
|
||||
glTranslatef(sizex / 2, sizey / 2, 0.0f);
|
||||
gpuTranslate2f(sizex / 2, sizey / 2);
|
||||
|
||||
G.f |= G_RENDER_OGL;
|
||||
ED_gpencil_draw_ex(scene, gpd, sizex, sizey, scene->r.cfra, SPACE_SEQ);
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
|
||||
#include "GPU_basic_shader.h"
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "UI_interface.h"
|
||||
|
||||
|
@ -568,12 +569,12 @@ void glaDefine2DArea(rcti *screen_rect)
|
|||
*/
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
gpuLoadIdentity();
|
||||
glOrtho(0.0, sc_w, 0.0, sc_h, -1, 1);
|
||||
glTranslatef(GLA_PIXEL_OFS, GLA_PIXEL_OFS, 0.0);
|
||||
gpuTranslate2f(GLA_PIXEL_OFS, GLA_PIXEL_OFS);
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
gpuLoadIdentity();
|
||||
}
|
||||
|
||||
/* TODO(merwin): put the following 2D code to use, or build new 2D code inspired & informd by it */
|
||||
|
@ -684,9 +685,9 @@ 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);
|
||||
glLoadMatrixf(di->orig_projmat);
|
||||
gpuLoadMatrix3D(di->orig_projmat);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadMatrixf(di->orig_viewmat);
|
||||
gpuLoadMatrix3D(di->orig_viewmat);
|
||||
|
||||
MEM_freeN(di);
|
||||
}
|
||||
|
@ -743,14 +744,14 @@ void bglPolygonOffset(float viewdist, float dist)
|
|||
winmat[14] -= offs;
|
||||
offset += offs;
|
||||
|
||||
glLoadMatrixf(winmat);
|
||||
gpuLoadMatrix3D(winmat);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
else {
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
winmat[14] += offset;
|
||||
offset = 0.0;
|
||||
glLoadMatrixf(winmat);
|
||||
gpuLoadMatrix3D(winmat);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include "GPU_framebuffer.h"
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
@ -463,7 +464,7 @@ static void screen_preview_draw(const bScreen *screen, int size_x, int size_y)
|
|||
|
||||
wmOrtho2(0.0f, size_x, 0.0f, size_y);
|
||||
/* center */
|
||||
glTranslatef(size_x * (1.0f - asp[0]) * 0.5f, size_y * (1.0f - asp[1]) * 0.5f, 0.0f);
|
||||
gpuTranslate2f(size_x * (1.0f - asp[0]) * 0.5f, size_y * (1.0f - asp[1]) * 0.5f);
|
||||
|
||||
screen_preview_scale_get(screen, size_x, size_y, asp, scale);
|
||||
screen_preview_draw_areas(screen, scale, col, 1.5f);
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "BKE_depsgraph.h"
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
@ -263,13 +264,13 @@ void clip_draw_cfra(SpaceClip *sc, ARegion *ar, Scene *scene)
|
|||
/* because the frame number text is subject to the same scaling as the contents of the view */
|
||||
float xscale, yscale;
|
||||
UI_view2d_scale_get(v2d, &xscale, &yscale);
|
||||
glPushMatrix();
|
||||
glScalef(1.0f / xscale, 1.0f, 1.0f);
|
||||
gpuPushMatrix();
|
||||
gpuScale2f(1.0f / xscale, 1.0f);
|
||||
|
||||
ED_region_cache_draw_curfra_label(sc->user.framenr, (float)sc->user.framenr * xscale, 18);
|
||||
|
||||
/* restore view transform */
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
void clip_draw_sfra_efra(View2D *v2d, Scene *scene)
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
|
||||
#include "IMB_imbuf.h"
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "WM_api.h"
|
||||
#include "WM_types.h"
|
||||
|
@ -1213,13 +1213,13 @@ static void clip_main_region_draw(const bContext *C, ARegion *ar)
|
|||
show_cursor |= sc->around == V3D_AROUND_CURSOR;
|
||||
|
||||
if (show_cursor) {
|
||||
glPushMatrix();
|
||||
glTranslatef(x, y, 0);
|
||||
glScalef(zoomx, zoomy, 0);
|
||||
glMultMatrixf(sc->stabmat);
|
||||
glScalef(width, height, 0);
|
||||
gpuPushMatrix();
|
||||
gpuTranslate2f(x, y);
|
||||
gpuScale2f(zoomx, zoomy);
|
||||
gpuMultMatrix3D(sc->stabmat); /* XXX make this a 2D matrix */
|
||||
gpuScale2f(width, height);
|
||||
ED_image_draw_cursor(ar, sc->cursor);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
clip_draw_cache_and_notes(C, sc, ar);
|
||||
|
|
|
@ -63,6 +63,7 @@
|
|||
#include "BIF_glutil.h"
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "BLF_api.h"
|
||||
|
||||
|
@ -114,15 +115,14 @@ static void draw_render_info(const bContext *C,
|
|||
int x, y;
|
||||
UI_view2d_view_to_region(&ar->v2d, 0.0f, 0.0f, &x, &y);
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(x, y, 0.0f);
|
||||
glScalef(zoomx, zoomy, 1.0f);
|
||||
gpuPushMatrix();
|
||||
gpuTranslate2f(x, y);
|
||||
gpuScale2f(zoomx, zoomy);
|
||||
|
||||
if (rd->mode & R_BORDER) {
|
||||
/* TODO: round or floor instead of casting to int */
|
||||
glTranslatef((int)(-rd->border.xmin * rd->xsch * rd->size * 0.01f),
|
||||
(int)(-rd->border.ymin * rd->ysch * rd->size * 0.01f),
|
||||
0.0f);
|
||||
gpuTranslate2f((int)(-rd->border.xmin * rd->xsch * rd->size * 0.01f),
|
||||
(int)(-rd->border.ymin * rd->ysch * rd->size * 0.01f));
|
||||
}
|
||||
|
||||
unsigned int pos = add_attrib(immVertexFormat(), "pos", COMP_F32, 2, KEEP_FLOAT);
|
||||
|
@ -142,7 +142,7 @@ static void draw_render_info(const bContext *C,
|
|||
MEM_freeN(tiles);
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,8 +55,6 @@
|
|||
#include "BKE_nla.h"
|
||||
#include "BKE_curve.h"
|
||||
|
||||
|
||||
#include "BIF_gl.h"
|
||||
#include "BIF_glutil.h"
|
||||
|
||||
#include "ED_armature.h"
|
||||
|
@ -405,7 +403,7 @@ static void drawsolidcube_size(float xsize, float ysize, float zsize)
|
|||
Batch_init(&batch, GL_TRIANGLES, &vbo, NULL);
|
||||
}
|
||||
|
||||
gpuMatrixBegin3D_legacy();
|
||||
gpuMatrixBegin3D_legacy(); /* TODO: replace Begin/End with Push/Pop */
|
||||
gpuScale3f(xsize, ysize, zsize);
|
||||
|
||||
if (flat_color) {
|
||||
|
@ -452,7 +450,7 @@ static void drawcube_size(float xsize, float ysize, float zsize)
|
|||
Batch_set_builtin_program(&batch, GPU_SHADER_3D_UNIFORM_COLOR);
|
||||
}
|
||||
|
||||
gpuMatrixBegin3D_legacy();
|
||||
gpuMatrixBegin3D_legacy(); /* TODO: replace Begin/End with Push/Pop */
|
||||
gpuScale3f(xsize, ysize, zsize);
|
||||
|
||||
Batch_use_program(&batch);
|
||||
|
@ -718,13 +716,13 @@ static void draw_bone_points(const short dt, int armflag, unsigned int boneflag,
|
|||
}
|
||||
}
|
||||
|
||||
glTranslatef(0.0f, 1.0f, 0.0f);
|
||||
gpuPushMatrix();
|
||||
gpuTranslate2f(0.0f, 1.0f);
|
||||
if (dt > OB_WIRE)
|
||||
draw_bonevert_solid();
|
||||
else
|
||||
draw_bonevert();
|
||||
glTranslatef(0.0f, -1.0f, 0.0f);
|
||||
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
/* 16 values of sin function (still same result!) */
|
||||
|
@ -1374,18 +1372,16 @@ static void draw_b_bone_boxes(const short dt, bPoseChannel *pchan, EditBone *ebo
|
|||
}
|
||||
|
||||
for (a = 0; a < segments; a++) {
|
||||
glPushMatrix();
|
||||
glMultMatrixf(bbone[a].mat);
|
||||
gpuPushMatrix();
|
||||
gpuMultMatrix3D(bbone[a].mat);
|
||||
if (dt == OB_SOLID) drawsolidcube_size(xwidth, dlen, zwidth);
|
||||
else drawcube_size(xwidth, dlen, zwidth);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
else {
|
||||
glPushMatrix();
|
||||
if (dt == OB_SOLID) drawsolidcube_size(xwidth, length, zwidth);
|
||||
else drawcube_size(xwidth, length, zwidth);
|
||||
glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1408,10 +1404,10 @@ static void draw_b_bone(const short dt, int armflag, int boneflag, short constfl
|
|||
/* draw points only if... */
|
||||
if (armflag & ARM_EDITMODE) {
|
||||
/* move to unitspace */
|
||||
glPushMatrix();
|
||||
glScalef(length, length, length);
|
||||
gpuPushMatrix();
|
||||
gpuScaleUniform(length);
|
||||
draw_bone_points(dt, armflag, boneflag, id);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
length *= 0.95f; /* make vertices visible */
|
||||
}
|
||||
|
||||
|
@ -1535,11 +1531,11 @@ static void draw_wire_bone(const short dt, int armflag, int boneflag, short cons
|
|||
/* draw points only if... */
|
||||
if (armflag & ARM_EDITMODE) {
|
||||
/* move to unitspace */
|
||||
glPushMatrix();
|
||||
glScalef(length, length, length);
|
||||
gpuPushMatrix();
|
||||
gpuScaleUniform(length);
|
||||
flat_color = true;
|
||||
draw_bone_points(dt, armflag, boneflag, id);
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
length *= 0.95f; /* make vertices visible */
|
||||
}
|
||||
|
||||
|
@ -1571,7 +1567,7 @@ static void draw_bone(const short dt, int armflag, int boneflag, short constflag
|
|||
{
|
||||
|
||||
/* Draw a 3d octahedral bone, we use normalized space based on length */
|
||||
glScalef(length, length, length);
|
||||
gpuScaleUniform(length);
|
||||
|
||||
/* set up solid drawing */
|
||||
if (dt > OB_WIRE) {
|
||||
|
@ -1636,7 +1632,7 @@ static void draw_custom_bone(Scene *scene, SceneLayer *sl, View3D *v3d, RegionVi
|
|||
{
|
||||
if (ob == NULL) return;
|
||||
|
||||
glScalef(length, length, length);
|
||||
gpuScaleUniform(length);
|
||||
|
||||
/* colors for posemode */
|
||||
if (armflag & ARM_POSEMODE) {
|
||||
|
@ -2030,13 +2026,13 @@ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *
|
|||
{
|
||||
if (bone->layer & arm->layer) {
|
||||
const bool use_custom = (pchan->custom) && !(arm->flag & ARM_NO_CUSTOM);
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
if (use_custom && pchan->custom_tx) {
|
||||
glMultMatrixf(pchan->custom_tx->pose_mat);
|
||||
gpuMultMatrix3D(pchan->custom_tx->pose_mat);
|
||||
}
|
||||
else {
|
||||
glMultMatrixf(pchan->pose_mat);
|
||||
gpuMultMatrix3D(pchan->pose_mat);
|
||||
}
|
||||
|
||||
/* catch exception for bone with hidden parent */
|
||||
|
@ -2098,7 +2094,7 @@ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *
|
|||
}
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2134,13 +2130,13 @@ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *
|
|||
if (bone->layer & arm->layer) {
|
||||
if (pchan->custom) {
|
||||
if ((dt < OB_SOLID) || (bone->flag & BONE_DRAWWIRE)) {
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
if (pchan->custom_tx) {
|
||||
glMultMatrixf(pchan->custom_tx->pose_mat);
|
||||
gpuMultMatrix3D(pchan->custom_tx->pose_mat);
|
||||
}
|
||||
else {
|
||||
glMultMatrixf(pchan->pose_mat);
|
||||
gpuMultMatrix3D(pchan->pose_mat);
|
||||
}
|
||||
|
||||
/* prepare colors */
|
||||
|
@ -2165,7 +2161,7 @@ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *
|
|||
draw_custom_bone(scene, sl, v3d, rv3d, pchan->custom,
|
||||
OB_WIRE, arm->flag, flag, index, PCHAN_CUSTOM_DRAW_SIZE(pchan));
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2269,9 +2265,9 @@ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *
|
|||
}
|
||||
}
|
||||
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
if (arm->drawtype != ARM_ENVELOPE)
|
||||
glMultMatrixf(pchan->pose_mat);
|
||||
gpuMultMatrix3D(pchan->pose_mat);
|
||||
|
||||
/* catch exception for bone with hidden parent */
|
||||
flag = bone->flag;
|
||||
|
@ -2308,7 +2304,7 @@ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *
|
|||
else
|
||||
draw_bone(OB_WIRE, arm->flag, flag, constflag, index, bone->length);
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2369,16 +2365,16 @@ static void draw_pose_bones(Scene *scene, SceneLayer *sl, View3D *v3d, ARegion *
|
|||
|
||||
/* Draw additional axes on the bone tail */
|
||||
if ((arm->flag & ARM_DRAWAXES) && (arm->flag & ARM_POSEMODE)) {
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
copy_m4_m4(bmat, pchan->pose_mat);
|
||||
bone_matrix_translate_y(bmat, pchan->bone->length);
|
||||
glMultMatrixf(bmat);
|
||||
gpuMultMatrix3D(bmat);
|
||||
|
||||
float viewmat_pchan[4][4];
|
||||
mul_m4_m4m4(viewmat_pchan, rv3d->viewmatob, bmat);
|
||||
drawaxes(viewmat_pchan, pchan->bone->length * 0.25f, OB_ARROWS, col);
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2444,9 +2440,9 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
|
|||
for (eBone = arm->edbo->first, index = 0; eBone; eBone = eBone->next, index++) {
|
||||
if (eBone->layer & arm->layer) {
|
||||
if ((eBone->flag & BONE_HIDDEN_A) == 0) {
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
get_matrix_editbone(eBone, bmat);
|
||||
glMultMatrixf(bmat);
|
||||
gpuMultMatrix3D(bmat);
|
||||
|
||||
/* catch exception for bone with hidden parent */
|
||||
flag = eBone->flag;
|
||||
|
@ -2468,7 +2464,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
|
|||
draw_bone(OB_SOLID, arm->flag, flag, 0, index, eBone->length);
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2506,9 +2502,9 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
|
|||
draw_sphere_bone_wire(smat, imat, arm->flag, flag, 0, index, NULL, eBone);
|
||||
}
|
||||
else {
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
get_matrix_editbone(eBone, bmat);
|
||||
glMultMatrixf(bmat);
|
||||
gpuMultMatrix3D(bmat);
|
||||
|
||||
if (arm->drawtype == ARM_LINE)
|
||||
draw_line_bone(arm->flag, flag, 0, index, NULL, eBone);
|
||||
|
@ -2519,7 +2515,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
|
|||
else
|
||||
draw_bone(OB_WIRE, arm->flag, flag, 0, index, eBone->length);
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
/* offset to parent */
|
||||
|
@ -2582,16 +2578,16 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, const short dt)
|
|||
}
|
||||
/* Draw additional axes */
|
||||
if (arm->flag & ARM_DRAWAXES) {
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
get_matrix_editbone(eBone, bmat);
|
||||
bone_matrix_translate_y(bmat, eBone->length);
|
||||
glMultMatrixf(bmat);
|
||||
gpuMultMatrix3D(bmat);
|
||||
|
||||
float viewmat_ebone[4][4];
|
||||
mul_m4_m4m4(viewmat_ebone, rv3d->viewmatob, bmat);
|
||||
drawaxes(viewmat_ebone, eBone->length * 0.25f, OB_ARROWS, col);
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
#include "BIF_glutil.h"
|
||||
|
||||
#include "GPU_immediate.h"
|
||||
#include "GPU_matrix.h"
|
||||
|
||||
#include "BLI_math.h"
|
||||
#include "BLI_utildefines.h"
|
||||
|
@ -778,13 +779,13 @@ void drawPropCircle(const struct bContext *C, TransInfo *t)
|
|||
unit_m4(imat);
|
||||
}
|
||||
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
if (t->spacetype == SPACE_VIEW3D) {
|
||||
/* pass */
|
||||
}
|
||||
else if (t->spacetype == SPACE_IMAGE) {
|
||||
glScalef(1.0f / t->aspect[0], 1.0f / t->aspect[1], 1.0f);
|
||||
gpuScale2f(1.0f / t->aspect[0], 1.0f / t->aspect[1]);
|
||||
}
|
||||
else if (ELEM(t->spacetype, SPACE_IPO, SPACE_ACTION)) {
|
||||
/* only scale y */
|
||||
|
@ -794,7 +795,7 @@ void drawPropCircle(const struct bContext *C, TransInfo *t)
|
|||
float ysize = BLI_rctf_size_y(datamask);
|
||||
float xmask = BLI_rcti_size_x(mask);
|
||||
float ymask = BLI_rcti_size_y(mask);
|
||||
glScalef(1.0f, (ysize / xsize) * (xmask / ymask), 1.0f);
|
||||
gpuScale2f(1.0f, (ysize / xsize) * (xmask / ymask));
|
||||
}
|
||||
|
||||
depth_test_enabled = glIsEnabled(GL_DEPTH_TEST);
|
||||
|
@ -815,7 +816,7 @@ void drawPropCircle(const struct bContext *C, TransInfo *t)
|
|||
if (depth_test_enabled)
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
glPopMatrix();
|
||||
gpuPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@ void GPU_render_text(
|
|||
else if (!col)
|
||||
glColor3f(1.0f, 1.0f, 1.0f);
|
||||
|
||||
glPushMatrix();
|
||||
gpuPushMatrix();
|
||||
|
||||
/* get the tab width */
|
||||
ImBuf *first_ibuf = BKE_image_get_first_ibuf(ima);
|
||||
|
|
Loading…
Reference in New Issue