Revision: 18018
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18018
Author:   jesterking
Date:     2008-12-22 21:53:38 +0100 (Mon, 22 Dec 2008)

Log Message:
-----------
* bring back some drawing code for node editor (grid, roundbox emboss)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h
    
branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c
    branches/blender2.5/blender/source/blender/editors/interface/view2d.c

Modified: branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h      
2008-12-22 20:28:02 UTC (rev 18017)
+++ branches/blender2.5/blender/source/blender/editors/include/UI_view2d.h      
2008-12-22 20:53:38 UTC (rev 18018)
@@ -151,6 +151,7 @@
 /* grid drawing */
 View2DGrid *UI_view2d_grid_calc(const struct bContext *C, struct View2D *v2d, 
short xunits, short xclamp, short yunits, short yclamp, int winx, int winy);
 void UI_view2d_grid_draw(const struct bContext *C, struct View2D *v2d, 
View2DGrid *grid, int flag);
+void UI_view2d_constant_grid_draw(const struct bContext *C, struct View2D 
*v2d);
 void UI_view2d_grid_free(View2DGrid *grid);
 
 /* scrollbar drawing */

Modified: 
branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c   
    2008-12-22 20:28:02 UTC (rev 18017)
+++ 
branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c   
    2008-12-22 20:53:38 UTC (rev 18018)
@@ -146,6 +146,54 @@
        glColor3fv(col);
 }
 
+/* only for headers */
+static void gl_round_box_topshade(float minx, float miny, float maxx, float 
maxy, float rad)
+{
+       float vec[7][2]= {{0.195, 0.02}, {0.383, 0.067}, {0.55, 0.169}, {0.707, 
0.293},
+                         {0.831, 0.45}, {0.924, 0.617}, {0.98, 0.805}};
+       char col[7]= {140, 165, 195, 210, 230, 245, 255};
+       int a;
+       char alpha=255;
+       
+       if(roundboxtype & UI_RB_ALPHA) alpha= 128;
+       
+       /* mult */
+       for(a=0; a<7; a++) {
+               vec[a][0]*= rad; vec[a][1]*= rad;
+       }
+
+       /* shades from grey->white->grey */
+       glBegin(GL_LINE_STRIP);
+       
+       if(roundboxtype & 3) {
+               /* corner right-top */
+               glColor4ub(140, 140, 140, alpha);
+               glVertex2f( maxx, maxy-rad);
+               for(a=0; a<7; a++) {
+                       glColor4ub(col[a], col[a], col[a], alpha);
+                       glVertex2f( maxx-vec[a][1], maxy-rad+vec[a][0]);
+               }
+               glColor4ub(225, 225, 225, alpha);
+               glVertex2f( maxx-rad, maxy);
+       
+               
+               /* corner left-top */
+               glVertex2f( minx+rad, maxy);
+               for(a=0; a<7; a++) {
+                       glColor4ub(col[6-a], col[6-a], col[6-a], alpha);
+                       glVertex2f( minx+rad-vec[a][0], maxy-vec[a][1]);
+               }
+               glVertex2f( minx, maxy-rad);
+       }
+       else {
+               glColor4ub(225, 225, 225, alpha);
+               glVertex2f( minx, maxy);
+               glVertex2f( maxx, maxy);
+       }
+       
+       glEnd();
+}
+
 /* linear horizontal shade within button or in outline */
 void gl_round_box_shade(int mode, float minx, float miny, float maxx, float 
maxy, float rad, float shadetop, float shadedown)
 {
@@ -441,7 +489,78 @@
        glDisable( GL_BLEND );
 }
 
+/* for headers and floating panels */
+void uiRoundBoxEmboss(float minx, float miny, float maxx, float maxy, float 
rad, int active)
+{
+       float color[4];
+       
+       if(roundboxtype & UI_RB_ALPHA) {
+               glGetFloatv(GL_CURRENT_COLOR, color);
+               color[3]= 0.5;
+               glColor4fv(color);
+               glEnable( GL_BLEND );
+       }
+       
+       /* solid part */
+       //if(active)
+       //      gl_round_box_shade(GL_POLYGON, minx, miny, maxx, maxy, rad, 
0.10, -0.05);
+       // else
+       /* shading doesnt work for certain buttons yet (pulldown) need smarter 
buffer caching (ton) */
+       gl_round_box(GL_POLYGON, minx, miny, maxx, maxy, rad);
+       
+       /* set antialias line */
+       if (UI_GetThemeValue(TH_BUT_DRAWTYPE) != TH_MINIMAL) {
+               glEnable( GL_LINE_SMOOTH );
+               glEnable( GL_BLEND );
+       }
 
+       /* top shade */
+       gl_round_box_topshade(minx+1, miny+1, maxx-1, maxy-1, rad);
+
+       /* total outline */
+       if(roundboxtype & UI_RB_ALPHA) glColor4ub(0,0,0, 128); else 
glColor4ub(0,0,0, 200);
+       gl_round_box(GL_LINE_LOOP, minx, miny, maxx, maxy, rad);
+   
+       glDisable( GL_LINE_SMOOTH );
+
+       /* bottom shade for header down */
+       if((roundboxtype & 12)==12) {
+               glColor4ub(0,0,0, 80);
+               fdrawline(minx+rad-1.0, miny+1.0, maxx-rad+1.0, miny+1.0);
+       }
+       glDisable( GL_BLEND );
+}
+
+/* plain antialiased filled box */
+#if 0
+void uiRoundBox(float minx, float miny, float maxx, float maxy, float rad)
+{
+       float color[4];
+       
+       if(roundboxtype & UI_RB_ALPHA) {
+               glGetFloatv(GL_CURRENT_COLOR, color);
+               color[3]= 0.5;
+               glColor4fv(color);
+               glEnable( GL_BLEND );
+       }
+       
+       /* solid part */
+       gl_round_box(GL_POLYGON, minx, miny, maxx, maxy, rad);
+       
+       /* set antialias line */
+       if (UI_GetThemeValue(TH_BUT_DRAWTYPE) != TH_MINIMAL) {
+               glEnable( GL_LINE_SMOOTH );
+               glEnable( GL_BLEND );
+       }
+               
+       gl_round_box(GL_LINE_LOOP, minx, miny, maxx, maxy, rad);
+   
+       glDisable( GL_BLEND );
+       glDisable( GL_LINE_SMOOTH );
+}
+#endif
+
+
 /* ************** safe rasterpos for pixmap alignment with pixels 
************* */
 
 void ui_rasterpos_safe(float x, float y, float aspect)

Modified: branches/blender2.5/blender/source/blender/editors/interface/view2d.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/view2d.c       
2008-12-22 20:28:02 UTC (rev 18017)
+++ branches/blender2.5/blender/source/blender/editors/interface/view2d.c       
2008-12-22 20:53:38 UTC (rev 18018)
@@ -1046,6 +1046,37 @@
        }
 }
 
+/* Draw a constant grid in given 2d-region */
+void UI_view2d_constant_grid_draw(const bContext *C, View2D *v2d)
+{
+       float start, step= 25.0f;
+
+       UI_ThemeColorShade(TH_BACK, -10);
+       
+       start= v2d->cur.xmin -fmod(v2d->cur.xmin, step);
+       
+       glBegin(GL_LINES);
+       for(; start<v2d->cur.xmax; start+=step) {
+               glVertex2f(start, v2d->cur.ymin);
+               glVertex2f(start, v2d->cur.ymax);
+       }
+
+       start= v2d->cur.ymin -fmod(v2d->cur.ymin, step);
+       for(; start<v2d->cur.ymax; start+=step) {
+               glVertex2f(v2d->cur.xmin, start);
+               glVertex2f(v2d->cur.xmax, start);
+       }
+       
+       /* X and Y axis */
+       UI_ThemeColorShade(TH_BACK, -18);
+       glVertex2f(0.0f, v2d->cur.ymin);
+       glVertex2f(0.0f, v2d->cur.ymax);
+       glVertex2f(v2d->cur.xmin, 0.0f);
+       glVertex2f(v2d->cur.xmax, 0.0f);
+       
+       glEnd();
+}
+
 /* free temporary memory used for drawing grid */
 void UI_view2d_grid_free(View2DGrid *grid)
 {


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

Reply via email to