[Bf-blender-cvs] [7b744f9e1a] blender2.8: Opengl glaDrawPixels removal: mask_draw.c

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


Commit: 7b744f9e1aac8960afab5b97c64a436e79c56f38
Author: Clément Foucault
Date:   Fri Feb 24 01:24:09 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB7b744f9e1aac8960afab5b97c64a436e79c56f38

Opengl glaDrawPixels removal: mask_draw.c

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

M	source/blender/editors/mask/mask_draw.c

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

diff --git a/source/blender/editors/mask/mask_draw.c b/source/blender/editors/mask/mask_draw.c
index b20862e763..f431efd80e 100644
--- a/source/blender/editors/mask/mask_draw.c
+++ b/source/blender/editors/mask/mask_draw.c
@@ -54,6 +54,7 @@
 
 #include "GPU_immediate.h"
 #include "GPU_draw.h"
+#include "GPU_shader.h"
 
 #include "UI_resources.h"
 #include "UI_view2d.h"
@@ -753,17 +754,11 @@ void ED_mask_draw_region(Mask *mask, ARegion *ar,
 
 	if (draw_flag & MASK_DRAWFLAG_OVERLAY) {
 		float *buffer = threaded_mask_rasterize(mask, width, height);
-		int format;
 
-		if (overlay_mode == MASK_OVERLAY_ALPHACHANNEL) {
-			glColor3f(1.0f, 1.0f, 1.0f);
-			format = GL_LUMINANCE;
-		}
-		else {
+		if (overlay_mode != MASK_OVERLAY_ALPHACHANNEL) {
 			/* More blending types could be supported in the future. */
 			glEnable(GL_BLEND);
-			glBlendFunc(GL_DST_COLOR, GL_SRC_ALPHA);
-			format = GL_ALPHA;
+			glBlendFunc(GL_DST_COLOR, GL_ZERO);
 		}
 
 		glPushMatrix();
@@ -772,7 +767,12 @@ void ED_mask_draw_region(Mask *mask, ARegion *ar,
 		if (stabmat) {
 			glMultMatrixf((const float *) stabmat);
 		}
-		glaDrawPixelsTex(0.0f, 0.0f, width, height, format, GL_FLOAT, GL_NEAREST, buffer);
+		GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_2D_IMAGE_SHUFFLE_COLOR);
+		GPU_shader_bind(shader);
+		float red[4] = {1.0f, 0.0f, 0.0f, 0.0f};
+		GPU_shader_uniform_vector(shader, GPU_shader_get_uniform(shader, "shuffle"), 4, 1, red);
+		immDrawPixelsTex(0.0f, 0.0f, width, height, GL_RED, GL_FLOAT, GL_NEAREST, buffer, 1.0f, 1.0f, NULL);
+		GPU_shader_unbind();
 		glPopMatrix();
 
 		if (overlay_mode != MASK_OVERLAY_ALPHACHANNEL) {




More information about the Bf-blender-cvs mailing list