[Bf-blender-cvs] [2ea5446197] blender2.8: Opengl glaDrawPixels removal: interface

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


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)




More information about the Bf-blender-cvs mailing list