From 9bc6b83fd0bd7f54b8cbefe762eaf59e9ec522b9 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sat, 24 Dec 2011 00:24:13 -0600 Subject: [PATCH] If CG isn't available, still compile and fallback on GLSL --- CMakeLists.txt | 6 ++++++ Source/Plugins/Plugin_VideoOGL/CMakeLists.txt | 2 +- Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h | 3 +-- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 5 +++++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e870304dc4..a22e017107 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -372,6 +372,12 @@ else() check_lib(CG Cg Cg/cg.h) check_lib(CGGL CgGL Cg/cgGL.h) + if(NOT CG_FOUND) + message("CG not found, Building without") + add_definitions(-DHAVE_CG=0) + else() + add_definitions(-DHAVE_CG=1) + endif() endif() if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") diff --git a/Source/Plugins/Plugin_VideoOGL/CMakeLists.txt b/Source/Plugins/Plugin_VideoOGL/CMakeLists.txt index 6a49269c6c..86f48d2fc3 100644 --- a/Source/Plugins/Plugin_VideoOGL/CMakeLists.txt +++ b/Source/Plugins/Plugin_VideoOGL/CMakeLists.txt @@ -23,7 +23,7 @@ if(wxWidgets_FOUND) set(LIBS ${LIBS} ${wxWidgets_LIBRARIES}) endif(wxWidgets_FOUND) -if(APPLE OR WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux") +if(HAVE_CG AND (APPLE OR WIN32 OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux")) set(LIBS ${LIBS} Cg CgGL) endif() diff --git a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h index bfde884ccd..db7cf822e4 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h +++ b/Source/Plugins/Plugin_VideoOGL/Src/GLUtil.h @@ -113,10 +113,9 @@ bool OpenGL_ReportFBOError(const char *function, const char *file, int line); #define GL_REPORT_PROGRAM_ERROR() (void)0 #endif -#if defined __APPLE__ || defined __linux__ || defined _WIN32 +#if HAVE_CG && (defined __APPLE__ || defined __linux__ || defined _WIN32) #include #include -#define HAVE_CG 1 extern CGcontext g_cgcontext; extern CGprofile g_cgvProf, g_cgfProf; #endif diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index bbb80bcbbd..6d1d4dd23b 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -435,6 +435,11 @@ Renderer::Renderer() cgGLSetOptimalOptions(g_cgfProf); } } +#else + // If we don't have Nvidia CG, we HAVE to use GLSL + g_Config.bUseGLSL = true; + + UpdateActiveConfig(); #endif // HAVE_CG int nenvvertparams, nenvfragparams, naddrregisters[2];