Commit: dfbc51f764a8f7e51b9982253685142b8624e8f8
Author: Mike Erwin
Date:   Fri Aug 12 03:23:12 2016 -0400
Branches: blender2.8
https://developer.blender.org/rBdfbc51f764a8f7e51b9982253685142b8624e8f8

cleanup: ortho grid drawing

Getting this ready for Gawain treatment.

Removed setlinestyle(0) -- solid lines are the default,  hope this isn't
really needed.

Eliminated redundant math.

Arithmetic is still double precision, passed to OpenGL as single
precision. Even though it said GL_DOUBLE before, values were converted
to GL_FLOAT internally.

Use C99-isms for declaring variables close to where they're used.

Minor whitespace tweaks.

===================================================================

M       source/blender/editors/space_view3d/view3d_draw.c

===================================================================

diff --git a/source/blender/editors/space_view3d/view3d_draw.c 
b/source/blender/editors/space_view3d/view3d_draw.c
index 4278077..e61d634 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -217,21 +217,18 @@ bool ED_view3d_clipping_test(const RegionView3D *rv3d, 
const float co[3], const
 /* ********* end custom clipping *********** */
 
 
-static void drawgrid_draw(ARegion *ar, double wx, double wy, double x, double 
y, double dx)
+static void drawgrid_draw(ARegion *ar, double x, double y, double dx)
 {      
-       double verts[2][2];
-
-       x += (wx);
-       y += (wy);
+       float verts[2][2];
 
        /* set fixed 'Y' */
        verts[0][1] = 0.0f;
-       verts[1][1] = (double)ar->winy;
+       verts[1][1] = (float)ar->winy;
 
        /* iter over 'X' */
        verts[0][0] = verts[1][0] = x - dx * floor(x / dx);
        glEnableClientState(GL_VERTEX_ARRAY);
-       glVertexPointer(2, GL_DOUBLE, 0, verts);
+       glVertexPointer(2, GL_FLOAT, 0, verts);
 
        while (verts[0][0] < ar->winx) {
                glDrawArrays(GL_LINES, 0, 2);
@@ -240,7 +237,7 @@ static void drawgrid_draw(ARegion *ar, double wx, double 
wy, double x, double y,
 
        /* set fixed 'X' */
        verts[0][0] = 0.0f;
-       verts[1][0] = (double)ar->winx;
+       verts[1][0] = (float)ar->winx;
 
        /* iter over 'Y' */
        verts[0][1] = verts[1][1] = y - dx * floor(y / dx);
@@ -252,62 +249,57 @@ static void drawgrid_draw(ARegion *ar, double wx, double 
wy, double x, double y,
        glDisableClientState(GL_VERTEX_ARRAY);
 }
 
-#define GRID_MIN_PX_D   6.0
+#define GRID_MIN_PX_D 6.0
 #define GRID_MIN_PX_F 6.0f
 
 static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char 
**grid_unit)
 {
        /* extern short bgpicmode; */
        RegionView3D *rv3d = ar->regiondata;
-       double wx, wy, x, y, fw, fx, fy, dx;
-       double vec4[4];
-       unsigned char col[3], col2[3];
 
-       fx = rv3d->persmat[3][0];
-       fy = rv3d->persmat[3][1];
-       fw = rv3d->persmat[3][3];
+       double fx = rv3d->persmat[3][0];
+       double fy = rv3d->persmat[3][1];
+       double fw = rv3d->persmat[3][3];
 
-       wx = (ar->winx / 2.0); /* because of rounding errors, grid at wrong 
location */
-       wy = (ar->winy / 2.0);
+       const double wx = 0.5 * ar->winx;  /* because of rounding errors, grid 
at wrong location */
+       const double wy = 0.5 * ar->winy;
 
-       x = (wx) * fx / fw;
-       y = (wy) * fy / fw;
+       double x = wx * fx / fw;
+       double y = wy * fy / fw;
 
-       vec4[0] = vec4[1] = v3d->grid;
-
-       vec4[2] = 0.0;
-       vec4[3] = 1.0;
+       double vec4[4] = { v3d->grid, v3d->grid, 0.0, 1.0 };
        mul_m4_v4d(rv3d->persmat, vec4);
        fx = vec4[0];
        fy = vec4[1];
        fw = vec4[3];
 
-       dx = fabs(x - (wx) * fx / fw);
-       if (dx == 0) dx = fabs(y - (wy) * fy / fw);
-       
+       double dx = fabs(x - wx * fx / fw);
+       if (dx == 0) dx = fabs(y - wy * fy / fw);
+
+       x += wx;
+       y += wy;
+
        glLineWidth(1.0f);
 
-       glDepthMask(GL_FALSE);     /* disable write in zbuffer */
+       glDepthMask(GL_FALSE);  /* disable write in zbuffer */
 
        /* check zoom out */
        UI_ThemeColor(TH_GRID);
-       
+
        if (unit->system) {
                /* Use GRID_MIN_PX * 2 for units because very very small grid
                 * items are less useful when dealing with units */
                const void *usys;
-               int len, i;
-               double dx_scalar;
-               float blend_fac;
+               int len;
 
                bUnit_GetSystem(unit->system, B_UNIT_LENGTH, &usys, &len);
 
                if (usys) {
-                       i = len;
+                       int i = len;
                        while (i--) {
                                double scalar = bUnit_GetScaler(usys, i);
 
-                               dx_scalar = dx * scalar / 
(double)unit->scale_length;
+                               double dx_scalar = dx * scalar / 
(double)unit->scale_length;
                                if (dx_scalar < (GRID_MIN_PX_D * 2.0))
                                        continue;
 
@@ -316,16 +308,15 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, 
View3D *v3d, const char **
                                        *grid_unit = bUnit_GetNameDisplay(usys, 
i);
                                        rv3d->gridview = (float)((scalar * 
(double)v3d->grid) / (double)unit->scale_length);
                                }
-                               blend_fac = 1.0f - ((GRID_MIN_PX_F * 2.0f) / 
(float)dx_scalar);
+                               float blend_fac = 1.0f - ((GRID_MIN_PX_F * 
2.0f) / (float)dx_scalar);
 
                                /* tweak to have the fade a bit nicer */
                                blend_fac = (blend_fac * blend_fac) * 2.0f;
                                CLAMP(blend_fac, 0.3f, 1.0f);
 
-
                                UI_ThemeColorBlend(TH_HIGH_GRAD, TH_GRID, 
blend_fac);
 
-                               drawgrid_draw(ar, wx, wy, x, y, dx_scalar);
+                               drawgrid_draw(ar, x, y, dx_scalar);
                        }
                }
        }
@@ -349,23 +340,23 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, 
View3D *v3d, const char **
                                        }
                                        else {
                                                UI_ThemeColor(TH_GRID);
-                                               drawgrid_draw(ar, wx, wy, x, y, 
dx);
+                                               drawgrid_draw(ar, x, y, dx);
                                        }
                                }
                                else {  /* start blending out */
                                        UI_ThemeColorBlend(TH_HIGH_GRAD, 
TH_GRID, dx / (GRID_MIN_PX_D * 6.0));
-                                       drawgrid_draw(ar, wx, wy, x, y, dx);
+                                       drawgrid_draw(ar, x, y, dx);
 
                                        UI_ThemeColor(TH_GRID);
-                                       drawgrid_draw(ar, wx, wy, x, y, 
sublines * dx);
+                                       drawgrid_draw(ar, x, y, sublines * dx);
                                }
                        }
                        else {  /* start blending out (GRID_MIN_PX < dx < 
(GRID_MIN_PX * 10)) */
                                UI_ThemeColorBlend(TH_HIGH_GRAD, TH_GRID, dx / 
(GRID_MIN_PX_D * 6.0));
-                               drawgrid_draw(ar, wx, wy, x, y, dx);
+                               drawgrid_draw(ar, x, y, dx);
 
                                UI_ThemeColor(TH_GRID);
-                               drawgrid_draw(ar, wx, wy, x, y, sublines * dx);
+                               drawgrid_draw(ar, x, y, sublines * dx);
                        }
                }
                else {
@@ -377,46 +368,43 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, 
View3D *v3d, const char **
                                        dx /= sublines;
                                        if (dx > (GRID_MIN_PX_D * 10.0)) {
                                                UI_ThemeColor(TH_GRID);
-                                               drawgrid_draw(ar, wx, wy, x, y, 
dx);
+                                               drawgrid_draw(ar, x, y, dx);
                                        }
                                        else {
                                                
UI_ThemeColorBlend(TH_HIGH_GRAD, TH_GRID, dx / (GRID_MIN_PX_D * 6.0));
-                                               drawgrid_draw(ar, wx, wy, x, y, 
dx);
+                                               drawgrid_draw(ar, x, y, dx);
                                                UI_ThemeColor(TH_GRID);
-                                               drawgrid_draw(ar, wx, wy, x, y, 
dx * sublines);
+                                               drawgrid_draw(ar, x, y, dx * 
sublines);
                                        }
                                }
                                else {
                                        UI_ThemeColorBlend(TH_HIGH_GRAD, 
TH_GRID, dx / (GRID_MIN_PX_D * 6.0));
-                                       drawgrid_draw(ar, wx, wy, x, y, dx);
+                                       drawgrid_draw(ar, x, y, dx);
                                        UI_ThemeColor(TH_GRID);
-                                       drawgrid_draw(ar, wx, wy, x, y, dx * 
sublines);
+                                       drawgrid_draw(ar, x, y, dx * sublines);
                                }
                        }
                        else {
                                UI_ThemeColorBlend(TH_HIGH_GRAD, TH_GRID, dx / 
(GRID_MIN_PX_D * 6.0));
-                               drawgrid_draw(ar, wx, wy, x, y, dx);
+                               drawgrid_draw(ar, x, y, dx);
                                UI_ThemeColor(TH_GRID);
-                               drawgrid_draw(ar, wx, wy, x, y, dx * sublines);
+                               drawgrid_draw(ar, x, y, dx * sublines);
                        }
                }
        }
 
+       /* center cross */
+       unsigned char col[3], col2[3];
 
-       x += (wx);
-       y += (wy);
        UI_GetThemeColor3ubv(TH_GRID, col);
 
-       setlinestyle(0);
-       
-       /* center cross */
        /* horizontal line */
        if (ELEM(rv3d->view, RV3D_VIEW_RIGHT, RV3D_VIEW_LEFT))
                UI_make_axis_color(col, col2, 'Y');
        else UI_make_axis_color(col, col2, 'X');
        glColor3ubv(col2);
        
-       fdrawline(0.0,  y,  (float)ar->winx,  y); 
+       fdrawline(0.0, y, (float)ar->winx, y); 
        
        /* vertical line */
        if (ELEM(rv3d->view, RV3D_VIEW_TOP, RV3D_VIEW_BOTTOM))

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to