Revert "(PS3) ps3_video_psgl.c cleanups"

This reverts commit 824d2923a5.
This commit is contained in:
Twinaphex 2012-05-25 21:40:28 +02:00
parent 417cb55a6e
commit b2c7b766ae
3 changed files with 20 additions and 56 deletions

View File

@ -81,9 +81,7 @@ static const GLfloat white_color[] = {
1, 1, 1, 1,
};
#ifdef _WIN32
#define LOAD_SYM(sym) if (!p##sym) { SDL_SYM_WRAP(p##sym, #sym) }
#endif
#ifdef HAVE_FBO
#ifdef _WIN32

View File

@ -17,6 +17,7 @@
#include "../driver.h"
#include "ps3_video_psgl.h"
#include <stdint.h>
#include "../libretro.h"
@ -99,38 +100,6 @@ static const GLfloat white_color[] = {
1, 1, 1, 1,
};
#ifdef HAVE_FBO
#if defined(HAVE_OPENGLES)
#define pglGenFramebuffers glGenFramebuffersOES
#define pglBindFramebuffer glBindFramebufferOES
#define pglFramebufferTexture2D glFramebufferTexture2DOES
#define pglCheckFramebufferStatus glCheckFramebufferStatusOES
#define pglDeleteFramebuffers glDeleteFramebuffersOES
#define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
#define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_EXT
#define GL_FRAMEBUFFER_COMPLETE GL_FRAMEBUFFER_COMPLETE_OES
static bool load_fbo_proc(void) { return true; }
#else
#define pglGenFramebuffers glGenFramebuffers
#define pglBindFramebuffer glBindFramebuffer
#define pglFramebufferTexture2D glFramebufferTexture2D
#define pglCheckFramebufferStatus glCheckFramebufferStatus
#define pglDeleteFramebuffers glDeleteFramebuffers
static bool load_fbo_proc(void) { return true; }
#endif
#endif
#define MAX_SHADERS 16
#if defined(HAVE_XML) || defined(HAVE_CG)
#define TEXTURES 8
#else
#define TEXTURES 1
#endif
#define TEXTURES_MASK (TEXTURES - 1)
#include "ps3_video_psgl.h"
bool g_quitting;
unsigned g_frame_count;
void *g_gl;
@ -637,10 +606,8 @@ static bool gl_frame(void *data, const void *frame, unsigned width, unsigned hei
if (gl->fbo_enabled)
{
GLfloat fbo_tex_coords[8] = {0.0f};
// Render the rest of our passes.
glTexCoordPointer(2, GL_FLOAT, 0, fbo_tex_coords);
glTexCoordPointer(2, GL_FLOAT, 0, gl->fbo_tex_coords);
// It's kinda handy ... :)
const struct gl_fbo_rect *prev_rect;
@ -657,14 +624,14 @@ static bool gl_frame(void *data, const void *frame, unsigned width, unsigned hei
GLfloat xamt = (GLfloat)prev_rect->img_width / prev_rect->width;
GLfloat yamt = (GLfloat)prev_rect->img_height / prev_rect->height;
set_texture_coords(fbo_tex_coords, xamt, yamt);
set_texture_coords(gl->fbo_tex_coords, xamt, yamt);
fbo_info->tex = gl->fbo_texture[i - 1];
fbo_info->input_size[0] = prev_rect->img_width;
fbo_info->input_size[1] = prev_rect->img_height;
fbo_info->tex_size[0] = prev_rect->width;
fbo_info->tex_size[1] = prev_rect->height;
memcpy(fbo_info->coord, fbo_tex_coords, sizeof(fbo_tex_coords));
memcpy(fbo_info->coord, gl->fbo_tex_coords, sizeof(gl->fbo_tex_coords));
glBindFramebufferOES(GL_FRAMEBUFFER_OES, gl->fbo[i]);
gl_cg_use(i + 1);
@ -689,7 +656,7 @@ static bool gl_frame(void *data, const void *frame, unsigned width, unsigned hei
GLfloat xamt = (GLfloat)prev_rect->img_width / prev_rect->width;
GLfloat yamt = (GLfloat)prev_rect->img_height / prev_rect->height;
set_texture_coords(fbo_tex_coords, xamt, yamt);
set_texture_coords(gl->fbo_tex_coords, xamt, yamt);
// Render our FBO texture to back buffer.
glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);

View File

@ -27,6 +27,10 @@
#define FBO_INIT 1
#define FBO_REINIT 2
#define MAX_SHADERS 16
#define TEXTURES 8
#define TEXTURES_MASK (TEXTURES - 1)
#define MIN_SCALING_FACTOR (1.0f)
#define MAX_SCALING_FACTOR (4.0f)
@ -40,20 +44,16 @@
typedef struct gl
{
bool vsync;
GLuint texture[TEXTURES];
unsigned tex_index; /* For use with PREV. */
struct gl_tex_info prev_info[TEXTURES];
GLuint tex_filter;
void *empty_buf;
bool block_swap;
bool fbo_enabled;
bool keep_aspect;
bool vsync;
bool overscan_enable;
int fbo_pass;
unsigned base_size; /* 2 or 4*/
unsigned last_width[TEXTURES];
unsigned last_height[TEXTURES];
unsigned tex_index; /* For use with PREV. */
unsigned tex_w, tex_h;
unsigned vp_width, vp_out_width;
unsigned vp_height, vp_out_height;
@ -61,25 +61,24 @@ typedef struct gl
unsigned win_height;
GLfloat overscan_amount;
GLfloat tex_coords[8];
GLfloat fbo_tex_coords[8];
GLenum texture_type; /* XBGR1555 or ARGB*/
GLenum texture_fmt;
unsigned base_size; /* 2 or 4*/
#ifdef HAVE_FBO
/* Render-to-texture, multipass shaders */
GLuint fbo[MAX_SHADERS];
GLuint fbo_texture[MAX_SHADERS];
struct gl_fbo_rect fbo_rect[MAX_SHADERS];
struct gl_fbo_scale fbo_scale[MAX_SHADERS];
int fbo_pass;
#endif
GLuint menu_texture_id;
GLuint pbo;
GLuint texture[TEXTURES];
GLuint tex_filter;
CellVideoOutState g_video_state;
PSGLdevice* gl_device;
PSGLcontext* gl_context;
struct gl_fbo_rect fbo_rect[MAX_SHADERS];
struct gl_fbo_scale fbo_scale[MAX_SHADERS];
struct gl_tex_info prev_info[TEXTURES];
struct texture_image menu_texture;
void *empty_buf;
} gl_t;
bool ps3_setup_texture(void);