|
|
@@ -67,6 +67,11 @@ void draw_uv_vbuffer(gs_vertbuffer_t *vbuf, gs_texture_t *tex,
|
|
|
if (vbuf == NULL || tex == NULL)
|
|
|
return;
|
|
|
|
|
|
+ const bool linear_srgb = gs_get_linear_srgb();
|
|
|
+
|
|
|
+ const bool previous = gs_framebuffer_srgb_enabled();
|
|
|
+ gs_enable_framebuffer_srgb(linear_srgb);
|
|
|
+
|
|
|
gs_vertexbuffer_flush(vbuf);
|
|
|
gs_load_vertexbuffer(vbuf);
|
|
|
gs_load_indexbuffer(NULL);
|
|
|
@@ -75,7 +80,10 @@ void draw_uv_vbuffer(gs_vertbuffer_t *vbuf, gs_texture_t *tex,
|
|
|
|
|
|
for (size_t i = 0; i < passes; i++) {
|
|
|
if (gs_technique_begin_pass(tech, i)) {
|
|
|
- gs_effect_set_texture(image, texture);
|
|
|
+ if (linear_srgb)
|
|
|
+ gs_effect_set_texture_srgb(image, texture);
|
|
|
+ else
|
|
|
+ gs_effect_set_texture(image, texture);
|
|
|
|
|
|
gs_draw(GS_TRIS, 0, num_verts);
|
|
|
|
|
|
@@ -84,4 +92,6 @@ void draw_uv_vbuffer(gs_vertbuffer_t *vbuf, gs_texture_t *tex,
|
|
|
}
|
|
|
|
|
|
gs_technique_end(tech);
|
|
|
+
|
|
|
+ gs_enable_framebuffer_srgb(previous);
|
|
|
}
|