diff --git a/Makefile.psl1ght b/Makefile.psl1ght index 5b9273994d..59a9d24591 100644 --- a/Makefile.psl1ght +++ b/Makefile.psl1ght @@ -38,7 +38,7 @@ endif RSXGL_DEFINES = -D__RSX__ -DGL3_PROTOTYPES -SHARED_FLAGS := -DHAVE_FILEBROWSER $(RSXGL_DEFINES) -DHAVE_OPENGL -DHAVE_OPENGL_MODERN -DHAVE_GLSL -DHAVE_VID_CONTEXT -DHAVE_FBO -DHAVE_MOUSE -DHAVE_DEFAULT_RETROPAD_INPUT -DRARCH_CONSOLE -DHAVE_CONFIGFILE=1 -DHAVE_ZLIB -DHAVE_RARCH_MAIN_WRAP -DHAVE_GRIFFIN=1 -DPACKAGE_VERSION=\"0.9.7\" -Dmain=rarch_main -Wno-char-subscripts +SHARED_FLAGS := -DHAVE_FILEBROWSER $(RSXGL_DEFINES) -DHAVE_OPENGL -DHAVE_EGL -DHAVE_OPENGL_MODERN -DHAVE_GLSL -DHAVE_VID_CONTEXT -DHAVE_FBO -DHAVE_MOUSE -DHAVE_DEFAULT_RETROPAD_INPUT -DRARCH_CONSOLE -DHAVE_CONFIGFILE=1 -DHAVE_ZLIB -DHAVE_RARCH_MAIN_WRAP -DHAVE_GRIFFIN=1 -DPACKAGE_VERSION=\"0.9.7\" -Dmain=rarch_main -Wno-char-subscripts CFLAGS += -std=gnu99 $(SHARED_FLAGS) CXXFLAGS += $(SHARED_FLAGS) diff --git a/console/griffin/griffin.c b/console/griffin/griffin.c index 1442a59750..d59dc9d4b3 100644 --- a/console/griffin/griffin.c +++ b/console/griffin/griffin.c @@ -87,10 +87,12 @@ VIDEO CONTEXT #ifdef HAVE_VID_CONTEXT -#if defined(__CELLOS_LV2__) +#if defined(__CELLOS_LV2__) && !defined(__PSL1GHT__) #include "../../gfx/context/ps3_ctx.c" #elif defined(_XBOX) #include "../../gfx/context/xdk_ctx.c" +#elif defined(HAVE_EGL) +#include "../../gfx/context/egl_ctx.c" #else #include "../../gfx/context/null_ctx.c" #endif @@ -155,15 +157,17 @@ VIDEO DRIVER FONTS ============================================================ */ +#if defined(HAVE_OPENGL) || defined(HAVE_D3D8) || defined(HAVE_D3D9) #if defined(__CELLOS_LV2__) && !defined(__PSL1GHT__) #include "../../gfx/fonts/ps3_libdbgfont.c" #elif defined(_XBOX1) #include "../../gfx/fonts/xdk1_xfonts.c" #elif defined(_XBOX360) #include "../../gfx/fonts/xdk360_fonts.cpp" -#elif !defined(GEKKO) +#else #include "../../gfx/fonts/null_fonts.c" #endif +#endif /*============================================================ INPUT diff --git a/gfx/context/egl_ctx.c b/gfx/context/egl_ctx.c new file mode 100644 index 0000000000..3d5ab988b0 --- /dev/null +++ b/gfx/context/egl_ctx.c @@ -0,0 +1,162 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2012 - Hans-Kristian Arntzen + * Copyright (C) 2011-2012 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#include "../../driver.h" +#include "../gfx_context.h" +#include "../gl_common.h" + +#include + +int gfx_ctx_check_resolution(unsigned resolution_id) +{ + (void)resolution_id; + return 0; +} + +unsigned gfx_ctx_get_resolution_width(unsigned resolution_id) +{ + (void)resolution_id; + return 0; +} + +unsigned gfx_ctx_get_resolution_height(unsigned resolution_id) +{ + (void)resolution_id; + return 0; +} + +float gfx_ctx_get_aspect_ratio(void) +{ + return 4.0f / 3.0f; +} + +void gfx_ctx_get_available_resolutions(void) +{} + +void gfx_ctx_set_swap_interval(unsigned interval, bool inited) +{ + (void)inited; + (void)interval; +} + +void gfx_ctx_check_window(bool *quit, + bool *resize, unsigned *width, unsigned *height, unsigned frame_count) +{ + (void)quit; + (void)resize; + (void)width; + (void)height; + (void)frame_count; +} + +void gfx_ctx_swap_buffers(void) +{} + +void gfx_ctx_clear(void) +{} + +void gfx_ctx_set_blend(bool enable) +{} + +void gfx_ctx_set_resize(unsigned width, unsigned height) +{ + (void)width; + (void)height; +} + +bool gfx_ctx_menu_init(void) +{} + +void gfx_ctx_update_window_title(bool reset) +{ + (void)reset; +} + +void gfx_ctx_get_video_size(unsigned *width, unsigned *height) +{ + (void)width; + (void)height; +} + +bool gfx_ctx_init(void) +{ + return true; +} + +bool gfx_ctx_set_video_mode( + unsigned width, unsigned height, + unsigned bits, bool fullscreen) +{ + (void)width; + (void)height; + (void)bits; + (void)fullscreen; + return true; +} + +void gfx_ctx_destroy(void) +{} + +void gfx_ctx_input_driver(const input_driver_t **input, void **input_data) +{ + *input = NULL; + *input_data = NULL; +} + +void gfx_ctx_set_filtering(unsigned index, bool set_smooth) +{ + (void)index; + (void)set_smooth; +} + +void gfx_ctx_set_fbo(bool enable) +{ + (void)enable; +} + +void gfx_ctx_apply_fbo_state_changes(unsigned mode) +{ + (void)mode; +} + +void gfx_ctx_set_projection(gl_t *gl, const struct gl_ortho *ortho, bool allow_rotate) +{ + (void)gl; + (void)ortho; + (void)allow_rotate; +} + +void gfx_ctx_set_aspect_ratio(void *data, unsigned aspectratio_index) +{ + (void)data; + (void)aspectratio_index; +} + +void gfx_ctx_set_overscan(void) +{} + +// Enforce void (*)(void) as it's not really legal to cast void* to fn-pointer. +// POSIX allows this, but strict C99 doesn't. +gfx_ctx_proc_t gfx_ctx_get_proc_address(const char *symbol) +{ + rarch_assert(sizeof(void*) == sizeof(void (*)(void))); + gfx_ctx_proc_t ret; + + void *sym__ = eglGetProcAddress(symbol); + memcpy(&ret, &sym__, sizeof(void*)); + + return ret; +} diff --git a/gfx/gl_common.h b/gfx/gl_common.h index 8375e02f6b..aaa4a41a2d 100644 --- a/gfx/gl_common.h +++ b/gfx/gl_common.h @@ -35,6 +35,7 @@ #include #elif defined(HAVE_OPENGL_MODERN) #include +#include #include #include #elif defined(HAVE_OPENGLES2) diff --git a/gfx/shader_glsl.c b/gfx/shader_glsl.c index 2bb01a4dff..f2f25fd998 100644 --- a/gfx/shader_glsl.c +++ b/gfx/shader_glsl.c @@ -898,7 +898,6 @@ static void gl_glsl_reset_attrib(void) bool gl_glsl_init(const char *path) { -#ifndef __PSL1GHT__ // Load shader functions. LOAD_GL_SYM(CreateProgram); LOAD_GL_SYM(UseProgram); @@ -941,7 +940,6 @@ bool gl_glsl_init(const char *path) RARCH_ERR("GLSL shaders aren't supported by your OpenGL driver.\n"); return false; } -#endif #ifdef HAVE_XML struct shader_program progs[MAX_PROGRAMS];