2.5
Fixes:
- HSV picker didn't work. Old option "No Hilite" for buttons made it not
being checked for input anymore. Needs to be on attention list!
- Node editor wasn't drawing buttons correctly. Two things to keep track
off:
- Use wmLoadIdentity(), not glLoadIdentity()
- I've added a wmPushMatrix() and wmPopMatrix() version for correct
wm-compatible push/pop. Only one level for now.
This commit is contained in:
@@ -641,11 +641,8 @@ void uiDrawBlock(const bContext *C, uiBlock *block)
|
||||
ui_but_to_pixelrect(&rect, ar, block, NULL);
|
||||
|
||||
/* pixel space for AA widgets */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPushMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
glLoadIdentity();
|
||||
wmPushMatrix();
|
||||
wmLoadIdentity();
|
||||
|
||||
wmOrtho2(-0.01f, ar->winx-0.01f, -0.01f, ar->winy-0.01f);
|
||||
|
||||
@@ -664,10 +661,7 @@ void uiDrawBlock(const bContext *C, uiBlock *block)
|
||||
}
|
||||
|
||||
/* restore matrix */
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glPopMatrix();
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
wmPopMatrix();
|
||||
|
||||
ui_draw_links(block);
|
||||
}
|
||||
|
||||
@@ -1193,10 +1193,8 @@ void uiBlockPickerButtons(uiBlock *block, float *col, float *hsv, float *old, ch
|
||||
|
||||
// the cube intersection
|
||||
bt= uiDefButF(block, HSVCUBE, retval, "", 0,DPICK+BPICK,FPICK,FPICK, col, 0.0, 0.0, 2, 0, "");
|
||||
uiButSetFlag(bt, UI_NO_HILITE);
|
||||
|
||||
bt= uiDefButF(block, HSVCUBE, retval, "", 0,0,FPICK,BPICK, col, 0.0, 0.0, 3, 0, "");
|
||||
uiButSetFlag(bt, UI_NO_HILITE);
|
||||
|
||||
// palette
|
||||
|
||||
|
||||
@@ -183,6 +183,8 @@ void wmMultMatrix (float mat[][4]);
|
||||
void wmGetSingleMatrix (float mat[][4]);
|
||||
void wmScale (float x, float y, float z);
|
||||
void wmLoadIdentity (void); /* note: old name clear_view_mat */
|
||||
void wmPushMatrix (void); /* one level only */
|
||||
void wmPopMatrix (void); /* one level only */
|
||||
|
||||
void wmFrustum (float x1, float x2, float y1, float y2, float n, float f);
|
||||
void wmOrtho (float x1, float x2, float y1, float y2, float n, float f);
|
||||
|
||||
@@ -68,6 +68,7 @@ typedef struct wmSubWindow {
|
||||
int swinid;
|
||||
|
||||
float viewmat[4][4], winmat[4][4];
|
||||
float viewmat1[4][4], winmat1[4][4];
|
||||
} wmSubWindow;
|
||||
|
||||
|
||||
@@ -306,6 +307,28 @@ void wmMultMatrix(float mat[][4])
|
||||
glGetFloatv(GL_MODELVIEW_MATRIX, (float *)_curswin->winmat);
|
||||
}
|
||||
|
||||
void wmPushMatrix(void)
|
||||
{
|
||||
if(_curswin==NULL) return;
|
||||
|
||||
Mat4CpyMat4(_curswin->viewmat1, _curswin->viewmat);
|
||||
Mat4CpyMat4(_curswin->winmat1, _curswin->winmat);
|
||||
}
|
||||
|
||||
void wmPopMatrix(void)
|
||||
{
|
||||
if(_curswin==NULL) return;
|
||||
|
||||
Mat4CpyMat4(_curswin->viewmat, _curswin->viewmat1);
|
||||
Mat4CpyMat4(_curswin->winmat, _curswin->winmat1);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadMatrixf(&_curswin->winmat[0][0]);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadMatrixf(&_curswin->viewmat[0][0]);
|
||||
|
||||
}
|
||||
|
||||
void wmGetSingleMatrix(float mat[][4])
|
||||
{
|
||||
if(_curswin)
|
||||
|
||||
Reference in New Issue
Block a user