From Jorge Ciges, "1rst - Changes in Cmake: They make possible "make install" with the android building.
2nd - Script to use a 3rd party directory with basic libraries: libjpeg,libpng,libtiff,giflib,freetype,curl,gdal. 3rd - Change in the GLES library loading for Android. That should make GLES2 work properly. 4rth- Included two defines RGB8_OES and RGBA8_OES as a substitute in GLES for RGB8 and RGBA8 5th - OpenGL and GLSL version identification changed to recognize GLES versions properly "
This commit is contained in:
@@ -377,9 +377,17 @@ void GL2Extensions::setupGL2Extensions(unsigned int contextID)
|
||||
{
|
||||
// If glGetString raises an error, assume initial release "1.00"
|
||||
while(glGetError() != GL_NO_ERROR) {} // reset error flag
|
||||
|
||||
const char* langVerStr = (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION);
|
||||
if( (glGetError() == GL_NO_ERROR) && langVerStr )
|
||||
_glslLanguageVersion = asciiToFloat( langVerStr );
|
||||
{
|
||||
std::string glslvs( langVerStr );
|
||||
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
||||
_glslLanguageVersion = ( asciiToFloat( glslvs.substr( glslvs.find( "GLSL ES " )+8 ).c_str() ) );
|
||||
#else
|
||||
_glslLanguageVersion = ( asciiToFloat( glslvs.substr( glslvs.find( "GLSL "+5 ) ).c_str() ) );
|
||||
#endif
|
||||
}
|
||||
else
|
||||
_glslLanguageVersion = 1.0f;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,11 @@ float osg::getGLVersionNumber()
|
||||
if (!versionstring) return 0.0;
|
||||
|
||||
std::string vs( versionstring );
|
||||
return( asciiToFloat( vs.substr( 0, vs.find( " " ) ).c_str() ) );
|
||||
#if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
|
||||
return( asciiToFloat( vs.substr( vs.find( "ES " )+3 ).c_str() ) );
|
||||
#else
|
||||
return( asciiToFloat( vs.substr( vs.find( " " )+1 ).c_str() ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
bool osg::isExtensionInExtensionString(const char *extension, const char *extensionString)
|
||||
@@ -319,8 +323,15 @@ std::string& osg::getGLExtensionDisableString()
|
||||
void* osg::getGLExtensionFuncPtr(const char *funcName)
|
||||
{
|
||||
// OSG_NOTICE<<"osg::getGLExtensionFuncPtr("<<funcName<<")"<<std::endl;
|
||||
#if defined(ANDROID)
|
||||
#if defined(OSG_GLES1_AVAILABLE)
|
||||
static void *handle = dlopen("libGLESv1_CM.so", RTLD_NOW);
|
||||
#elif defined(OSG_GLES2_AVAILABLE)
|
||||
static void *handle = dlopen("libGLESv2.so", RTLD_NOW);
|
||||
#endif
|
||||
return dlsym(handle, funcName);
|
||||
|
||||
#if defined(WIN32)
|
||||
#elif defined(WIN32)
|
||||
|
||||
#if defined(OSG_GLES2_AVAILABLE)
|
||||
static HMODULE hmodule = GetModuleHandle(TEXT("libGLESv2.dll"));
|
||||
|
||||
Reference in New Issue
Block a user