mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2024-11-25 09:44:02 +00:00
Merge branch 'experimental' into controllerfixup + bring back BBGE_BUILD_OPENGL_DYNAMIC
# Conflicts: # BBGE/Base.cpp # BBGE/FrameBuffer.cpp # BBGE/Shader.cpp
This commit is contained in:
commit
86cd7950ca
6 changed files with 27 additions and 40 deletions
|
@ -1,4 +1,4 @@
|
||||||
#/*
|
/*
|
||||||
Copyright (C) 2007, 2010 - Bit-Blot
|
Copyright (C) 2007, 2010 - Bit-Blot
|
||||||
|
|
||||||
This file is part of Aquaria.
|
This file is part of Aquaria.
|
||||||
|
@ -55,6 +55,8 @@ extern "C"
|
||||||
|
|
||||||
#include "../BBGE/MathFunctions.h"
|
#include "../BBGE/MathFunctions.h"
|
||||||
|
|
||||||
|
#undef quad // avoid conflict with quad precision types
|
||||||
|
|
||||||
// Define this to 1 to check types of pointers passed to functions,
|
// Define this to 1 to check types of pointers passed to functions,
|
||||||
// and warn if a type mismatch is detected. In this case,
|
// and warn if a type mismatch is detected. In this case,
|
||||||
// the pointer is treated as NULL, to avoid crashing or undefined behavior.
|
// the pointer is treated as NULL, to avoid crashing or undefined behavior.
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#ifndef BBGE_SKIP_CONFIG_HEADERS
|
#ifndef BBGE_SKIP_CONFIG_HEADERS
|
||||||
|
|
||||||
|
#define BBGE_BUILD_OPENGL_DYNAMIC 1
|
||||||
#define BBGE_BUILD_FMOD_OPENAL_BRIDGE 1
|
#define BBGE_BUILD_FMOD_OPENAL_BRIDGE 1
|
||||||
#define BBGE_BUILD_ACHIEVEMENTS_INTERNAL 1
|
#define BBGE_BUILD_ACHIEVEMENTS_INTERNAL 1
|
||||||
#define BBGE_BUILD_VFS 1
|
#define BBGE_BUILD_VFS 1
|
||||||
|
|
|
@ -705,6 +705,7 @@ void Core::initGraphicsLibrary(int width, int height, bool fullscreen, bool vsyn
|
||||||
window->open(width, height, fullscreen, bpp, vsync, display, hz);
|
window->open(width, height, fullscreen, bpp, vsync, display, hz);
|
||||||
window->setTitle(appName.c_str());
|
window->setTitle(appName.c_str());
|
||||||
|
|
||||||
|
#ifdef BBGE_BUILD_OPENGL_DYNAMIC
|
||||||
// get GL symbols AFTER opening the window, otherwise we get a super old GL context on windows and nothing works
|
// get GL symbols AFTER opening the window, otherwise we get a super old GL context on windows and nothing works
|
||||||
if (!lookup_all_glsyms())
|
if (!lookup_all_glsyms())
|
||||||
{
|
{
|
||||||
|
@ -713,6 +714,7 @@ void Core::initGraphicsLibrary(int width, int height, bool fullscreen, bool vsyn
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
exit_error(os.str());
|
exit_error(os.str());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
debugLog("GL vendor, renderer & version:");
|
debugLog("GL vendor, renderer & version:");
|
||||||
debugLog((const char*)glGetString(GL_VENDOR));
|
debugLog((const char*)glGetString(GL_VENDOR));
|
||||||
|
@ -827,7 +829,9 @@ void Core::shutdownGraphicsLibrary()
|
||||||
delete window;
|
delete window;
|
||||||
window = NULL;
|
window = NULL;
|
||||||
SDL_QuitSubSystem(SDL_INIT_VIDEO);
|
SDL_QuitSubSystem(SDL_INIT_VIDEO);
|
||||||
|
#ifdef BBGE_BUILD_OPENGL_DYNAMIC
|
||||||
unload_all_glsyms();
|
unload_all_glsyms();
|
||||||
|
#endif
|
||||||
|
|
||||||
lib_graphics = false;
|
lib_graphics = false;
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
#include <GL/glext.h>
|
#include <GL/glext.h>
|
||||||
|
|
||||||
|
#ifdef BBGE_BUILD_OPENGL_DYNAMIC
|
||||||
|
|
||||||
PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT = NULL;
|
PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT = NULL;
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@ PFNGLUNIFORM2IVARBPROC glUniform2ivARB = NULL;
|
||||||
PFNGLUNIFORM3IVARBPROC glUniform3ivARB = NULL;
|
PFNGLUNIFORM3IVARBPROC glUniform3ivARB = NULL;
|
||||||
PFNGLUNIFORM4IVARBPROC glUniform4ivARB = NULL;
|
PFNGLUNIFORM4IVARBPROC glUniform4ivARB = NULL;
|
||||||
|
|
||||||
|
// GL_ARB_shader_objects and related
|
||||||
PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT = NULL;
|
PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT = NULL;
|
||||||
PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT = NULL;
|
PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT = NULL;
|
||||||
PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT = NULL;
|
PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT = NULL;
|
||||||
|
@ -149,7 +151,6 @@ void unload_all_glsyms()
|
||||||
|
|
||||||
glGenerateMipmapEXT = NULL;
|
glGenerateMipmapEXT = NULL;
|
||||||
|
|
||||||
#if defined(BBGE_BUILD_FRAMEBUFFER)
|
|
||||||
// set these back to NULL and reload them upon reinit, otherwise they
|
// set these back to NULL and reload them upon reinit, otherwise they
|
||||||
// might point to a bogus address when the shared library is reloaded.
|
// might point to a bogus address when the shared library is reloaded.
|
||||||
glIsRenderbufferEXT = NULL;
|
glIsRenderbufferEXT = NULL;
|
||||||
|
@ -168,7 +169,6 @@ void unload_all_glsyms()
|
||||||
glFramebufferTexture3DEXT = NULL;
|
glFramebufferTexture3DEXT = NULL;
|
||||||
glFramebufferRenderbufferEXT = NULL;
|
glFramebufferRenderbufferEXT = NULL;
|
||||||
glGetFramebufferAttachmentParameterivEXT = NULL;
|
glGetFramebufferAttachmentParameterivEXT = NULL;
|
||||||
#endif
|
|
||||||
|
|
||||||
glCreateProgramObjectARB = NULL;
|
glCreateProgramObjectARB = NULL;
|
||||||
glDeleteObjectARB = NULL;
|
glDeleteObjectARB = NULL;
|
||||||
|
@ -191,3 +191,5 @@ void unload_all_glsyms()
|
||||||
glUniform3ivARB = NULL;
|
glUniform3ivARB = NULL;
|
||||||
glUniform4ivARB = NULL;
|
glUniform4ivARB = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // BBGE_BUILD_OPENGL_DYNAMIC
|
||||||
|
|
|
@ -24,7 +24,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "RenderBase.h"
|
#include "RenderBase.h"
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
|
||||||
bool Shader::_wasInited = false;
|
bool Shader::_wasInited = false;
|
||||||
bool Shader::_useShaders = false;
|
bool Shader::_useShaders = false;
|
||||||
|
|
||||||
|
@ -36,26 +35,9 @@ void Shader::staticInit()
|
||||||
_wasInited = true;
|
_wasInited = true;
|
||||||
debugLog("Initializing shaders...");
|
debugLog("Initializing shaders...");
|
||||||
|
|
||||||
/*char *ext = (char*)glGetString( GL_EXTENSIONS );
|
bool use = true;
|
||||||
|
|
||||||
if( strstr( ext, "GL_ARB_shading_language_100" ) == NULL )
|
#ifdef BBGE_BUILD_OPENGL_DYNAMIC
|
||||||
{
|
|
||||||
//This extension string indicates that the OpenGL Shading Language,
|
|
||||||
// version 1.00, is supported.
|
|
||||||
debugLog("GL_ARB_shading_language_100 extension was not found");
|
|
||||||
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( strstr( ext, "GL_ARB_shader_objects" ) == NULL )
|
|
||||||
{
|
|
||||||
debugLog("GL_ARB_shader_objects extension was not found");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
else*/
|
|
||||||
// Better to just check if the function pointers are there;
|
|
||||||
// the driver might truncate the extension string or something. -- fg
|
|
||||||
{
|
|
||||||
if( !glCreateProgramObjectARB || !glDeleteObjectARB || !glUseProgramObjectARB ||
|
if( !glCreateProgramObjectARB || !glDeleteObjectARB || !glUseProgramObjectARB ||
|
||||||
!glCreateShaderObjectARB || !glCreateShaderObjectARB || !glCompileShaderARB ||
|
!glCreateShaderObjectARB || !glCreateShaderObjectARB || !glCompileShaderARB ||
|
||||||
!glGetObjectParameterivARB || !glAttachObjectARB || !glGetInfoLogARB ||
|
!glGetObjectParameterivARB || !glAttachObjectARB || !glGetInfoLogARB ||
|
||||||
|
@ -65,17 +47,12 @@ void Shader::staticInit()
|
||||||
{
|
{
|
||||||
glCreateProgramObjectARB = 0;
|
glCreateProgramObjectARB = 0;
|
||||||
debugLog("One or more GL_ARB_shader_objects functions were not found");
|
debugLog("One or more GL_ARB_shader_objects functions were not found");
|
||||||
goto end;
|
use = false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// everything fine when we are here
|
_useShaders = use;
|
||||||
_useShaders = true;
|
if (use)
|
||||||
|
|
||||||
|
|
||||||
end:
|
|
||||||
|
|
||||||
if (_useShaders)
|
|
||||||
debugLog("Shader support enabled.");
|
debugLog("Shader support enabled.");
|
||||||
else
|
else
|
||||||
debugLog("Shader support not enabled.");
|
debugLog("Shader support not enabled.");
|
||||||
|
|
|
@ -313,6 +313,7 @@ endif(NOT(AQUARIA_EXTRA_DATA_DIR STREQUAL ""))
|
||||||
# Aquaria/BBGE specific defines...
|
# Aquaria/BBGE specific defines...
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DBBGE_SKIP_CONFIG_HEADERS=1) # if this is not defined, it will use .h files to set the necessary defines
|
ADD_DEFINITIONS(-DBBGE_SKIP_CONFIG_HEADERS=1) # if this is not defined, it will use .h files to set the necessary defines
|
||||||
|
ADD_DEFINITIONS(-DBBGE_BUILD_OPENGL_DYNAMIC=1)
|
||||||
ADD_DEFINITIONS(-DBBGE_BUILD_FMOD_OPENAL_BRIDGE=1)
|
ADD_DEFINITIONS(-DBBGE_BUILD_FMOD_OPENAL_BRIDGE=1)
|
||||||
IF(AQUARIA_USE_VFS)
|
IF(AQUARIA_USE_VFS)
|
||||||
ADD_DEFINITIONS(-DBBGE_BUILD_VFS=1)
|
ADD_DEFINITIONS(-DBBGE_BUILD_VFS=1)
|
||||||
|
|
Loading…
Reference in a new issue