Only in .: CMakeFiles Only in .: cmake_install.cmake diff -crB ./CMakeLists.txt /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/CMakeLists.txt *** ./CMakeLists.txt 2009-05-21 22:59:15.005469254 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/CMakeLists.txt 2009-04-21 22:06:00.000000000 +0100 *************** *** 26,32 **** egShader.cpp egTextures.cpp utImage.cpp ! # utOpenGL.cpp egAnimatables.h egAnimation.h egCamera.h --- 26,32 ---- egShader.cpp egTextures.cpp utImage.cpp ! utOpenGL.cpp egAnimatables.h egAnimation.h egCamera.h *************** *** 50,56 **** egTextures.h utImage.h utTimer.h ! # utOpenGL.h ../Shared/utXMLParser.cpp ${HORDE3D_EXTENSION_SOURCES} --- 50,56 ---- egTextures.h utImage.h utTimer.h ! utOpenGL.h ../Shared/utXMLParser.cpp ${HORDE3D_EXTENSION_SOURCES} *************** *** 68,74 **** endif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") ! target_link_libraries(Horde3D GLEW GL ${HORDE3D_EXTENSION_LIBS} ) install(TARGETS Horde3D RUNTIME DESTINATION bin LIBRARY DESTINATION lib --- 68,74 ---- endif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") ! target_link_libraries(Horde3D GL ${HORDE3D_EXTENSION_LIBS} ) install(TARGETS Horde3D RUNTIME DESTINATION bin LIBRARY DESTINATION lib Only in .: CMakeLists.txt~ diff -crB ./egCamera.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egCamera.cpp *** ./egCamera.cpp 2009-05-21 22:59:15.010345503 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egCamera.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 91,97 **** itr = attribs.find( "orthographic" ); if( itr != attribs.end() ) { ! if ( strcmp( itr->second.c_str(), "true" ) == 0 || strcmp( itr->second.c_str(), "1" ) == 0 ) cameraTpl->orthographic = true; else cameraTpl->orthographic = false; --- 91,97 ---- itr = attribs.find( "orthographic" ); if( itr != attribs.end() ) { ! if ( _stricmp( itr->second.c_str(), "true" ) == 0 || _stricmp( itr->second.c_str(), "1" ) == 0 ) cameraTpl->orthographic = true; else cameraTpl->orthographic = false; *************** *** 99,105 **** itr = attribs.find( "occlusionCulling" ); if( itr != attribs.end() ) { ! if ( strcmp( itr->second.c_str(), "true" ) == 0 || strcmp( itr->second.c_str(), "1" ) == 0 ) cameraTpl->occlusionCulling = true; else cameraTpl->occlusionCulling = false; --- 99,105 ---- itr = attribs.find( "occlusionCulling" ); if( itr != attribs.end() ) { ! if ( _stricmp( itr->second.c_str(), "true" ) == 0 || _stricmp( itr->second.c_str(), "1" ) == 0 ) cameraTpl->occlusionCulling = true; else cameraTpl->occlusionCulling = false; diff -crB ./egMaterial.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egMaterial.cpp *** ./egMaterial.cpp 2009-05-21 22:59:15.019344903 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egMaterial.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 158,169 **** ResHandle texMap; uint32 flags = 0; ! if( strcmp( node1.getAttribute( "allowCompression", "true" ), "false" ) == 0 || ! strcmp( node1.getAttribute( "allowCompression", "1" ), "0" ) == 0 ) flags |= ResourceFlags::NoTexCompression; ! if( strcmp( node1.getAttribute( "mipmaps", "true" ), "false" ) == 0 || ! strcmp( node1.getAttribute( "mipmaps", "1" ), "0" ) == 0 ) flags |= ResourceFlags::NoTexMipmaps; texMap = Modules::resMan().addResource( --- 158,169 ---- ResHandle texMap; uint32 flags = 0; ! if( _stricmp( node1.getAttribute( "allowCompression", "true" ), "false" ) == 0 || ! _stricmp( node1.getAttribute( "allowCompression", "1" ), "0" ) == 0 ) flags |= ResourceFlags::NoTexCompression; ! if( _stricmp( node1.getAttribute( "mipmaps", "true" ), "false" ) == 0 || ! _stricmp( node1.getAttribute( "mipmaps", "1" ), "0" ) == 0 ) flags |= ResourceFlags::NoTexMipmaps; texMap = Modules::resMan().addResource( diff -crB ./egModel.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egModel.cpp *** ./egModel.cpp 2009-05-21 22:59:15.021344878 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egModel.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 76,82 **** itr = attribs.find( "softwareSkinning" ); if( itr != attribs.end() ) { ! if ( strcmp( itr->second.c_str(), "true" ) == 0 || strcmp( itr->second.c_str(), "1" ) == 0 ) modelTpl->softwareSkinning = true; else modelTpl->softwareSkinning = false; --- 76,82 ---- itr = attribs.find( "softwareSkinning" ); if( itr != attribs.end() ) { ! if ( _stricmp( itr->second.c_str(), "true" ) == 0 || _stricmp( itr->second.c_str(), "1" ) == 0 ) modelTpl->softwareSkinning = true; else modelTpl->softwareSkinning = false; diff -crB ./egParticle.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egParticle.cpp *** ./egParticle.cpp 2009-05-21 22:59:15.026344187 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egParticle.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 142,154 **** { if( node1.getAttribute( "channel" ) != 0x0 ) { ! if( strcmp( node1.getAttribute( "channel" ), "moveVel" ) == 0 ) _moveVel.parse( node1 ); ! else if( strcmp( node1.getAttribute( "channel" ), "size" ) == 0 ) _size.parse( node1 ); ! else if( strcmp( node1.getAttribute( "channel" ), "rotVel" ) == 0 ) _rotVel.parse( node1 ); ! else if( strcmp( node1.getAttribute( "channel" ), "colR" ) == 0 ) _colR.parse( node1 ); ! else if( strcmp( node1.getAttribute( "channel" ), "colG" ) == 0 ) _colG.parse( node1 ); ! else if( strcmp( node1.getAttribute( "channel" ), "colB" ) == 0 ) _colB.parse( node1 ); ! else if( strcmp( node1.getAttribute( "channel" ), "colA" ) == 0 ) _colA.parse( node1 ); } else return raiseError( "Missing ChannelOverLife attribute 'channel'" ); --- 142,154 ---- { if( node1.getAttribute( "channel" ) != 0x0 ) { ! if( _stricmp( node1.getAttribute( "channel" ), "moveVel" ) == 0 ) _moveVel.parse( node1 ); ! else if( _stricmp( node1.getAttribute( "channel" ), "size" ) == 0 ) _size.parse( node1 ); ! else if( _stricmp( node1.getAttribute( "channel" ), "rotVel" ) == 0 ) _rotVel.parse( node1 ); ! else if( _stricmp( node1.getAttribute( "channel" ), "colR" ) == 0 ) _colR.parse( node1 ); ! else if( _stricmp( node1.getAttribute( "channel" ), "colG" ) == 0 ) _colG.parse( node1 ); ! else if( _stricmp( node1.getAttribute( "channel" ), "colB" ) == 0 ) _colB.parse( node1 ); ! else if( _stricmp( node1.getAttribute( "channel" ), "colA" ) == 0 ) _colA.parse( node1 ); } else return raiseError( "Missing ChannelOverLife attribute 'channel'" ); diff -crB ./egPipeline.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egPipeline.cpp *** ./egPipeline.cpp 2009-05-21 22:59:15.027344943 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egPipeline.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 95,102 **** { stage.id = node.getAttribute( "id", "" ); ! if( strcmp( node.getAttribute( "enabled", "true" ), "false" ) == 0 || ! strcmp( node.getAttribute( "enabled", "1" ), "0" ) == 0 ) stage.enabled = false; else stage.enabled = true; --- 95,102 ---- { stage.id = node.getAttribute( "id", "" ); ! if( _stricmp( node.getAttribute( "enabled", "true" ), "false" ) == 0 || ! _stricmp( node.getAttribute( "enabled", "1" ), "0" ) == 0 ) stage.enabled = false; else stage.enabled = true; *************** *** 160,183 **** valParams[7] = new PCFloatParam( (float)atof( node1.getAttribute( "col_B", "0" ) ) ); valParams[8] = new PCFloatParam( (float)atof( node1.getAttribute( "col_A", "0" ) ) ); ! if( strcmp( node1.getAttribute( "depthBuf", "false" ), "true" ) == 0 || ! strcmp( node1.getAttribute( "depthBuf", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[0])->set( true ); ! if( strcmp( node1.getAttribute( "colBuf0", "false" ), "true" ) == 0 || ! strcmp( node1.getAttribute( "colBuf0", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[1])->set( true ); ! if( strcmp( node1.getAttribute( "colBuf1", "false" ), "true" ) == 0 || ! strcmp( node1.getAttribute( "colBuf1", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[2])->set( true ); ! if( strcmp( node1.getAttribute( "colBuf2", "false" ), "true" ) == 0 || ! strcmp( node1.getAttribute( "colBuf2", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[3])->set( true ); ! if( strcmp( node1.getAttribute( "colBuf3", "false" ), "true" ) == 0 || ! strcmp( node1.getAttribute( "colBuf3", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[4])->set( true ); } else if( strcmp( node1.getName(), "DrawGeometry" ) == 0 ) --- 160,183 ---- valParams[7] = new PCFloatParam( (float)atof( node1.getAttribute( "col_B", "0" ) ) ); valParams[8] = new PCFloatParam( (float)atof( node1.getAttribute( "col_A", "0" ) ) ); ! if( _stricmp( node1.getAttribute( "depthBuf", "false" ), "true" ) == 0 || ! _stricmp( node1.getAttribute( "depthBuf", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[0])->set( true ); ! if( _stricmp( node1.getAttribute( "colBuf0", "false" ), "true" ) == 0 || ! _stricmp( node1.getAttribute( "colBuf0", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[1])->set( true ); ! if( _stricmp( node1.getAttribute( "colBuf1", "false" ), "true" ) == 0 || ! _stricmp( node1.getAttribute( "colBuf1", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[2])->set( true ); ! if( _stricmp( node1.getAttribute( "colBuf2", "false" ), "true" ) == 0 || ! _stricmp( node1.getAttribute( "colBuf2", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[3])->set( true ); ! if( _stricmp( node1.getAttribute( "colBuf3", "false" ), "true" ) == 0 || ! _stricmp( node1.getAttribute( "colBuf3", "0" ), "1" ) == 0 ) ((PCBoolParam *)valParams[4])->set( true ); } else if( strcmp( node1.getName(), "DrawGeometry" ) == 0 ) *************** *** 216,222 **** stage.commands.back().valParams.push_back( new PCStringParam( node1.getAttribute( "context", "" ) ) ); stage.commands.back().valParams.push_back( new PCStringParam( node1.getAttribute( "class", "" ) ) ); stage.commands.back().valParams.push_back( new PCBoolParam( ! strcmp( node1.getAttribute( "noShadows", "false" ), "true" ) == 0 ) ); string orderString = node1.getAttribute( "order", "" ); int order = RenderingOrder::None; --- 216,222 ---- stage.commands.back().valParams.push_back( new PCStringParam( node1.getAttribute( "context", "" ) ) ); stage.commands.back().valParams.push_back( new PCStringParam( node1.getAttribute( "class", "" ) ) ); stage.commands.back().valParams.push_back( new PCBoolParam( ! _stricmp( node1.getAttribute( "noShadows", "false" ), "true" ) == 0 ) ); string orderString = node1.getAttribute( "order", "" ); int order = RenderingOrder::None; *************** *** 230,236 **** stage.commands.push_back( PipelineCommand( PipelineCommands::DoDeferredLightLoop ) ); stage.commands.back().valParams.push_back( new PCStringParam( node1.getAttribute( "context", "" ) ) ); stage.commands.back().valParams.push_back( new PCBoolParam( ! strcmp( node1.getAttribute( "noShadows", "false" ), "true" ) == 0 ) ); } else if( strcmp( node1.getName(), "SetUniform" ) == 0 ) { --- 230,236 ---- stage.commands.push_back( PipelineCommand( PipelineCommands::DoDeferredLightLoop ) ); stage.commands.back().valParams.push_back( new PCStringParam( node1.getAttribute( "context", "" ) ) ); stage.commands.back().valParams.push_back( new PCBoolParam( ! _stricmp( node1.getAttribute( "noShadows", "false" ), "true" ) == 0 ) ); } else if( strcmp( node1.getName(), "SetUniform" ) == 0 ) { *************** *** 360,366 **** if( node2.getAttribute( "depthBuf" ) == 0x0 ) return raiseError( "Missing RenderTarget attribute 'depthBuf'" ); bool depth = false; ! if( strcmp( node2.getAttribute( "depthBuf" ), "true" ) == 0 ) depth = true; if( node2.getAttribute( "numColBufs" ) == 0x0 ) return raiseError( "Missing RenderTarget attribute 'numColBufs'" ); uint32 numBuffers = atoi( node2.getAttribute( "numColBufs" ) ); --- 360,366 ---- if( node2.getAttribute( "depthBuf" ) == 0x0 ) return raiseError( "Missing RenderTarget attribute 'depthBuf'" ); bool depth = false; ! if( _stricmp( node2.getAttribute( "depthBuf" ), "true" ) == 0 ) depth = true; if( node2.getAttribute( "numColBufs" ) == 0x0 ) return raiseError( "Missing RenderTarget attribute 'numColBufs'" ); uint32 numBuffers = atoi( node2.getAttribute( "numColBufs" ) ); *************** *** 368,378 **** RenderBufferFormats::List format = RenderBufferFormats::RGBA8; if( node2.getAttribute( "format" ) != 0x0 ) { ! if( strcmp( node2.getAttribute( "format" ), "RGBA8" ) == 0 ) format = RenderBufferFormats::RGBA8; ! else if( strcmp( node2.getAttribute( "format" ), "RGBA16F" ) == 0 ) format = RenderBufferFormats::RGBA16F; ! else if( strcmp( node2.getAttribute( "format" ), "RGBA32F" ) == 0 ) format = RenderBufferFormats::RGBA32F; else return raiseError( "Unknown RenderTarget format" ); } --- 368,378 ---- RenderBufferFormats::List format = RenderBufferFormats::RGBA8; if( node2.getAttribute( "format" ) != 0x0 ) { ! if( _stricmp( node2.getAttribute( "format" ), "RGBA8" ) == 0 ) format = RenderBufferFormats::RGBA8; ! else if( _stricmp( node2.getAttribute( "format" ), "RGBA16F" ) == 0 ) format = RenderBufferFormats::RGBA16F; ! else if( _stricmp( node2.getAttribute( "format" ), "RGBA32F" ) == 0 ) format = RenderBufferFormats::RGBA32F; else return raiseError( "Unknown RenderTarget format" ); } diff -crB ./egRendererBase.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egRendererBase.cpp *** ./egRendererBase.cpp 2009-05-21 22:59:15.028342696 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egRendererBase.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 22,31 **** // // ************************************************************************************************* - #include #include "egRendererBase.h" #include "egModules.h" ! //#include "utOpenGL.h" #include "utDebug.h" --- 22,30 ---- // // ************************************************************************************************* #include "egRendererBase.h" #include "egModules.h" ! #include "utOpenGL.h" #include "utDebug.h" *************** *** 43,61 **** bool RendererBase::init() { ! GLenum err = glewInit(); ! if (GLEW_OK != err) ! { ! /* Problem: glewInit failed, something is seriously wrong. */ ! fprintf(stderr, "Error: %s\n", glewGetErrorString(err)); ! Modules::log().writeWarning( "Glew error" ); ! return false; ! } ! fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION)); ! Modules::log().writeWarning( "Glew ok" ); ! return true; ! ! //return initOpenGLExtensions(); } --- 43,49 ---- bool RendererBase::init() { ! return initOpenGLExtensions(); } *************** *** 329,336 **** int status; _shaderLog = ""; - - //printf("loading shaders: vertex( %s ) fragment ( %s )\n",vertexShader,fragmentShader); // Vertex shader uint32 vs = glCreateShader( GL_VERTEX_SHADER ); --- 317,322 ---- *************** *** 448,455 **** uint32 numColBufs, uint32 samples ) { if( (format == RenderBufferFormats::RGBA16F || format == RenderBufferFormats::RGBA32F) && ! !GLEW_ARB_texture_float ) ! //!GLEW_ARB_texture_float ) { return RenderBuffer(); } --- 434,440 ---- uint32 numColBufs, uint32 samples ) { if( (format == RenderBufferFormats::RGBA16F || format == RenderBufferFormats::RGBA32F) && ! !glExt::ARB_texture_float ) { return RenderBuffer(); } *************** *** 457,464 **** if( numColBufs > RenderBuffer::MaxColorAttachmentCount ) return RenderBuffer(); uint32 maxSamples = 0; ! if( GLEW_EXT_framebuffer_multisample ) ! //if( GLEW_EXT_framebuffer_multisample ) { GLint value; glGetIntegerv( GL_MAX_SAMPLES_EXT, &value ); --- 442,448 ---- if( numColBufs > RenderBuffer::MaxColorAttachmentCount ) return RenderBuffer(); uint32 maxSamples = 0; ! if( glExt::EXT_framebuffer_multisample ) { GLint value; glGetIntegerv( GL_MAX_SAMPLES_EXT, &value ); Only in .: egRendererBase.cpp~ diff -crB ./egRenderer.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egRenderer.cpp *** ./egRenderer.cpp 2009-05-21 23:15:26.801471159 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egRenderer.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 21,30 **** // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // // ************************************************************************************************* - #include #include "egRenderer.h" ! //#include "utOpenGL.h" #include "egModules.h" #include "egGeometry.h" #include "egModel.h" --- 21,29 ---- // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA // // ************************************************************************************************* #include "egRenderer.h" ! #include "utOpenGL.h" #include "egModules.h" #include "egGeometry.h" #include "egModel.h" *************** *** 125,162 **** version, vendor, renderer ); // Check that OpenGL 2.0 is available ! if (!glewIsSupported("GL_VERSION_2_0")) ! //if( GLEW_majorVersion < 2 || GLEW_minorVersion < 0 ) { Modules::log().writeError( "OpenGL 2.0 not supported" ); failed = true; } // Check extensions ! if( !GLEW_EXT_framebuffer_object ) { Modules::log().writeError( "Extension EXT_framebuffer_object not supported" ); failed = true; } ! if( !GLEW_EXT_texture_filter_anisotropic ) { Modules::log().writeError( "Extension EXT_texture_filter_anisotropic not supported" ); failed = true; } ! if( !GLEW_EXT_texture_compression_s3tc ) { Modules::log().writeError( "Extension EXT_texture_compression_s3tc not supported" ); failed = true; } ! if( !GLEW_ARB_texture_float ) { Modules::log().writeWarning( "Extension ARB_texture_float not supported" ); } ! if( !GLEW_ARB_texture_non_power_of_two ) { Modules::log().writeWarning( "Extension ARB_texture_non_power_of_two not supported" ); } ! if( !GLEW_EXT_framebuffer_multisample ) { Modules::log().writeWarning( "Extension EXT_framebuffer_multisample and/or EXT_framebuffer_blit not supported" ); } --- 124,160 ---- version, vendor, renderer ); // Check that OpenGL 2.0 is available ! if( glExt::majorVersion < 2 || glExt::minorVersion < 0 ) { Modules::log().writeError( "OpenGL 2.0 not supported" ); failed = true; } // Check extensions ! if( !glExt::EXT_framebuffer_object ) { Modules::log().writeError( "Extension EXT_framebuffer_object not supported" ); failed = true; } ! if( !glExt::EXT_texture_filter_anisotropic ) { Modules::log().writeError( "Extension EXT_texture_filter_anisotropic not supported" ); failed = true; } ! if( !glExt::EXT_texture_compression_s3tc ) { Modules::log().writeError( "Extension EXT_texture_compression_s3tc not supported" ); failed = true; } ! if( !glExt::ARB_texture_float ) { Modules::log().writeWarning( "Extension ARB_texture_float not supported" ); } ! if( !glExt::ARB_texture_non_power_of_two ) { Modules::log().writeWarning( "Extension ARB_texture_non_power_of_two not supported" ); } ! if( !glExt::EXT_framebuffer_multisample ) { Modules::log().writeWarning( "Extension EXT_framebuffer_multisample and/or EXT_framebuffer_blit not supported" ); } Only in .: egRenderer.cpp~ diff -crB ./egShader.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egShader.cpp *** ./egShader.cpp 2009-05-21 22:59:15.034342761 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/egShader.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 389,436 **** if( !node2.isEmpty() ) { // Depth mask ! if( strcmp( node2.getAttribute( "writeDepth", "true" ), "false" ) == 0 || ! strcmp( node2.getAttribute( "writeDepth", "1" ), "0" ) == 0 ) context.writeDepth = false; else context.writeDepth = true; // Blending ! if( strcmp( node2.getAttribute( "blendMode", "REPLACE" ), "BLEND" ) == 0 ) context.blendMode = BlendModes::Blend; ! else if( strcmp( node2.getAttribute( "blendMode", "REPLACE" ), "ADD" ) == 0 ) context.blendMode = BlendModes::Add; ! else if( strcmp( node2.getAttribute( "blendMode", "REPLACE" ), "ADD_BLENDED" ) == 0 ) context.blendMode = BlendModes::AddBlended; ! else if( strcmp( node2.getAttribute( "blendMode", "REPLACE" ), "MULT" ) == 0 ) context.blendMode = BlendModes::Mult; else context.blendMode = BlendModes::Replace; // Depth test ! if( strcmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "ALWAYS" ) == 0 ) context.depthTest = TestModes::Always; ! else if( strcmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "EQUAL" ) == 0 ) context.depthTest = TestModes::Equal; ! else if( strcmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "LESS" ) == 0 ) context.depthTest = TestModes::Less; ! else if( strcmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "GREATER" ) == 0 ) context.depthTest = TestModes::Greater; ! else if( strcmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "GREATER_EQUAL" ) == 0 ) context.depthTest = TestModes::GreaterEqual; else context.depthTest = TestModes::LessEqual; // Alpha test ! if( strcmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "EQUAL" ) == 0 ) context.alphaTest = TestModes::Equal; ! else if( strcmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "LESS" ) == 0 ) context.alphaTest = TestModes::Less; ! else if( strcmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "LESS_EQUAL" ) == 0 ) context.alphaTest = TestModes::LessEqual; ! else if( strcmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "GREATER" ) == 0 ) context.alphaTest = TestModes::Greater; ! else if( strcmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "GREATER_EQUAL" ) == 0 ) context.alphaTest = TestModes::GreaterEqual; else context.alphaTest = TestModes::Always; --- 389,436 ---- if( !node2.isEmpty() ) { // Depth mask ! if( _stricmp( node2.getAttribute( "writeDepth", "true" ), "false" ) == 0 || ! _stricmp( node2.getAttribute( "writeDepth", "1" ), "0" ) == 0 ) context.writeDepth = false; else context.writeDepth = true; // Blending ! if( _stricmp( node2.getAttribute( "blendMode", "REPLACE" ), "BLEND" ) == 0 ) context.blendMode = BlendModes::Blend; ! else if( _stricmp( node2.getAttribute( "blendMode", "REPLACE" ), "ADD" ) == 0 ) context.blendMode = BlendModes::Add; ! else if( _stricmp( node2.getAttribute( "blendMode", "REPLACE" ), "ADD_BLENDED" ) == 0 ) context.blendMode = BlendModes::AddBlended; ! else if( _stricmp( node2.getAttribute( "blendMode", "REPLACE" ), "MULT" ) == 0 ) context.blendMode = BlendModes::Mult; else context.blendMode = BlendModes::Replace; // Depth test ! if( _stricmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "ALWAYS" ) == 0 ) context.depthTest = TestModes::Always; ! else if( _stricmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "EQUAL" ) == 0 ) context.depthTest = TestModes::Equal; ! else if( _stricmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "LESS" ) == 0 ) context.depthTest = TestModes::Less; ! else if( _stricmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "GREATER" ) == 0 ) context.depthTest = TestModes::Greater; ! else if( _stricmp( node2.getAttribute( "depthTest", "LESS_EQUAL" ), "GREATER_EQUAL" ) == 0 ) context.depthTest = TestModes::GreaterEqual; else context.depthTest = TestModes::LessEqual; // Alpha test ! if( _stricmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "EQUAL" ) == 0 ) context.alphaTest = TestModes::Equal; ! else if( _stricmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "LESS" ) == 0 ) context.alphaTest = TestModes::Less; ! else if( _stricmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "LESS_EQUAL" ) == 0 ) context.alphaTest = TestModes::LessEqual; ! else if( _stricmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "GREATER" ) == 0 ) context.alphaTest = TestModes::Greater; ! else if( _stricmp( node2.getAttribute( "alphaTest", "ALWAYS" ), "GREATER_EQUAL" ) == 0 ) context.alphaTest = TestModes::GreaterEqual; else context.alphaTest = TestModes::Always; *************** *** 438,445 **** context.alphaRef = (float)atof( node2.getAttribute( "alphaRef", "0" ) ); // Alpha-to-coverage ! if( strcmp( node2.getAttribute( "alphaToCoverage", "false" ), "true" ) == 0 || ! strcmp( node2.getAttribute( "alphaToCoverage", "0" ), "1" ) == 0 ) context.alphaToCoverage = true; else context.alphaToCoverage = false; --- 438,445 ---- context.alphaRef = (float)atof( node2.getAttribute( "alphaRef", "0" ) ); // Alpha-to-coverage ! if( _stricmp( node2.getAttribute( "alphaToCoverage", "false" ), "true" ) == 0 || ! _stricmp( node2.getAttribute( "alphaToCoverage", "0" ), "1" ) == 0 ) context.alphaToCoverage = true; else context.alphaToCoverage = false; *************** *** 489,503 **** if( !node2.isEmpty() ) { // Address mode ! if( strcmp( node2.getAttribute( "addressMode", "WRAP" ), "CLAMP" ) == 0 ) sampler.addressMode = TexAddressModes::Clamp; else sampler.addressMode = TexAddressModes::Wrap; // Filtering ! if( strcmp( node2.getAttribute( "filtering", "TRILINEAR" ), "NONE" ) == 0 ) sampler.filterMode = TexFilterModes::None; ! else if( strcmp( node2.getAttribute( "filtering", "TRILINEAR" ), "BILINEAR" ) == 0 ) sampler.filterMode = TexFilterModes::Bilinear; else sampler.filterMode = TexFilterModes::Trilinear; --- 489,503 ---- if( !node2.isEmpty() ) { // Address mode ! if( _stricmp( node2.getAttribute( "addressMode", "WRAP" ), "CLAMP" ) == 0 ) sampler.addressMode = TexAddressModes::Clamp; else sampler.addressMode = TexAddressModes::Wrap; // Filtering ! if( _stricmp( node2.getAttribute( "filtering", "TRILINEAR" ), "NONE" ) == 0 ) sampler.filterMode = TexFilterModes::None; ! else if( _stricmp( node2.getAttribute( "filtering", "TRILINEAR" ), "BILINEAR" ) == 0 ) sampler.filterMode = TexFilterModes::Bilinear; else sampler.filterMode = TexFilterModes::Trilinear; Only in .: glew.patch Only in /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine: Horde3D Engine_2008.vcproj Only in /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine: Horde3D Engine.vcproj Only in .: Makefile Only in /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine: .svn diff -crB ./utOpenGL.cpp /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/utOpenGL.cpp *** ./utOpenGL.cpp 2009-05-21 22:59:15.039364420 +0100 --- /home/smogzer/Projects/svn/Horde3D/Horde3D/Source/Horde3DEngine/utOpenGL.cpp 2009-04-02 00:49:09.000000000 +0100 *************** *** 360,367 **** if( pos2 == string::npos ) pos2 = version.find( " ", pos1 + 1 ); if( pos2 == string::npos ) pos2 = version.length(); ! GLEW_majorVersion = atoi( version.substr( 0, pos1 ).c_str() ); ! GLEW_minorVersion = atoi( version.substr( pos1 + 1, pos2 ).c_str() ); } --- 360,367 ---- if( pos2 == string::npos ) pos2 = version.find( " ", pos1 + 1 ); if( pos2 == string::npos ) pos2 = version.length(); ! glExt::majorVersion = atoi( version.substr( 0, pos1 ).c_str() ); ! glExt::minorVersion = atoi( version.substr( pos1 + 1, pos2 ).c_str() ); } *************** *** 659,666 **** r &= (glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) platGetProcAddress( "glUniformMatrix4x3fv" )) != 0x0;*/ // Extensions ! GLEW_EXT_framebuffer_object = isExtensionSupported( "GL_EXT_framebuffer_object" ); ! if( GLEW_EXT_framebuffer_object ) { r &= (glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC) platGetProcAddress( "glIsRenderbufferEXT" )) != 0x0; r &= (glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC) platGetProcAddress( "glBindRenderbufferEXT" )) != 0x0; --- 659,666 ---- r &= (glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) platGetProcAddress( "glUniformMatrix4x3fv" )) != 0x0;*/ // Extensions ! glExt::EXT_framebuffer_object = isExtensionSupported( "GL_EXT_framebuffer_object" ); ! if( glExt::EXT_framebuffer_object ) { r &= (glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC) platGetProcAddress( "glIsRenderbufferEXT" )) != 0x0; r &= (glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC) platGetProcAddress( "glBindRenderbufferEXT" )) != 0x0; *************** *** 681,698 **** r &= (glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC) platGetProcAddress( "glGenerateMipmapEXT" )) != 0x0; } ! GLEW_EXT_texture_filter_anisotropic = isExtensionSupported( "GL_EXT_texture_filter_anisotropic" ); ! GLEW_EXT_texture_compression_s3tc = isExtensionSupported( "GL_EXT_texture_compression_s3tc" ); ! GLEW_ARB_texture_float = isExtensionSupported( "GL_ARB_texture_float" ) || isExtensionSupported( "GL_ATI_texture_float" ); ! GLEW_ARB_texture_non_power_of_two = isExtensionSupported( "GL_ARB_texture_non_power_of_two" ); ! GLEW_EXT_framebuffer_multisample = isExtensionSupported( "GL_EXT_framebuffer_multisample" ) && isExtensionSupported( "GL_EXT_framebuffer_blit" ); ! if( GLEW_EXT_framebuffer_multisample ) { // From GL_EXT_framebuffer_blit r &= (glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC) platGetProcAddress( "glBlitFramebufferEXT" )) != 0x0; --- 681,698 ---- r &= (glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC) platGetProcAddress( "glGenerateMipmapEXT" )) != 0x0; } ! glExt::EXT_texture_filter_anisotropic = isExtensionSupported( "GL_EXT_texture_filter_anisotropic" ); ! glExt::EXT_texture_compression_s3tc = isExtensionSupported( "GL_EXT_texture_compression_s3tc" ); ! glExt::ARB_texture_float = isExtensionSupported( "GL_ARB_texture_float" ) || isExtensionSupported( "GL_ATI_texture_float" ); ! glExt::ARB_texture_non_power_of_two = isExtensionSupported( "GL_ARB_texture_non_power_of_two" ); ! glExt::EXT_framebuffer_multisample = isExtensionSupported( "GL_EXT_framebuffer_multisample" ) && isExtensionSupported( "GL_EXT_framebuffer_blit" ); ! if( glExt::EXT_framebuffer_multisample ) { // From GL_EXT_framebuffer_blit r &= (glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC) platGetProcAddress( "glBlitFramebufferEXT" )) != 0x0;