mirror of
https://github.com/libretro/RetroArch
synced 2025-03-01 16:13:40 +00:00
(GL) Cleanup gl_read_viewport
This commit is contained in:
parent
270f10ae04
commit
a4f234e26e
@ -2666,13 +2666,10 @@ static bool gl_read_viewport(void *data, uint8_t *buffer)
|
|||||||
{
|
{
|
||||||
const uint8_t *ptr = NULL;
|
const uint8_t *ptr = NULL;
|
||||||
|
|
||||||
/* Don't readback if we're in menu mode. */
|
/* Don't readback if we're in menu mode.
|
||||||
|
* We haven't buffered up enough frames yet, come back later. */
|
||||||
if (!gl->pbo_readback_valid[gl->pbo_readback_index])
|
if (!gl->pbo_readback_valid[gl->pbo_readback_index])
|
||||||
{
|
goto error;
|
||||||
/* We haven't buffered up enough frames yet, come back later. */
|
|
||||||
context_bind_hw_render(gl, true);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
gl->pbo_readback_valid[gl->pbo_readback_index] = false;
|
gl->pbo_readback_valid[gl->pbo_readback_index] = false;
|
||||||
glBindBuffer(GL_PIXEL_PACK_BUFFER, gl->pbo_readback[gl->pbo_readback_index]);
|
glBindBuffer(GL_PIXEL_PACK_BUFFER, gl->pbo_readback[gl->pbo_readback_index]);
|
||||||
@ -2699,16 +2696,14 @@ static bool gl_read_viewport(void *data, uint8_t *buffer)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
RARCH_ERR("[GL]: Failed to map pixel unpack buffer.\n");
|
RARCH_ERR("[GL]: Failed to map pixel unpack buffer.\n");
|
||||||
context_bind_hw_render(gl, true);
|
goto error;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
ptr = (const uint8_t*)glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY);
|
ptr = (const uint8_t*)glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY);
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
{
|
{
|
||||||
RARCH_ERR("[GL]: Failed to map pixel unpack buffer.\n");
|
RARCH_ERR("[GL]: Failed to map pixel unpack buffer.\n");
|
||||||
context_bind_hw_render(gl, true);
|
goto error;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scaler_ctx_scale(&gl->pbo_readback_scaler, buffer, ptr);
|
scaler_ctx_scale(&gl->pbo_readback_scaler, buffer, ptr);
|
||||||
@ -2739,8 +2734,7 @@ static bool gl_read_viewport(void *data, uint8_t *buffer)
|
|||||||
if (!gl->readback_buffer_screenshot)
|
if (!gl->readback_buffer_screenshot)
|
||||||
{
|
{
|
||||||
RARCH_PERFORMANCE_STOP(read_viewport);
|
RARCH_PERFORMANCE_STOP(read_viewport);
|
||||||
context_bind_hw_render(gl, true);
|
goto error;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rarch_render_cached_frame();
|
rarch_render_cached_frame();
|
||||||
@ -2762,6 +2756,10 @@ static bool gl_read_viewport(void *data, uint8_t *buffer)
|
|||||||
RARCH_PERFORMANCE_STOP(read_viewport);
|
RARCH_PERFORMANCE_STOP(read_viewport);
|
||||||
context_bind_hw_render(gl, true);
|
context_bind_hw_render(gl, true);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
error:
|
||||||
|
context_bind_hw_render(gl, true);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user