forked from bartvdbraak/blender
more mini optimizations - don't call UI_ThemeColor 4 times per curve handle, instead get all colors at the start and index them when drawing curves in editmode.
also remove redundant NULL check.
This commit is contained in:
parent
5114320dc5
commit
f2748bfdc3
@ -277,8 +277,7 @@ void BKE_area_region_free(SpaceType *st, ARegion *ar)
|
|||||||
ar->v2d.tab_offset= NULL;
|
ar->v2d.tab_offset= NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ar)
|
BLI_freelistN(&ar->panels);
|
||||||
BLI_freelistN(&ar->panels);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* not area itself */
|
/* not area itself */
|
||||||
|
@ -717,7 +717,7 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float
|
|||||||
* 1 : occluded
|
* 1 : occluded
|
||||||
2 : occluded with w[3] weights set (need to know in some cases) */
|
2 : occluded with w[3] weights set (need to know in some cases) */
|
||||||
|
|
||||||
static int project_paint_occlude_ptv(float pt[3], float v1[3], float v2[3], float v3[3], float w[3], int is_ortho)
|
static int project_paint_occlude_ptv(float pt[3], float v1[4], float v2[4], float v3[4], float w[3], int is_ortho)
|
||||||
{
|
{
|
||||||
/* if all are behind us, return false */
|
/* if all are behind us, return false */
|
||||||
if(v1[2] > pt[2] && v2[2] > pt[2] && v3[2] > pt[2])
|
if(v1[2] > pt[2] && v2[2] > pt[2] && v3[2] > pt[2])
|
||||||
|
@ -4538,16 +4538,22 @@ static void tekenhandlesN(Nurb *nu, short sel, short hide_handles)
|
|||||||
{
|
{
|
||||||
BezTriple *bezt;
|
BezTriple *bezt;
|
||||||
float *fp;
|
float *fp;
|
||||||
int basecol;
|
|
||||||
int a;
|
int a;
|
||||||
|
|
||||||
if(nu->hide || hide_handles) return;
|
if(nu->hide || hide_handles) return;
|
||||||
|
|
||||||
glBegin(GL_LINES);
|
glBegin(GL_LINES);
|
||||||
|
|
||||||
if(nu->type == CU_BEZIER) {
|
if(nu->type == CU_BEZIER) {
|
||||||
if(sel) basecol= TH_HANDLE_SEL_FREE;
|
|
||||||
else basecol= TH_HANDLE_FREE;
|
#define TH_HANDLE_COL_TOT ((TH_HANDLE_SEL_FREE - TH_HANDLE_FREE) + 1)
|
||||||
|
/* use MIN2 when indexing to ensure newer files dont read outside the array */
|
||||||
|
unsigned char handle_cols[TH_HANDLE_COL_TOT][3];
|
||||||
|
const int basecol= sel ? TH_HANDLE_SEL_FREE : TH_HANDLE_FREE;
|
||||||
|
|
||||||
|
for (a=0; a < TH_HANDLE_COL_TOT; a++) {
|
||||||
|
UI_GetThemeColor3ubv(basecol + a, handle_cols[a]);
|
||||||
|
}
|
||||||
|
|
||||||
bezt= nu->bezt;
|
bezt= nu->bezt;
|
||||||
a= nu->pntsu;
|
a= nu->pntsu;
|
||||||
@ -4556,31 +4562,34 @@ static void tekenhandlesN(Nurb *nu, short sel, short hide_handles)
|
|||||||
if( (bezt->f2 & SELECT)==sel) {
|
if( (bezt->f2 & SELECT)==sel) {
|
||||||
fp= bezt->vec[0];
|
fp= bezt->vec[0];
|
||||||
|
|
||||||
UI_ThemeColor(basecol + bezt->h1);
|
glColor3ubv(handle_cols[MIN2(bezt->h1, TH_HANDLE_COL_TOT-1)]);
|
||||||
glVertex3fv(fp);
|
glVertex3fv(fp);
|
||||||
glVertex3fv(fp+3);
|
glVertex3fv(fp+3);
|
||||||
|
|
||||||
UI_ThemeColor(basecol + bezt->h2);
|
glColor3ubv(handle_cols[MIN2(bezt->h2, TH_HANDLE_COL_TOT-1)]);
|
||||||
glVertex3fv(fp+3);
|
glVertex3fv(fp+3);
|
||||||
glVertex3fv(fp+6);
|
glVertex3fv(fp+6);
|
||||||
}
|
}
|
||||||
else if( (bezt->f1 & SELECT)==sel) {
|
else if( (bezt->f1 & SELECT)==sel) {
|
||||||
fp= bezt->vec[0];
|
fp= bezt->vec[0];
|
||||||
|
|
||||||
UI_ThemeColor(basecol + bezt->h1);
|
glColor3ubv(handle_cols[MIN2(bezt->h1, TH_HANDLE_COL_TOT-1)]);
|
||||||
glVertex3fv(fp);
|
glVertex3fv(fp);
|
||||||
glVertex3fv(fp+3);
|
glVertex3fv(fp+3);
|
||||||
}
|
}
|
||||||
else if( (bezt->f3 & SELECT)==sel) {
|
else if( (bezt->f3 & SELECT)==sel) {
|
||||||
fp= bezt->vec[1];
|
fp= bezt->vec[1];
|
||||||
|
|
||||||
UI_ThemeColor(basecol + bezt->h2);
|
glColor3ubv(handle_cols[MIN2(bezt->h2, TH_HANDLE_COL_TOT-1)]);
|
||||||
glVertex3fv(fp);
|
glVertex3fv(fp);
|
||||||
glVertex3fv(fp+3);
|
glVertex3fv(fp+3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bezt++;
|
bezt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef TH_HANDLE_COL_TOT
|
||||||
|
|
||||||
}
|
}
|
||||||
glEnd();
|
glEnd();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user