[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29557] branches/soc-2010-jwilkins/source/ blender/editors/sculpt_paint/paint_stroke.c: * Bug Fix: OpenGL state is now preserved after drawing the on-surface brush cursor.
Jason Wilkins
Jason.A.Wilkins at gmail.com
Sat Jun 19 08:49:59 CEST 2010
Revision: 29557
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29557
Author: jwilkins
Date: 2010-06-19 08:49:59 +0200 (Sat, 19 Jun 2010)
Log Message:
-----------
* Bug Fix: OpenGL state is now preserved after drawing the on-surface brush cursor. This should fix problems with the rest of the UI drawing properly with it enabled.
Modified Paths:
--------------
branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/paint_stroke.c
Modified: branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/paint_stroke.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/paint_stroke.c 2010-06-19 06:26:07 UTC (rev 29556)
+++ branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/paint_stroke.c 2010-06-19 06:49:59 UTC (rev 29557)
@@ -520,6 +520,18 @@
alpha = (paint->flags & PAINT_SHOW_BRUSH_ON_SURFACE) ? min_alpha + (visual_strength*(max_alpha-min_alpha)) : 0.50f;
+ glPushAttrib(
+ GL_COLOR_BUFFER_BIT|
+ GL_CURRENT_BIT|
+ GL_DEPTH_BUFFER_BIT|
+ GL_ENABLE_BIT|
+ GL_LINE_BIT|
+ GL_POLYGON_BIT|
+ GL_STENCIL_BUFFER_BIT|
+ GL_TRANSFORM_BIT|
+ GL_VIEWPORT_BIT|
+ GL_TEXTURE_BIT);
+
glColor4f(col[0], col[1], col[2], alpha);
glEnable(GL_BLEND);
@@ -586,18 +598,11 @@
gluDeleteQuadric(sphere);
- glDepthMask(GL_TRUE);
-
- glDisable(GL_DEPTH_TEST);
-
- glEnable(GL_CULL_FACE);
-
- glDisable(GL_STENCIL_TEST);
-
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
+
}
else {
glEnable(GL_LINE_SMOOTH);
@@ -618,11 +623,7 @@
if (brush->mtex.brush_map_mode == MTEX_MAP_MODE_TILED && brush->flag & BRUSH_TEXTURE_OVERLAY) {
const float diameter = 2*brush->size;
- //float inv_scale_x , inv_scale_y;
- //int procedural;
- //load_grid(brush);
- //procedural = load_tex(brush, &vc);
load_tex(brush, &vc);
glEnable(GL_TEXTURE_2D);
@@ -635,22 +636,6 @@
glMatrixMode(GL_TEXTURE);
glLoadIdentity();
- //if (!procedural) {
- // glTranslatef(0.5f, 0.5f, 0);
- // glTranslatef(-brush->texture_center_x, -brush->texture_center_y, 0);
-
- // inv_scale_x = 10000.0f / (brush->texture_scale_x*brush->texture_scale_percentage);
- // inv_scale_y = 10000.0f / (brush->texture_scale_y*brush->texture_scale_percentage);
-
- // glScalef(inv_scale_x, inv_scale_y, 0);
-
- // glRotatef(-brush->mtex.rot * 180.0f/M_PI, 0, 0, 1);
-
- // glScalef(viewport[2] / diameter, viewport[3] / diameter, 0);
-
- // glTranslatef(-0.5f, -0.5f, 0);
- //}
-
glColor4f(1.0f, 1.0f, 1.0f, brush->texture_overlay_alpha / 100.0f);
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
@@ -679,6 +664,8 @@
}
glDisable(GL_BLEND);
+
+ glPopAttrib();
}
}
else {
More information about the Bf-blender-cvs
mailing list