[Bf-blender-cvs] [c9e8584e7f] blender2.8: Opengl glaDrawPixels removal: windowmanager

Clément Foucault noreply at git.blender.org
Fri Feb 24 01:29:11 CET 2017


Commit: c9e8584e7f9af60f9e7b6d1ae136915e300a52cb
Author: Clément Foucault
Date:   Fri Feb 24 01:17:48 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBc9e8584e7f9af60f9e7b6d1ae136915e300a52cb

Opengl glaDrawPixels removal: windowmanager

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

M	source/blender/windowmanager/intern/wm_dragdrop.c
M	source/blender/windowmanager/intern/wm_gesture.c

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

diff --git a/source/blender/windowmanager/intern/wm_dragdrop.c b/source/blender/windowmanager/intern/wm_dragdrop.c
index 2d1dcd7f3c..3cb767f130 100644
--- a/source/blender/windowmanager/intern/wm_dragdrop.c
+++ b/source/blender/windowmanager/intern/wm_dragdrop.c
@@ -332,8 +332,9 @@ void wm_drags_draw(bContext *C, wmWindow *win, rcti *rect)
 			if (rect)
 				drag_rect_minmax(rect, x, y, x + drag->sx, y + drag->sy);
 			else {
-				glColor4f(1.0, 1.0, 1.0, 0.65); /* this blends texture */
-				glaDrawPixelsTexScaled(x, y, drag->imb->x, drag->imb->y, GL_RGBA, GL_UNSIGNED_BYTE, GL_NEAREST, drag->imb->rect, drag->scale, drag->scale);
+				float col[4] = {1.0f, 1.0f, 1.0f, 0.65f}; /* this blends texture */
+				immDrawPixelsTexScaled(x, y, drag->imb->x, drag->imb->y, GL_RGBA, GL_UNSIGNED_BYTE, GL_NEAREST,
+				                       drag->imb->rect, drag->scale, drag->scale, 1.0f, 1.0f, col);
 			}
 		}
 		else {
diff --git a/source/blender/windowmanager/intern/wm_gesture.c b/source/blender/windowmanager/intern/wm_gesture.c
index 46203333eb..6114012404 100644
--- a/source/blender/windowmanager/intern/wm_gesture.c
+++ b/source/blender/windowmanager/intern/wm_gesture.c
@@ -52,8 +52,9 @@
 #include "wm.h"
 #include "wm_subwindow.h"
 #include "wm_draw.h"
-#include "GPU_basic_shader.h"
 
+#include "GPU_basic_shader.h"
+#include "GPU_shader.h"
 
 #include "BIF_glutil.h"
 
@@ -253,6 +254,7 @@ static void draw_filled_lasso(wmWindow *win, wmGesture *gt)
 	int i;
 	rcti rect;
 	rcti rect_win;
+	float red[4] = {1.0f, 0.0f, 0.0f, 0.0f};
 
 	for (i = 0; i < tot; i++, lasso += 2) {
 		moves[i][0] = lasso[0];
@@ -278,28 +280,27 @@ static void draw_filled_lasso(wmWindow *win, wmGesture *gt)
 		       (const int (*)[2])moves, tot,
 		       draw_filled_lasso_px_cb, &lasso_fill_data);
 
+		/* Additive Blending */
+		glEnable(GL_BLEND);
+		glBlendFunc(GL_ONE, GL_ONE);
+
 		glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 
-		glColor4f(1, 1, 1, 1);
-		glPixelTransferf(GL_RED_BIAS, 1);
-		glPixelTransferf(GL_GREEN_BIAS, 1);
-		glPixelTransferf(GL_BLUE_BIAS, 1);
+		GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_2D_IMAGE_SHUFFLE_COLOR);
+		GPU_shader_bind(shader);
+		GPU_shader_uniform_vector(shader, GPU_shader_get_uniform(shader, "shuffle"), 4, 1, red);
 
-		GPU_basic_shader_bind(GPU_SHADER_TEXTURE_2D | GPU_SHADER_USE_COLOR);
-
-		glEnable(GL_BLEND);
-		glaDrawPixelsTex(rect.xmin, rect.ymin, w, h, GL_ALPHA, GL_UNSIGNED_BYTE, GL_NEAREST, pixel_buf);
-		glDisable(GL_BLEND);
+		immDrawPixelsTex(rect.xmin, rect.ymin, w, h, GL_RED, GL_UNSIGNED_BYTE, GL_NEAREST, pixel_buf, 1.0f, 1.0f, NULL);
 
+		GPU_shader_unbind();
 		GPU_basic_shader_bind(GPU_SHADER_USE_COLOR);
 
-		glPixelTransferf(GL_RED_BIAS, 0);
-		glPixelTransferf(GL_GREEN_BIAS, 0);
-		glPixelTransferf(GL_BLUE_BIAS, 0);
-
 		glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
 
+
 		MEM_freeN(pixel_buf);
+
+		glDisable(GL_BLEND);
 	}
 
 	MEM_freeN(moves);




More information about the Bf-blender-cvs mailing list