If CG isn't available, still compile and fallback on GLSL

This commit is contained in:
Ryan Houdek 2011-12-24 00:24:13 -06:00 committed by Sonicadvance1
parent 7c91476650
commit 189d12b61c
4 changed files with 13 additions and 3 deletions

View File

@ -475,6 +475,12 @@ else()
include_directories(Externals)
endif(NOT CG_FOUND)
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(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")

View File

@ -23,7 +23,7 @@ if(wxWidgets_FOUND)
set(LIBS ${LIBS} ${wxWidgets_LIBRARIES})
endif(wxWidgets_FOUND)
if(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)
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
list(APPEND LIBS "${CMAKE_SOURCE_DIR}/Externals/Cg/Cg.framework")

View File

@ -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 <Cg/cg.h>
#include <Cg/cgGL.h>
#define HAVE_CG 1
extern CGcontext g_cgcontext;
extern CGprofile g_cgvProf, g_cgfProf;
#endif

View File

@ -438,6 +438,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];