Commit: 2ea544619718796a7cb07558b680a7fe7716e877
Author: Clément Foucault
Date:   Fri Feb 24 01:21:02 2017 +0100
Branches: blender2.8
https://developer.blender.org/rB2ea544619718796a7cb07558b680a7fe7716e877

Opengl glaDrawPixels removal: interface

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

M       source/blender/editors/interface/interface_draw.c
M       source/blender/editors/interface/interface_icons.c
M       source/blender/editors/interface/interface_panel.c

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

diff --git a/source/blender/editors/interface/interface_draw.c 
b/source/blender/editors/interface/interface_draw.c
index afb6422ec4..b48eb4d79d 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -476,6 +476,9 @@ void ui_draw_but_IMAGE(ARegion *UNUSED(ar), uiBut *but, 
uiWidgetColors *UNUSED(w
        ImBuf *ibuf = (ImBuf *)but->poin;
 
        if (!ibuf) return;
+
+       float facx = 1.0f;
+       float facy = 1.0f;
        
        int w = BLI_rcti_size_x(rect);
        int h = BLI_rcti_size_y(rect);
@@ -492,16 +495,14 @@ void ui_draw_but_IMAGE(ARegion *UNUSED(ar), uiBut *but, 
uiWidgetColors *UNUSED(w
 #endif
        
        glEnable(GL_BLEND);
-       glColor4f(0.0f, 0.0f, 0.0f, 0.0f);
        
        if (w != ibuf->x || h != ibuf->y) {
-               float facx = (float)w / (float)ibuf->x;
-               float facy = (float)h / (float)ibuf->y;
-               glPixelZoom(facx, facy);
+               facx = (float)w / (float)ibuf->x;
+               facy = (float)h / (float)ibuf->y;
        }
-       glaDrawPixelsAuto((float)rect->xmin, (float)rect->ymin, ibuf->x, 
ibuf->y, GL_RGBA, GL_UNSIGNED_BYTE, GL_NEAREST, ibuf->rect);
-       
-       glPixelZoom(1.0f, 1.0f);
+
+       immDrawPixelsTex((float)rect->xmin, (float)rect->ymin, ibuf->x, 
ibuf->y, GL_RGBA, GL_UNSIGNED_BYTE, GL_NEAREST, ibuf->rect,
+                        facx, facy, NULL);
        
        glDisable(GL_BLEND);
        
@@ -1726,7 +1727,6 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, 
uiWidgetColors *UNUSED(wc
 
                if (width > 0 && height > 0) {
                        ImBuf *drawibuf = scopes->track_preview;
-                       float img_col[4] = {1.0f, 1.0f, 1.0f, 1.0f};
                        float col_sel[4], col_outline[4];
 
                        if (scopes->use_track_mask) {
@@ -1736,7 +1736,7 @@ void ui_draw_but_TRACKPREVIEW(ARegion *ar, uiBut *but, 
uiWidgetColors *UNUSED(wc
                        }
 
                        GPU_shader_unbind(); /* make sure there is no program 
bound */
-                       immDrawPixelsTex(rect.xmin, rect.ymin + 1, drawibuf->x, 
drawibuf->y, GL_RGBA, GL_UNSIGNED_BYTE, GL_LINEAR, drawibuf->rect, 1.0f, 1.0f, 
img_col);
+                       immDrawPixelsTex(rect.xmin, rect.ymin + 1, drawibuf->x, 
drawibuf->y, GL_RGBA, GL_UNSIGNED_BYTE, GL_LINEAR, drawibuf->rect, 1.0f, 1.0f, 
NULL);
 
                        /* draw cross for pixel position */
                        gpuTranslate3f(rect.xmin + scopes->track_pos[0], 
rect.ymin + scopes->track_pos[1], 0.0f);
diff --git a/source/blender/editors/interface/interface_icons.c 
b/source/blender/editors/interface/interface_icons.c
index d6dcd0208f..3def3e3598 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -975,15 +975,13 @@ static void icon_draw_rect(float x, float y, int w, int 
h, float UNUSED(aspect),
                BLI_assert(!"invalid icon size");
                return;
        }
-
        /* modulate color */
-       if (alpha != 1.0f)
-               glPixelTransferf(GL_ALPHA_SCALE, alpha);
+       float col[4] = {1.0f, 1.0f, 1.0f, alpha};
 
        if (rgb) {
-               glPixelTransferf(GL_RED_SCALE, rgb[0]);
-               glPixelTransferf(GL_GREEN_SCALE, rgb[1]);
-               glPixelTransferf(GL_BLUE_SCALE, rgb[2]);
+               col[0] = rgb[0];
+               col[1] = rgb[1];
+               col[2] = rgb[2];
        }
 
        /* rect contains image in 'rendersize', we only scale if needed */
@@ -1009,31 +1007,26 @@ static void icon_draw_rect(float x, float y, int w, int 
h, float UNUSED(aspect),
        }
 
        /* draw */
+#if 0
        if (is_preview) {
-               glaDrawPixelsSafe(draw_x, draw_y, draw_w, draw_h, draw_w, 
GL_RGBA, GL_UNSIGNED_BYTE, rect);
+               immDrawPixelsTex(draw_x, draw_y, draw_w, draw_h, GL_RGBA, 
GL_UNSIGNED_BYTE, GL_NEAREST, rect,
+                                1.0f, 1.0f, col);
        }
        else {
+#endif
                int bound_options;
                GPU_BASIC_SHADER_DISABLE_AND_STORE(bound_options);
 
-               glRasterPos2f(draw_x, draw_y);
-               glDrawPixels(draw_w, draw_h, GL_RGBA, GL_UNSIGNED_BYTE, rect);
+               immDrawPixelsTex(draw_x, draw_y, draw_w, draw_h, GL_RGBA, 
GL_UNSIGNED_BYTE, GL_NEAREST, rect,
+                                1.0f, 1.0f, col);
 
                GPU_BASIC_SHADER_ENABLE_AND_RESTORE(bound_options);
+#if 0
        }
+#endif
 
        if (ima)
                IMB_freeImBuf(ima);
-
-       /* restore color */
-       if (alpha != 0.0f)
-               glPixelTransferf(GL_ALPHA_SCALE, 1.0f);
-       
-       if (rgb) {
-               glPixelTransferf(GL_RED_SCALE, 1.0f);
-               glPixelTransferf(GL_GREEN_SCALE, 1.0f);
-               glPixelTransferf(GL_BLUE_SCALE, 1.0f);
-       }
 }
 
 static void icon_draw_texture(
diff --git a/source/blender/editors/interface/interface_panel.c 
b/source/blender/editors/interface/interface_panel.c
index bd8fa682c4..f1ab4b0934 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -724,7 +724,7 @@ void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, 
const rcti *rect, con
                        /* draw with background color */
                        glEnable(GL_BLEND);
                        immUniformThemeColor(TH_PANEL_BACK);
-                       immRecti(pos, rect->xmin, rect->ymin, rect->xmax, 
rect->ymax);
+                       immRectf(pos, rect->xmin, rect->ymin, rect->xmax, 
rect->ymax);
                }
 
                if (panel->control & UI_PNL_SCALE)

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to