GLfloat cy = widget[id].y + widget[id].h / 2.0f;
GLfloat ck = widget[id].scale;
- glTranslatef(+cx, +cy, 0.0f);
- glScalef(ck, ck, ck);
- glTranslatef(-cx, -cy, 0.0f);
+ if (1.0 < ck || ck < 1.0)
+ {
+ glTranslatef(+cx, +cy, 0.0f);
+ glScalef(ck, ck, ck);
+ glTranslatef(-cx, -cy, 0.0f);
+ }
/* Recursively paint all subwidgets. */
/* Compute the shadow texture transform */
- glActiveTexture_(GL_TEXTURE1);
- glMatrixMode(GL_TEXTURE);
+ if (vary->uc && vary->uv->r > 0.0)
{
- glLoadIdentity();
-
- if (vary->uc)
+ glActiveTexture_(GL_TEXTURE1);
+ glMatrixMode(GL_TEXTURE);
{
float k = 0.25f / vary->uv->r;
v_sub(d, vary->uv->p, p);
+ glLoadIdentity();
glTranslatef(0.5f - k * d[0],
0.5f - k * d[2], 0.0f);
glScalef(k, k, 0.0f);
}
+ glMatrixMode(GL_MODELVIEW);
+ glActiveTexture_(GL_TEXTURE0);
}
- glMatrixMode(GL_MODELVIEW);
- glActiveTexture_(GL_TEXTURE0);
}
/*---------------------------------------------------------------------------*/
for (bi = 0; bi < draw->bc; ++bi)
{
+ /* TODO: Cache the count for each set of flags and skip this on 0. */
+
glPushMatrix();
{
sol_transform(draw->vary, draw->vary->bv + bi);
void sol_refl(const struct s_draw *draw)
{
+ /* TODO: Cache the count for each set of flags and skip this on 0. */
+
sol_draw_enable();
{
const struct d_mtrl *mq = &default_draw_mtrl;