diff options
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_dragdrop.c | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_draw.c | 7 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_xr.c | 4 | ||||
-rw-r--r-- | source/blender/windowmanager/wm.h | 2 |
4 files changed, 8 insertions, 9 deletions
diff --git a/source/blender/windowmanager/intern/wm_dragdrop.c b/source/blender/windowmanager/intern/wm_dragdrop.c index 6b3bd1ea24e..ba6a0c4ebe1 100644 --- a/source/blender/windowmanager/intern/wm_dragdrop.c +++ b/source/blender/windowmanager/intern/wm_dragdrop.c @@ -403,7 +403,7 @@ void wm_drags_draw(bContext *C, wmWindow *win, rcti *rect) /* XXX todo, multiline drag draws... but maybe not, more types mixed wont work well */ GPU_blend(true); for (drag = wm->drags.first; drag; drag = drag->next) { - const char text_col[] = {255, 255, 255, 255}; + const uchar text_col[] = {255, 255, 255, 255}; int iconsize = UI_DPI_ICON_SIZE; int padding = 4 * UI_DPI_FAC; @@ -461,7 +461,7 @@ void wm_drags_draw(bContext *C, wmWindow *win, rcti *rect) drag_rect_minmax(rect, x, y, x + w, y + iconsize); } else { - UI_fontstyle_draw_simple(fstyle, x, y, wm_drag_name(drag), (uchar *)text_col); + UI_fontstyle_draw_simple(fstyle, x, y, wm_drag_name(drag), text_col); } /* operator name with roundbox */ diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c index 4024fc628f0..c146097aeb0 100644 --- a/source/blender/windowmanager/intern/wm_draw.c +++ b/source/blender/windowmanager/intern/wm_draw.c @@ -752,15 +752,14 @@ static void wm_draw_window_onscreen(bContext *C, wmWindow *win, int view) } } -void wm_draw_upside_down(int sizex, int sizey) +void wm_draw_upside_down(int sizex, int sizey, bool to_srgb) { - /* Don't use imm here, this is called from a separate thread with no imm available. */ /* wmOrtho for the screen has this same offset */ const float halfx = GLA_PIXEL_OFS / sizex; const float halfy = GLA_PIXEL_OFS / sizey; - GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_2D_IMAGE_RECT_COLOR); + GPUShader *shader = GPU_shader_get_builtin_shader(to_srgb ? GPU_SHADER_2D_IMAGE_RECT_LINEAR_TO_SRGB : GPU_SHADER_2D_IMAGE_RECT_COLOR); GPU_shader_bind(shader); glUniform1i(GPU_shader_get_uniform_ensure(shader, "image"), 0); @@ -798,7 +797,7 @@ static void wm_draw_window_upside_down_onscreen(bContext *C, wmWindow *win) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, GPU_texture_opengl_bindcode(texture)); - wm_draw_upside_down(win->sizex, win->sizey); + wm_draw_upside_down(win->sizex, win->sizey, false); glBindTexture(GL_TEXTURE_2D, 0); diff --git a/source/blender/windowmanager/intern/wm_xr.c b/source/blender/windowmanager/intern/wm_xr.c index 4d6dd80fb80..fbe6bf906d1 100644 --- a/source/blender/windowmanager/intern/wm_xr.c +++ b/source/blender/windowmanager/intern/wm_xr.c @@ -362,11 +362,11 @@ static GHOST_ContextHandle wm_xr_draw_view(const GHOST_XrDrawViewInfo *draw_view if (g_xr_surface->secondary_ghost_ctx && GHOST_isUpsideDownContext(g_xr_surface->secondary_ghost_ctx)) { GPU_texture_bind(texture, 0); - wm_draw_upside_down(draw_view->width, draw_view->height); + wm_draw_upside_down(draw_view->width, draw_view->height, draw_view->expects_srgb_buffer); GPU_texture_unbind(texture); } else { - GPU_viewport_draw_to_screen(viewport, &rect); + GPU_viewport_draw_to_screen_ex(viewport, &rect, draw_view->expects_srgb_buffer); } GPU_viewport_unbind(viewport); diff --git a/source/blender/windowmanager/wm.h b/source/blender/windowmanager/wm.h index f28552916f2..a98c47b11c2 100644 --- a/source/blender/windowmanager/wm.h +++ b/source/blender/windowmanager/wm.h @@ -98,7 +98,7 @@ void wm_open_init_use_scripts(wmOperator *op, bool use_prefs); /* wm_draw.c */ struct GPUOffScreen; void wm_draw_offscreen_texture_parameters(struct GPUOffScreen *offscreen); -void wm_draw_upside_down(int sizex, int sizey); +void wm_draw_upside_down(int sizex, int sizey, bool to_srgb); #ifdef WITH_OPENXR /* wm_xr.c */ |