mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 08:43:10 +00:00
Refactor GL code
This commit is contained in:
parent
5a341acb5f
commit
c869cc5102
@ -21,6 +21,8 @@
|
|||||||
#include "../../config.h"
|
#include "../../config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <glsym/glsym.h>
|
||||||
|
|
||||||
#include "../drivers/gl_symlinks.h"
|
#include "../drivers/gl_symlinks.h"
|
||||||
#include "../video_coord_array.h"
|
#include "../video_coord_array.h"
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
|
|
||||||
#include <gfx/gl_capabilities.h>
|
#include <gfx/gl_capabilities.h>
|
||||||
#include <gfx/video_frame.h>
|
#include <gfx/video_frame.h>
|
||||||
|
#include <glsym/glsym.h>
|
||||||
|
|
||||||
#include "../../configuration.h"
|
#include "../../configuration.h"
|
||||||
#include "../../dynamic.h"
|
#include "../../dynamic.h"
|
||||||
|
@ -21,25 +21,10 @@
|
|||||||
#include <boolean.h>
|
#include <boolean.h>
|
||||||
#include <retro_common_api.h>
|
#include <retro_common_api.h>
|
||||||
|
|
||||||
#include <glsym/glsym.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_PSGL)
|
|
||||||
#define glGenFramebuffers glGenFramebuffersOES
|
|
||||||
#define glBindFramebuffer glBindFramebufferOES
|
|
||||||
#define glFramebufferTexture2D glFramebufferTexture2DOES
|
|
||||||
#define glCheckFramebufferStatus glCheckFramebufferStatusOES
|
|
||||||
#define glDeleteFramebuffers glDeleteFramebuffersOES
|
|
||||||
#define glGenRenderbuffers glGenRenderbuffersOES
|
|
||||||
#define glBindRenderbuffer glBindRenderbufferOES
|
|
||||||
#define glFramebufferRenderbuffer glFramebufferRenderbufferOES
|
|
||||||
#define glRenderbufferStorage glRenderbufferStorageOES
|
|
||||||
#define glDeleteRenderbuffers glDeleteRenderbuffersOES
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(HAVE_PSGL)
|
#if defined(HAVE_PSGL)
|
||||||
#define RARCH_GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
|
#define RARCH_GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
|
||||||
#define RARCH_GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_OES
|
#define RARCH_GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_OES
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include <gfx/gl_capabilities.h>
|
#include <gfx/gl_capabilities.h>
|
||||||
#include <gfx/video_frame.h>
|
#include <gfx/video_frame.h>
|
||||||
|
#include <glsym/glsym.h>
|
||||||
|
|
||||||
#include "../video_driver.h"
|
#include "../video_driver.h"
|
||||||
#include "../video_shader_parse.h"
|
#include "../video_shader_parse.h"
|
||||||
@ -67,18 +68,43 @@ typedef struct gl2_renderchain
|
|||||||
coords[5] = yamt; \
|
coords[5] = yamt; \
|
||||||
coords[7] = yamt
|
coords[7] = yamt
|
||||||
|
|
||||||
#if (defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__)))
|
#if defined(HAVE_PSGL)
|
||||||
|
#define gl2_fb_texture_2d(a, b, c, d, e) glFramebufferTexture2DOES(a, b, c, d, e)
|
||||||
|
#define gl2_check_fb_status(target) glCheckFramebufferStatusOES(target)
|
||||||
|
#define gl2_gen_fb(n, ids) glGenFramebuffersOES(n, ids)
|
||||||
|
#define gl2_delete_fb(n, fb) glDeleteFramebuffersOES(n, fb)
|
||||||
|
#define gl2_bind_fb(id) glBindFramebufferOES(RARCH_GL_FRAMEBUFFER, id)
|
||||||
|
#define gl2_gen_rb glGenRenderbuffersOES
|
||||||
|
#define gl2_bind_rb glBindRenderbufferOES
|
||||||
|
#define gl2_fb_rb glFramebufferRenderbufferOES
|
||||||
|
#define gl2_rb_storage glRenderbufferStorageOES
|
||||||
|
#define gl2_delete_rb glDeleteRenderbuffersOES
|
||||||
|
|
||||||
|
#elif (defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__)))
|
||||||
#define gl2_fb_texture_2d(a, b, c, d, e) glFramebufferTexture2DEXT(a, b, c, d, e)
|
#define gl2_fb_texture_2d(a, b, c, d, e) glFramebufferTexture2DEXT(a, b, c, d, e)
|
||||||
#define gl2_check_fb_status(target) glCheckFramebufferStatusEXT(target)
|
#define gl2_check_fb_status(target) glCheckFramebufferStatusEXT(target)
|
||||||
#define gl2_gen_fb(n, ids) glGenFramebuffersEXT(n, ids)
|
#define gl2_gen_fb(n, ids) glGenFramebuffersEXT(n, ids)
|
||||||
#define gl2_delete_fb(n, fb) glDeleteFramebuffersEXT(n, fb)
|
#define gl2_delete_fb(n, fb) glDeleteFramebuffersEXT(n, fb)
|
||||||
#define gl2_bind_fb(id) glBindFramebufferEXT(RARCH_GL_FRAMEBUFFER, id)
|
#define gl2_bind_fb(id) glBindFramebufferEXT(RARCH_GL_FRAMEBUFFER, id)
|
||||||
|
#define gl2_gen_rb glGenRenderbuffersEXT
|
||||||
|
#define gl2_bind_rb glBindRenderbufferEXT
|
||||||
|
#define gl2_fb_rb glFramebufferRenderbufferEXT
|
||||||
|
#define gl2_rb_storage glRenderbufferStorageEXT
|
||||||
|
#define gl2_delete_rb glDeleteRenderbuffersEXT
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define gl2_fb_texture_2d(a, b, c, d, e) glFramebufferTexture2D(a, b, c, d, e)
|
#define gl2_fb_texture_2d(a, b, c, d, e) glFramebufferTexture2D(a, b, c, d, e)
|
||||||
#define gl2_check_fb_status(target) glCheckFramebufferStatus(target)
|
#define gl2_check_fb_status(target) glCheckFramebufferStatus(target)
|
||||||
#define gl2_gen_fb(n, ids) glGenFramebuffers(n, ids)
|
#define gl2_gen_fb(n, ids) glGenFramebuffers(n, ids)
|
||||||
#define gl2_delete_fb(n, fb) glDeleteFramebuffers(n, fb)
|
#define gl2_delete_fb(n, fb) glDeleteFramebuffers(n, fb)
|
||||||
#define gl2_bind_fb(id) glBindFramebuffer(RARCH_GL_FRAMEBUFFER, id)
|
#define gl2_bind_fb(id) glBindFramebuffer(RARCH_GL_FRAMEBUFFER, id)
|
||||||
|
#define gl2_gen_rb glGenRenderbuffers
|
||||||
|
#define gl2_bind_rb glBindRenderbuffer
|
||||||
|
#define gl2_fb_rb glFramebufferRenderbuffer
|
||||||
|
#define gl2_rb_storage glRenderbufferStorage
|
||||||
|
#define gl2_delete_rb glDeleteRenderbuffers
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -466,7 +492,7 @@ static void gl2_renderchain_deinit_hw_render(void *data)
|
|||||||
if (gl->hw_render_fbo_init)
|
if (gl->hw_render_fbo_init)
|
||||||
gl2_delete_fb(gl->textures, gl->hw_render_fbo);
|
gl2_delete_fb(gl->textures, gl->hw_render_fbo);
|
||||||
if (gl->hw_render_depth_init)
|
if (gl->hw_render_depth_init)
|
||||||
glDeleteRenderbuffers(gl->textures, gl->hw_render_depth);
|
gl2_delete_rb(gl->textures, gl->hw_render_depth);
|
||||||
gl->hw_render_fbo_init = false;
|
gl->hw_render_fbo_init = false;
|
||||||
|
|
||||||
context_bind_hw_render(false);
|
context_bind_hw_render(false);
|
||||||
@ -896,7 +922,7 @@ static bool gl2_renderchain_init_hw_render(
|
|||||||
|
|
||||||
if (depth)
|
if (depth)
|
||||||
{
|
{
|
||||||
glGenRenderbuffers(gl->textures, gl->hw_render_depth);
|
gl2_gen_rb(gl->textures, gl->hw_render_depth);
|
||||||
gl->hw_render_depth_init = true;
|
gl->hw_render_depth_init = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -908,33 +934,33 @@ static bool gl2_renderchain_init_hw_render(
|
|||||||
|
|
||||||
if (depth)
|
if (depth)
|
||||||
{
|
{
|
||||||
glBindRenderbuffer(RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
gl2_bind_rb(RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
||||||
glRenderbufferStorage(RARCH_GL_RENDERBUFFER,
|
gl2_rb_storage(RARCH_GL_RENDERBUFFER,
|
||||||
stencil ? RARCH_GL_DEPTH24_STENCIL8 : GL_DEPTH_COMPONENT16,
|
stencil ? RARCH_GL_DEPTH24_STENCIL8 : GL_DEPTH_COMPONENT16,
|
||||||
width, height);
|
width, height);
|
||||||
glBindRenderbuffer(RARCH_GL_RENDERBUFFER, 0);
|
gl2_bind_rb(RARCH_GL_RENDERBUFFER, 0);
|
||||||
|
|
||||||
if (stencil)
|
if (stencil)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_OPENGLES2) || defined(HAVE_OPENGLES1) || ((defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__))))
|
#if defined(HAVE_OPENGLES2) || defined(HAVE_OPENGLES1) || ((defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__))))
|
||||||
/* GLES2 is a bit weird, as always.
|
/* GLES2 is a bit weird, as always.
|
||||||
* There's no GL_DEPTH_STENCIL_ATTACHMENT like in desktop GL. */
|
* There's no GL_DEPTH_STENCIL_ATTACHMENT like in desktop GL. */
|
||||||
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER,
|
gl2_fb_rb(RARCH_GL_FRAMEBUFFER,
|
||||||
RARCH_GL_DEPTH_ATTACHMENT,
|
RARCH_GL_DEPTH_ATTACHMENT,
|
||||||
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
||||||
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER,
|
gl2_fb_rb(RARCH_GL_FRAMEBUFFER,
|
||||||
RARCH_GL_STENCIL_ATTACHMENT,
|
RARCH_GL_STENCIL_ATTACHMENT,
|
||||||
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
||||||
#else
|
#else
|
||||||
/* We use ARB FBO extensions, no need to check. */
|
/* We use ARB FBO extensions, no need to check. */
|
||||||
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER,
|
gl2_fb_rb(RARCH_GL_FRAMEBUFFER,
|
||||||
GL_DEPTH_STENCIL_ATTACHMENT,
|
GL_DEPTH_STENCIL_ATTACHMENT,
|
||||||
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER,
|
gl2_fb_rb(RARCH_GL_FRAMEBUFFER,
|
||||||
RARCH_GL_DEPTH_ATTACHMENT,
|
RARCH_GL_DEPTH_ATTACHMENT,
|
||||||
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
RARCH_GL_RENDERBUFFER, gl->hw_render_depth[i]);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user