diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-02-24 03:24:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-02-24 03:26:45 +0300 |
commit | 7b744f9e1aac8960afab5b97c64a436e79c56f38 (patch) | |
tree | 616b2d78efc330db2a562029216c40bde1cef115 /source/blender/editors/mask | |
parent | ab8958bbd585997e5121d46f38ef3a35173bfe5f (diff) |
Opengl glaDrawPixels removal: mask_draw.c
Diffstat (limited to 'source/blender/editors/mask')
-rw-r--r-- | source/blender/editors/mask/mask_draw.c | 18 |
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) { |