(GL) Turn GL_FRAMEBUFFER into manual define (PSGL needs different

define, so does Mac PPC)
This commit is contained in:
twinaphex 2014-05-22 20:23:02 +02:00
parent 2c7aa26390
commit 9cbdb708c9
2 changed files with 24 additions and 17 deletions

View File

@ -180,7 +180,6 @@ static bool init_vao(gl_t *gl)
#define glFramebufferRenderbuffer glFramebufferRenderbufferOES
#define glRenderbufferStorage glRenderbufferStorageOES
#define glDeleteRenderbuffers glDeleteRenderbuffersOES
#define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
#define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_EXT
#define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_OES
#define check_fbo_proc(gl) (true)
@ -358,7 +357,7 @@ void gl_shader_set_coords(void *data, const struct gl_coords *coords, const math
void apple_bind_game_view_fbo(void);
#define gl_bind_backbuffer() apple_bind_game_view_fbo()
#else
#define gl_bind_backbuffer() glBindFramebuffer(GL_FRAMEBUFFER, 0)
#define gl_bind_backbuffer() glBindFramebuffer(RARCH_GL_FRAMEBUFFER, 0)
#endif
#ifdef HAVE_FBO
@ -577,10 +576,10 @@ static bool gl_create_fbo_targets(void *data)
glGenFramebuffers(gl->fbo_pass, gl->fbo);
for (i = 0; i < gl->fbo_pass; i++)
{
glBindFramebuffer(GL_FRAMEBUFFER, gl->fbo[i]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl->fbo_texture[i], 0);
glBindFramebuffer(RARCH_GL_FRAMEBUFFER, gl->fbo[i]);
glFramebufferTexture2D(RARCH_GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl->fbo_texture[i], 0);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
GLenum status = glCheckFramebufferStatus(RARCH_GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE)
goto error;
}
@ -726,8 +725,8 @@ static bool gl_init_hw_render(gl_t *gl, unsigned width, unsigned height)
for (i = 0; i < gl->textures; i++)
{
glBindFramebuffer(GL_FRAMEBUFFER, gl->hw_render_fbo[i]);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl->texture[i], 0);
glBindFramebuffer(RARCH_GL_FRAMEBUFFER, gl->hw_render_fbo[i]);
glFramebufferTexture2D(RARCH_GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl->texture[i], 0);
if (depth)
{
@ -741,9 +740,9 @@ static bool gl_init_hw_render(gl_t *gl, unsigned width, unsigned height)
glBindRenderbuffer(GL_RENDERBUFFER, 0);
// There's no GL_DEPTH_STENCIL_ATTACHMENT like in desktop GL.
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
GL_RENDERBUFFER, gl->hw_render_depth[i]);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
GL_RENDERBUFFER, gl->hw_render_depth[i]);
#else
// We use ARB FBO extensions, no need to check.
@ -751,7 +750,7 @@ static bool gl_init_hw_render(gl_t *gl, unsigned width, unsigned height)
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8,
width, height);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
GL_RENDERBUFFER, gl->hw_render_depth[i]);
#endif
}
@ -761,12 +760,12 @@ static bool gl_init_hw_render(gl_t *gl, unsigned width, unsigned height)
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16,
width, height);
glBindRenderbuffer(GL_RENDERBUFFER, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
glFramebufferRenderbuffer(RARCH_GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
GL_RENDERBUFFER, gl->hw_render_depth[i]);
}
}
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
GLenum status = glCheckFramebufferStatus(RARCH_GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE)
{
RARCH_ERR("[GL]: Failed to create HW render FBO #%u, error: 0x%u.\n", i, (unsigned)status);
@ -903,7 +902,7 @@ static void gl_set_rotation(void *data, unsigned rotation)
static inline void gl_start_frame_fbo(gl_t *gl)
{
glBindTexture(GL_TEXTURE_2D, gl->texture[gl->tex_index]);
glBindFramebuffer(GL_FRAMEBUFFER, gl->fbo[0]);
glBindFramebuffer(RARCH_GL_FRAMEBUFFER, gl->fbo[0]);
gl_set_viewport(gl, gl->fbo_rect[0].img_width, gl->fbo_rect[0].img_height, true, false);
// Need to preserve the "flipped" state when in FBO as well to have
@ -935,7 +934,7 @@ static void gl_check_fbo_dimensions(void *data)
unsigned pow2_size = next_pow2(max);
gl->fbo_rect[i].width = gl->fbo_rect[i].height = pow2_size;
glBindFramebuffer(GL_FRAMEBUFFER, gl->fbo[i]);
glBindFramebuffer(RARCH_GL_FRAMEBUFFER, gl->fbo[i]);
glBindTexture(GL_TEXTURE_2D, gl->fbo_texture[i]);
glTexImage2D(GL_TEXTURE_2D,
@ -943,9 +942,9 @@ static void gl_check_fbo_dimensions(void *data)
0, RARCH_GL_TEXTURE_TYPE32,
RARCH_GL_FORMAT32, NULL);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl->fbo_texture[i], 0);
glFramebufferTexture2D(RARCH_GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl->fbo_texture[i], 0);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
GLenum status = glCheckFramebufferStatus(RARCH_GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE)
RARCH_WARN("Failed to reinit FBO texture.\n");
@ -990,7 +989,7 @@ static void gl_frame_fbo(void *data, const struct gl_tex_info *tex_info)
fbo_info->tex_size[1] = prev_rect->height;
memcpy(fbo_info->coord, fbo_tex_coords, sizeof(fbo_tex_coords));
glBindFramebuffer(GL_FRAMEBUFFER, gl->fbo[i]);
glBindFramebuffer(RARCH_GL_FRAMEBUFFER, gl->fbo[i]);
if (gl->shader)
gl->shader->use(gl, i + 1);

View File

@ -62,6 +62,14 @@
#define HAVE_GL_ASYNC_READBACK
#endif
#if defined(HAVE_PSGL)
#define RARCH_GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
#elif defined(__MACHO__)
#define RARCH_GL_FRAMEBUFFER GL_FRAMEBUFFER_EXT
#else
#define RARCH_GL_FRAMEBUFFER GL_FRAMEBUFFER
#endif
static inline bool gl_check_error(void)
{
int error = glGetError();