mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Add more to renderchain driver
This commit is contained in:
parent
00d52a4783
commit
fe2bf47b98
@ -1359,7 +1359,8 @@ static bool gl_frame(void *data, const void *frame,
|
||||
#endif
|
||||
|
||||
/* Set prev textures. */
|
||||
gl2_renderchain_bind_prev_texture(gl, &gl->tex_info);
|
||||
if (gl->renderchain_driver->bind_prev_texture)
|
||||
gl->renderchain_driver->bind_prev_texture(gl, &gl->tex_info);
|
||||
|
||||
#if defined(HAVE_MENU)
|
||||
if (gl->menu_texture_enable)
|
||||
@ -2449,12 +2450,18 @@ error:
|
||||
|
||||
static void gl_viewport_info(void *data, struct video_viewport *vp)
|
||||
{
|
||||
gl_renderchain_viewport_info(data, vp);
|
||||
gl_t *gl = (gl_t*)data;
|
||||
if (!gl->renderchain_driver || !gl->renderchain_driver->viewport_info)
|
||||
return;
|
||||
gl->renderchain_driver->viewport_info(data, vp);
|
||||
}
|
||||
|
||||
static bool gl_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
||||
{
|
||||
return gl_renderchain_read_viewport(data, buffer, is_idle);
|
||||
gl_t *gl = (gl_t*)data;
|
||||
if (!gl->renderchain_driver || !gl->renderchain_driver->read_viewport)
|
||||
return false;
|
||||
return gl->renderchain_driver->read_viewport(data, buffer, is_idle);
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
@ -72,6 +72,15 @@ typedef struct gl2_renderchain
|
||||
|
||||
/* Prototypes */
|
||||
GLenum min_filter_to_mag(GLenum type);
|
||||
|
||||
void gl_load_texture_data(
|
||||
uint32_t id_data,
|
||||
enum gfx_wrap_type wrap_type,
|
||||
enum texture_filter_type filter_type,
|
||||
unsigned alignment,
|
||||
unsigned width, unsigned height,
|
||||
const void *frame, unsigned base_size);
|
||||
|
||||
void gl_set_viewport(
|
||||
void *data, video_frame_info_t *video_info,
|
||||
unsigned viewport_width,
|
||||
@ -927,7 +936,7 @@ static bool gl2_renderchain_init_hw_render(
|
||||
|
||||
#endif
|
||||
|
||||
void gl2_renderchain_bind_prev_texture(
|
||||
static void gl2_renderchain_bind_prev_texture(
|
||||
void *data,
|
||||
const struct video_tex_info *tex_info)
|
||||
{
|
||||
@ -997,7 +1006,8 @@ bool gl2_renderchain_add_lut(
|
||||
return true;
|
||||
}
|
||||
|
||||
void gl_renderchain_viewport_info(void *data, struct video_viewport *vp)
|
||||
static void gl2_renderchain_viewport_info(
|
||||
void *data, struct video_viewport *vp)
|
||||
{
|
||||
unsigned width, height;
|
||||
unsigned top_y, top_dist;
|
||||
@ -1015,7 +1025,8 @@ void gl_renderchain_viewport_info(void *data, struct video_viewport *vp)
|
||||
vp->y = top_dist;
|
||||
}
|
||||
|
||||
bool gl_renderchain_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
||||
static bool gl2_renderchain_read_viewport(
|
||||
void *data, uint8_t *buffer, bool is_idle)
|
||||
{
|
||||
#ifndef NO_GL_READ_PIXELS
|
||||
unsigned num_pixels = 0;
|
||||
@ -1137,6 +1148,9 @@ static void *gl2_renderchain_new(void)
|
||||
|
||||
#ifdef HAVE_FBO
|
||||
gl_renderchain_driver_t gl2_renderchain = {
|
||||
gl2_renderchain_viewport_info,
|
||||
gl2_renderchain_read_viewport,
|
||||
gl2_renderchain_bind_prev_texture,
|
||||
gl2_renderchain_free_internal,
|
||||
gl2_renderchain_new,
|
||||
gl2_renderchain_init,
|
||||
|
@ -25,29 +25,11 @@
|
||||
|
||||
RETRO_BEGIN_DECLS
|
||||
|
||||
void gl2_renderchain_bind_prev_texture(
|
||||
void *data,
|
||||
const struct video_tex_info *tex_info);
|
||||
|
||||
bool gl2_renderchain_add_lut(const struct video_shader *shader,
|
||||
unsigned i, void *textures_lut);
|
||||
|
||||
void gl_load_texture_data(
|
||||
uint32_t id_data,
|
||||
enum gfx_wrap_type wrap_type,
|
||||
enum texture_filter_type filter_type,
|
||||
unsigned alignment,
|
||||
unsigned width, unsigned height,
|
||||
const void *frame, unsigned base_size);
|
||||
|
||||
void gl2_renderchain_deinit_fbo(void *data);
|
||||
|
||||
void gl_renderchain_viewport_info(
|
||||
void *data, struct video_viewport *vp);
|
||||
|
||||
bool gl_renderchain_read_viewport(
|
||||
void *data, uint8_t *buffer, bool is_idle);
|
||||
|
||||
void context_bind_hw_render(bool enable);
|
||||
|
||||
RETRO_END_DECLS
|
||||
|
@ -827,6 +827,13 @@ typedef struct d3d_renderchain_driver
|
||||
|
||||
typedef struct gl_renderchain_driver
|
||||
{
|
||||
void (*viewport_info)(
|
||||
void *data, struct video_viewport *vp);
|
||||
bool (*read_viewport)(
|
||||
void *data, uint8_t *buffer, bool is_idle);
|
||||
void (*bind_prev_texture)(
|
||||
void *data,
|
||||
const struct video_tex_info *tex_info);
|
||||
void (*chain_free)(void *data);
|
||||
void *(*chain_new)(void);
|
||||
void (*init)(void *data, unsigned fbo_width, unsigned fbo_height);
|
||||
|
Loading…
x
Reference in New Issue
Block a user