Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2017-02-24 03:24:09 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-02-24 03:26:45 +0300
commit7b744f9e1aac8960afab5b97c64a436e79c56f38 (patch)
tree616b2d78efc330db2a562029216c40bde1cef115 /source/blender/editors/mask
parentab8958bbd585997e5121d46f38ef3a35173bfe5f (diff)
Opengl glaDrawPixels removal: mask_draw.c
Diffstat (limited to 'source/blender/editors/mask')
-rw-r--r--source/blender/editors/mask/mask_draw.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/source/blender/editors/mask/mask_draw.c b/source/blender/editors/mask/mask_draw.c
index b20862e7630..f431efd80ee 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) {