Commits

Steve Streeting committed a4d508f Merge

Merge v1-8 into default

Comments (0)

Files changed (102)

CMake/Dependencies.cmake

 macro_log_feature(FREETYPE_FOUND "freetype" "Portable font engine" "http://www.freetype.org" TRUE "" "")
 
 # Find X11
-if (UNIX AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS)
+if (UNIX AND NOT APPLE)
   find_package(X11)
   macro_log_feature(X11_FOUND "X11" "X Window system" "http://www.x.org" TRUE "" "")
   macro_log_feature(X11_Xt_FOUND "Xt" "X Toolkit" "http://www.x.org" TRUE "" "")

CMake/Packages/FindFreeImage.cmake

 
 find_path(FreeImage_INCLUDE_DIR NAMES FreeImage.h HINTS ${FreeImage_INC_SEARCH_PATH} ${FreeImage_PKGC_INCLUDE_DIRS})
 
-if (SYMBIAN) 
-set(ORIGINAL_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
-set(CMAKE_PREFIX_PATH ${CMAKE_SYSYEM_OUT_DIR})
-message(STATUS "Lib will be searched in Symbian out dir: ${CMAKE_SYSYEM_OUT_DIR}")
-endif (SYMBIAN)
 find_library(FreeImage_LIBRARY_REL NAMES ${FreeImage_LIBRARY_NAMES} HINTS ${FreeImage_LIB_SEARCH_PATH} ${FreeImage_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
 find_library(FreeImage_LIBRARY_DBG NAMES ${FreeImage_LIBRARY_NAMES_DBG} HINTS ${FreeImage_LIB_SEARCH_PATH} ${FreeImage_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
-if (SYMBIAN) 
-set(FreeImage_LIBRARY_REL "${FreeImage_LIBRARY_REL} LibJPEG.lib LibOpenJPEG.lib LibPNG.lib ZLib-freeImage.lib")
-set(CMAKE_PREFIX_PATH ${ORIGINAL_CMAKE_PREFIX_PATH})
-endif (SYMBIAN)
 
 make_library_set(FreeImage_LIBRARY)
 

CMake/Packages/FindFreetype.cmake

 find_path(FREETYPE_INCLUDE_DIR NAMES freetype/freetype.h HINTS ${FREETYPE_INC_SEARCH_PATH} ${FREETYPE_PKGC_INCLUDE_DIRS} PATH_SUFFIXES freetype2)
 find_path(FREETYPE_FT2BUILD_INCLUDE_DIR NAMES ft2build.h HINTS ${FREETYPE_INC_SEARCH_PATH} ${FREETYPE_PKGC_INCLUDE_DIRS})
 
-if (SYMBIAN) 
-set(ORIGINAL_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
-set(CMAKE_PREFIX_PATH ${CMAKE_SYSYEM_OUT_DIR})
-message(STATUS "Lib will be searched in Symbian out dir: ${CMAKE_SYSYEM_OUT_DIR}")
-endif (SYMBIAN)
 find_library(FREETYPE_LIBRARY_REL NAMES ${FREETYPE_LIBRARY_NAMES} HINTS ${FREETYPE_LIB_SEARCH_PATH} ${FREETYPE_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
 find_library(FREETYPE_LIBRARY_DBG NAMES ${FREETYPE_LIBRARY_NAMES_DBG} HINTS ${FREETYPE_LIB_SEARCH_PATH} ${FREETYPE_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
-if (SYMBIAN) 
-set(CMAKE_PREFIX_PATH ${ORIGINAL_CMAKE_PREFIX_PATH})
-endif (SYMBIAN)
 
 make_library_set(FREETYPE_LIBRARY)
 

CMake/Packages/FindOIS.cmake

   set(OIS_LIB_SEARCH_PATH ${OIS_LIB_SEARCH_PATH} ${OIS_HOME}/Mac/XCode-2.2/build)
 endif()
 find_path(OIS_INCLUDE_DIR NAMES OIS.h HINTS ${OIS_INC_SEARCH_PATH} ${OIS_PKGC_INCLUDE_DIRS} PATH_SUFFIXES OIS)
-if (SYMBIAN) 
-set(ORIGINAL_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
-set(CMAKE_PREFIX_PATH ${CMAKE_SYSYEM_OUT_DIR})
-message(STATUS "Lib will be searched in Symbian out dir: ${CMAKE_SYSYEM_OUT_DIR}")
-endif (SYMBIAN)
 find_library(OIS_LIBRARY_REL NAMES ${OIS_LIBRARY_NAMES} HINTS ${OIS_LIB_SEARCH_PATH} ${OIS_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
 find_library(OIS_LIBRARY_DBG NAMES ${OIS_LIBRARY_NAMES_DBG} HINTS ${OIS_LIB_SEARCH_PATH} ${OIS_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
-if (SYMBIAN) 
-set(OIS_LIBRARY_REL "${FreeImage_LIBRARY_REL} ois.lib touchfeedback.lib")
-set(CMAKE_PREFIX_PATH ${ORIGINAL_CMAKE_PREFIX_PATH})
-endif (SYMBIAN)
 
 make_library_set(OIS_LIBRARY)
 

CMake/Packages/FindOpenGLES.cmake

   OPENGLES_INCLUDE_DIR
   OPENGLES_gl_LIBRARY
 )
-
-
-if(SYMBIAN)
-  SET( OPENGLES_FOUND "YES" )
-  set(ORIGINAL_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
-  set(CMAKE_PREFIX_PATH ${CMAKE_SYSYEM_OUT_DIR})
-  FIND_LIBRARY(OPENGLES_gl_LIBRARY libgles_cm )
-  set(CMAKE_PREFIX_PATH ${ORIGINAL_CMAKE_PREFIX_PATH})
-endif()

CMake/Packages/FindZLIB.cmake

 findpkg_framework(ZLIB)
 
 find_path(ZLIB_INCLUDE_DIR NAMES zlib.h HINTS ${ZLIB_INC_SEARCH_PATH} ${ZLIB_PKGC_INCLUDE_DIRS})
-if (SYMBIAN) 
-set(ORIGINAL_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
-set(CMAKE_PREFIX_PATH ${CMAKE_SYSYEM_OUT_DIR})
-message(STATUS "Lib will be searched in Symbian out dir: ${CMAKE_SYSYEM_OUT_DIR}")
-endif (SYMBIAN)
 find_library(ZLIB_LIBRARY_REL NAMES ${ZLIB_LIBRARY_NAMES} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
 find_library(ZLIB_LIBRARY_DBG NAMES ${ZLIB_LIBRARY_NAMES_DBG} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
-if (SYMBIAN) 
-set(CMAKE_PREFIX_PATH ${ORIGINAL_CMAKE_PREFIX_PATH})
-endif (SYMBIAN)
 
 make_library_set(ZLIB_LIBRARY)
 

CMake/Packages/FindZZip.cmake

 
 find_path(ZZip_INCLUDE_DIR NAMES zzip/zzip.h HINTS ${ZZip_INC_SEARCH_PATH} ${ZZip_PKGC_INCLUDE_DIRS})
 
-if (SYMBIAN) 
-set(ORIGINAL_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
-set(CMAKE_PREFIX_PATH ${CMAKE_SYSYEM_OUT_DIR})
-message(STATUS "Lib will be searched in Symbian out dir: ${CMAKE_SYSYEM_OUT_DIR}")
-endif (SYMBIAN)
 find_library(ZZip_LIBRARY_REL NAMES ${ZZip_LIBRARY_NAMES} HINTS ${ZZip_LIB_SEARCH_PATH} ${ZZip_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
 find_library(ZZip_LIBRARY_DBG NAMES ${ZZip_LIBRARY_NAMES_DBG} HINTS ${ZZip_LIB_SEARCH_PATH} ${ZZip_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
-if (SYMBIAN) 
-set(CMAKE_PREFIX_PATH ${ORIGINAL_CMAKE_PREFIX_PATH})
-endif (SYMBIAN)
 
 make_library_set(ZZip_LIBRARY)
 

CMake/Packaging.cmake

 set(CPACK_PACKAGE_NAME "OGRE")
 set(CPACK_PACKAGE_VENDOR "Torus Knot Software")
 
-set(CPACK_RESOURCE_FILE_LICENSE "${OGRE_SOURCE_DIR}/COPYING")
+# CPack won't allow file without recognized extension to be used as
+# license file.
+configure_file("${OGRE_SOURCE_DIR}/COPYING" "${OGRE_BINARY_DIR}/COPYING.txt" COPYONLY)
+set(CPACK_RESOURCE_FILE_LICENSE "${OGRE_BINARY_DIR}/COPYING.txt")
+
 #set(CPACK_PACKAGE_ICON "${OGRE_SOURCE_DIR}\\\\ogrelogo.gif")
 
 set(CPACK_PACKAGE_CONTACT "OGRE Team <sinbad@ogre3d.org>")

CMake/Utils/FindPkgMacros.cmake

 
 
 # Slightly customised framework finder
-MACRO(findpkg_framework fwk)
-  IF(APPLE)
-    SET(${fwk}_FRAMEWORK_PATH
+macro(findpkg_framework fwk)
+  if(APPLE)
+    set(${fwk}_FRAMEWORK_PATH
       ${${fwk}_FRAMEWORK_SEARCH_PATH}
       ${CMAKE_FRAMEWORK_PATH}
       ~/Library/Frameworks
       /Library/Frameworks
       /System/Library/Frameworks
       /Network/Library/Frameworks
-      /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/
       ${CMAKE_CURRENT_SOURCE_DIR}/lib/Release
       ${CMAKE_CURRENT_SOURCE_DIR}/lib/Debug
     )
       set(${fwk}_FRAMEWORK_PATH ${${fwk}_FRAMEWORK_PATH} ${i}/lib/Release ${i}/lib/Debug)
     endforeach(i)
 
-    FOREACH(dir ${${fwk}_FRAMEWORK_PATH})
-      SET(fwkpath ${dir}/${fwk}.framework)
-      IF(EXISTS ${fwkpath})
-        SET(${fwk}_FRAMEWORK_INCLUDES ${${fwk}_FRAMEWORK_INCLUDES}
+    foreach(dir ${${fwk}_FRAMEWORK_PATH})
+      set(fwkpath ${dir}/${fwk}.framework)
+      if(EXISTS ${fwkpath})
+        set(${fwk}_FRAMEWORK_INCLUDES ${${fwk}_FRAMEWORK_INCLUDES}
           ${fwkpath}/Headers ${fwkpath}/PrivateHeaders)
-        SET(${fwk}_FRAMEWORK_PATH ${dir})
+        set(${fwk}_FRAMEWORK_PATH ${dir})
         if (NOT ${fwk}_LIBRARY_FWK)
-          SET(${fwk}_LIBRARY_FWK "-framework ${fwk}")
+          set(${fwk}_LIBRARY_FWK "-framework ${fwk}")
         endif ()
-      ENDIF(EXISTS ${fwkpath})
-    ENDFOREACH(dir)
-  ENDIF(APPLE)
-ENDMACRO(findpkg_framework)
+      endif(EXISTS ${fwkpath})
+    endforeach(dir)
+  endif(APPLE)
+endmacro(findpkg_framework)

CMake/Utils/OgreConfigTargets.cmake

     set(OGRE_PLUGIN_PATH "/OGRE")
   endif(APPLE)
   set(OGRE_SAMPLE_PATH "/OGRE/Samples")
-elseif (SYMBIAN)
-  set(OGRE_RELEASE_PATH ".")
-  set(OGRE_RELWDBG_PATH ".")
-  set(OGRE_MINSIZE_PATH ".")
-  set(OGRE_DEBUG_PATH ".")
-  set(OGRE_LIB_RELEASE_PATH ".")
-  set(OGRE_LIB_RELWDBG_PATH ".")
-  set(OGRE_LIB_MINSIZE_PATH ".")
-  set(OGRE_LIB_DEBUG_PATH ".")
-  set(OGRE_PLUGIN_PATH ".")
-  set(OGRE_SAMPLE_PATH ".")
 endif ()
 
 # create vcproj.user file for Visual Studio to set debug working directory
       # add GCC visibility flags to shared library build
       set_target_properties(${LIBNAME} PROPERTIES COMPILE_FLAGS "${OGRE_GCC_VISIBILITY_FLAGS}")
       set_target_properties(${LIBNAME} PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "${XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN}")
-      set_target_properties(${LIBNAME} PROPERTIES XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN "${XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN}")
+      set_target_properties(${LIBNAME} PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
+      set_target_properties(${LIBNAME} PROPERTIES XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN[arch=x86_64] "YES")
     endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
 	if (MINGW)
 	  # remove lib prefix from DLL outputs
       # add GCC visibility flags to shared library build
       set_target_properties(${PLUGINNAME} PROPERTIES COMPILE_FLAGS "${OGRE_GCC_VISIBILITY_FLAGS}")
       set_target_properties(${PLUGINNAME} PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "${XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN}")
-      set_target_properties(${PLUGINNAME} PROPERTIES XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN "${XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN}")
+      set_target_properties(${PLUGINNAME} PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
+      set_target_properties(${PLUGINNAME} PROPERTIES XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN[arch=x86_64] "YES")
       # disable "lib" prefix on Unix
       set_target_properties(${PLUGINNAME} PROPERTIES PREFIX "")
     endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
       # add GCC visibility flags to shared library build
       set_target_properties(${SAMPLENAME} PROPERTIES COMPILE_FLAGS "${OGRE_GCC_VISIBILITY_FLAGS}")
       set_target_properties(${SAMPLENAME} PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "${XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN}")
-      set_target_properties(${SAMPLENAME} PROPERTIES XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN "${XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN}")
+      set_target_properties(${SAMPLENAME} PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
+      set_target_properties(${SAMPLENAME} PROPERTIES XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN[arch=x86_64] "YES")
       # disable "lib" prefix on Unix
       set_target_properties(${SAMPLENAME} PROPERTIES PREFIX "")
     endif (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
     if (OGRE_BUILD_TYPE STREQUAL "debug" AND OGRE_GCC_VERSION VERSION_LESS "4.2")
       message(STATUS "Skipping -fvisibility-inlines-hidden due to possible bug in g++ < 4.2")
     else ()
-      set(OGRE_GCC_VISIBILITY_FLAGS "${OGRE_GCC_VISIBILITY_FLAGS} -fvisibility-inlines-hidden")
-      set(XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN "YES")
+      if (APPLE AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS)
+        message(STATUS "Skipping -fvisibility-inlines-hidden due to linker issues")
+        set(XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN[arch=x86_64] "YES")
+      else()
+        set(OGRE_GCC_VISIBILITY_FLAGS "${OGRE_GCC_VISIBILITY_FLAGS} -fvisibility-inlines-hidden")
+        set(XCODE_ATTRIBUTE_GCC_INLINES_ARE_PRIVATE_EXTERN "YES")
+      endif()
     endif ()
   endif (OGRE_GCC_VISIBILITY)
   
   set(OGRE_BUILD_RENDERSYSTEM_GL TRUE)
   set(OGRE_BUILD_RENDERSYSTEM_GLES FALSE)
   set(OGRE_BUILD_RENDERSYSTEM_GLES2 FALSE)
-elseif (SYMBIAN)  
-  set(OGRE_BUILD_RENDERSYSTEM_GLES TRUE CACHE BOOL "Forcing OpenGL ES 1.x RenderSystem for Symbian" FORCE)  
 endif ()
 
 # Enable the PVRTC codec if OpenGL ES is being built
 ######################################################################
 
 # Customise what to build
-cmake_dependent_option(OGRE_STATIC "Static build" FALSE "NOT SYMBIAN" TRUE)
+cmake_dependent_option(OGRE_STATIC "Static build" FALSE "" TRUE)
 cmake_dependent_option(OGRE_BUILD_RENDERSYSTEM_D3D9 "Build Direct3D9 RenderSystem" TRUE "WIN32;DirectX_FOUND" FALSE)
 cmake_dependent_option(OGRE_BUILD_RENDERSYSTEM_D3D11 "Build Direct3D11 RenderSystem [EXPERIMENTAL]" FALSE "WIN32;DirectX_D3D11_FOUND" FALSE)
-cmake_dependent_option(OGRE_BUILD_RENDERSYSTEM_GL "Build OpenGL RenderSystem" TRUE "OPENGL_FOUND;NOT OGRE_BUILD_PLATFORM_APPLE_IOS;NOT SYMBIAN" FALSE)
+cmake_dependent_option(OGRE_BUILD_RENDERSYSTEM_GL "Build OpenGL RenderSystem" TRUE "OPENGL_FOUND;NOT OGRE_BUILD_PLATFORM_APPLE_IOS" FALSE)
 cmake_dependent_option(OGRE_BUILD_RENDERSYSTEM_GLES "Build OpenGL ES 1.x RenderSystem" FALSE "OPENGLES_FOUND" FALSE)
 cmake_dependent_option(OGRE_BUILD_RENDERSYSTEM_GLES2 "Build OpenGL ES 2.x RenderSystem" FALSE "OPENGLES2_FOUND" FALSE)
 cmake_dependent_option(OGRE_BUILD_PLATFORM_APPLE_IOS "Build Ogre for iOS" FALSE "iOSSDK_FOUND;OPENGLES_FOUND;OPENGLES2_FOUND" FALSE)
 option(OGRE_BUILD_PLUGIN_OCTREE "Build Octree SceneManager plugin" TRUE)
 option(OGRE_BUILD_PLUGIN_PFX "Build ParticleFX plugin" TRUE)
 
-cmake_dependent_option(OGRE_BUILD_PLUGIN_PCZ "Build PCZ SceneManager plugin" TRUE "NOT SYMBIAN" FALSE)
-cmake_dependent_option(OGRE_BUILD_COMPONENT_PAGING "Build Paging component" TRUE "NOT SYMBIAN" FALSE)
-cmake_dependent_option(OGRE_BUILD_COMPONENT_TERRAIN "Build Terrain component" TRUE "NOT SYMBIAN" FALSE)
+cmake_dependent_option(OGRE_BUILD_PLUGIN_PCZ "Build PCZ SceneManager plugin" TRUE "" FALSE)
+cmake_dependent_option(OGRE_BUILD_COMPONENT_PAGING "Build Paging component" TRUE "" FALSE)
+cmake_dependent_option(OGRE_BUILD_COMPONENT_TERRAIN "Build Terrain component" TRUE "" FALSE)
 cmake_dependent_option(OGRE_BUILD_COMPONENT_PROPERTY "Build Property component" TRUE "Boost_FOUND" FALSE)
-cmake_dependent_option(OGRE_BUILD_PLUGIN_CG "Build Cg plugin" TRUE "Cg_FOUND;NOT OGRE_BUILD_PLATFORM_APPLE_IOS;NOT SYMBIAN" FALSE)
+cmake_dependent_option(OGRE_BUILD_PLUGIN_CG "Build Cg plugin" TRUE "Cg_FOUND;NOT OGRE_BUILD_PLATFORM_APPLE_IOS" FALSE)
 option(OGRE_BUILD_COMPONENT_RTSHADERSYSTEM "Build RTShader System component" TRUE)
 cmake_dependent_option(OGRE_BUILD_RTSHADERSYSTEM_CORE_SHADERS "Build RTShader System FFP core shaders" TRUE "OGRE_BUILD_COMPONENT_RTSHADERSYSTEM" FALSE)
 cmake_dependent_option(OGRE_BUILD_RTSHADERSYSTEM_EXT_SHADERS "Build RTShader System extensions shaders" TRUE "OGRE_BUILD_COMPONENT_RTSHADERSYSTEM" FALSE)
 
 option(OGRE_BUILD_SAMPLES "Build Ogre demos" TRUE)
-cmake_dependent_option(OGRE_BUILD_TOOLS "Build the command-line tools" TRUE "NOT OGRE_BUILD_PLATFORM_APPLE_IOS;NOT SYMBIAN" FALSE)
+cmake_dependent_option(OGRE_BUILD_TOOLS "Build the command-line tools" TRUE "NOT OGRE_BUILD_PLATFORM_APPLE_IOS" FALSE)
 cmake_dependent_option(OGRE_BUILD_XSIEXPORTER "Build the Softimage exporter" FALSE "Softimage_FOUND" FALSE)
 option(OGRE_BUILD_TESTS "Build the unit tests & PlayPen" FALSE)
 option(OGRE_CONFIG_DOUBLE "Use doubles instead of floats in Ogre" FALSE)
 
-if (SYMBIAN)
-# Symbian can only use the standard allocator
-set(OGRE_CONFIG_ALLOCATOR 1)
-else ()
 set(OGRE_CONFIG_ALLOCATOR 4 CACHE STRING
 "Specify the memory allocator to use. Possible values:
   1 - Standard allocator
   3 - User-provided allocator
   4 - nedmalloc with pooling"
 )
-endif ()
 
-cmake_dependent_option(OGRE_CONFIG_CONTAINERS_USE_CUSTOM_ALLOCATOR "STL containers in Ogre use the custom allocator" TRUE "NOT SYMBIAN" FALSE)
+cmake_dependent_option(OGRE_CONFIG_CONTAINERS_USE_CUSTOM_ALLOCATOR "STL containers in Ogre use the custom allocator" TRUE "" FALSE)
 option(OGRE_CONFIG_STRING_USE_CUSTOM_ALLOCATOR "Ogre String uses the custom allocator" FALSE)
 option(OGRE_CONFIG_MEMTRACK_DEBUG "Enable Ogre's memory tracker in debug mode" FALSE)
 option(OGRE_CONFIG_MEMTRACK_RELEASE "Enable Ogre's memory tracker in release mode" FALSE)
 option(OGRE_UNITY_BUILD "Enable unity build for Ogre." FALSE)
 set(OGRE_UNITY_FILES_PER_UNIT "50" CACHE STRING "Number of files per compilation unit in Unity build.")
 
-if (SYMBIAN)
-SET (CMAKE_SYMBIAN_UID_3 "0xA0007218" CACHE STRING 
-  "Application UID (or UID3) is used to uniquely identify the binary (EXE or DLL) within the system. The purpose of UID 3 is to prevent one executable from interfering the operation of another executable.")
-endif ()
-
 # hide advanced options
 mark_as_advanced(
   OGRE_BUILD_RTSHADERSYSTEM_CORE_SHADERS 

OgreMain/CMakeLists.txt

   if (DL_LIBRARY)
     list(APPEND PLATFORM_LIBS dl)
   endif ()
-elseif (SYMBIAN)
-  include_directories(include/symbian)
-  set(PLATFORM_HEADER_FILES
-    include/GLX/OgreTimerImp.h
-    include/symbian/OgreConfigDialogImp.h
-    include/symbian/OgreErrorDialogImp.h
-  )
-  set(PLATFORM_SOURCE_FILES
-    src/OgreSearchOps.cpp
-    src/GLX/OgreTimer.cpp
-    src/symbian/OgreConfigDialog.cpp
-    src/symbian/OgreErrorDialog.cpp
-  )
-  set(PLATFORM_HEADER_INSTALL "SYMBIAN")
-
 endif()
 
 

OgreMain/include/OgreBillboardParticleRenderer.h

         void _notifyAttached(Node* parent, bool isTagPoint = false);
         /// @copydoc ParticleSystemRenderer::_notifyDefaultDimensions
         void _notifyDefaultDimensions(Real width, Real height);
-        /// @copydoc ParticleSystemRenderer::setRenderQueueGroup
-        void setRenderQueueGroup(uint8 queueID);
-        /// @copydoc ParticleSystemRenderer::setKeepParticlesInLocalSpace
-        void setKeepParticlesInLocalSpace(bool keepLocal);
+		/// @copydoc ParticleSystemRenderer::setRenderQueueGroup
+		void setRenderQueueGroup(uint8 queueID);
+		/// @copydoc MovableObject::setRenderQueueGroupAndPriority
+		void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority);
+		/// @copydoc ParticleSystemRenderer::setKeepParticlesInLocalSpace
+		void setKeepParticlesInLocalSpace(bool keepLocal);
         /// @copydoc ParticleSystemRenderer::_getSortMode
         SortMode _getSortMode(void) const;
 

OgreMain/include/OgreConfigDialog.h

 # include "OSX/OgreConfigDialogImp.h"
 #elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
 # include "iOS/OgreConfigDialogImp.h"
-#elif OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
-# include "Symbian/OgreConfigDialogImp.h"
 #elif OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
 # include "Android/OgreConfigDialogImp.h"
 #endif

OgreMain/include/OgreDynLib.h

 #    define DYNLIB_GETSYM( a, b ) dlsym( a, b )
 #    define DYNLIB_UNLOAD( a ) dlclose( a )
 
-#elif OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN || OGRE_PLATFORM == OGRE_PLATFORM_NACL
-#    define DYNLIB_HANDLE void*
-#    define DYNLIB_LOAD( a ) 0
-#    define DYNLIB_GETSYM( a, b ) 0
-#    define DYNLIB_UNLOAD( a ) 0
-
 #endif
 
 namespace Ogre {

OgreMain/include/OgreErrorDialog.h

 # include "OSX/OgreErrorDialogImp.h"
 #elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
 # include "iOS/OgreErrorDialogImp.h"
-#elif OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
-# include "Symbian/OgreErrorDialogImp.h"
 #elif OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
 # include "Android/OgreErrorDialogImp.h"
 #endif

OgreMain/include/OgreIteratorRange.h

 #define __Ogre_Iterator_Range_H__
 
 
-//#define OGRE_USE_BOOST 1 - picked up by CMake
 #if OGRE_USE_BOOST
-#include <boost/range.hpp>
+#   if OGRE_COMPILER == OGRE_COMPILER_CLANG || OGRE_COMPILER == OGRE_COMPILER_GCC
+#       pragma GCC diagnostic push
+#       pragma GCC diagnostic ignored "-Wshadow"
+#       pragma GCC diagnostic ignored "-Wpadded"
+#       pragma GCC diagnostic ignored "-Wweak-vtables"
+#       pragma GCC diagnostic ignored "-Wall"
+#   endif
+
+#   include <boost/range.hpp>
+
+#   if OGRE_COMPILER == OGRE_COMPILER_CLANG || OGRE_COMPILER == OGRE_COMPILER_GCC
+#       pragma GCC diagnostic pop
+#   endif
 #endif
 
 namespace Ogre {

OgreMain/include/OgreParticleSystem.h

 
 		/** @copydoc MovableObject::setRenderQueueGroup */
 		void setRenderQueueGroup(uint8 queueID);
+		/** @copydoc MovableObject::setRenderQueueGroupAndPriority */
+		void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority);
 
 		/** Set whether or not particles are sorted according to the camera.
 		@remarks

OgreMain/include/OgreParticleSystemRenderer.h

 			output.
 		*/
 		virtual void setRenderQueueGroup(uint8 queueID) = 0;
+		/** Sets which render queue group and priority this renderer should target with it's
+			output.
+		*/
+		virtual void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority) = 0;
 
 		/** Setting carried over from ParticleSystem.
 		*/

OgreMain/include/OgrePlatform.h

 #define OGRE_PLATFORM_WIN32 1
 #define OGRE_PLATFORM_LINUX 2
 #define OGRE_PLATFORM_APPLE 3
-#define OGRE_PLATFORM_SYMBIAN 4
-#define OGRE_PLATFORM_APPLE_IOS 5
-#define OGRE_PLATFORM_ANDROID 6
-#define OGRE_PLATFORM_NACL 7
+#define OGRE_PLATFORM_APPLE_IOS 4
+#define OGRE_PLATFORM_ANDROID 5
+#define OGRE_PLATFORM_NACL 6
 
 #define OGRE_COMPILER_MSVC 1
 #define OGRE_COMPILER_GNUC 2
 
 /* Finds the current platform */
 
-#if defined( __SYMBIAN32__ ) 
-#   define OGRE_PLATFORM OGRE_PLATFORM_SYMBIAN
-#elif defined( __WIN32__ ) || defined( _WIN32 )
+#if defined( __WIN32__ ) || defined( _WIN32 )
 #   define OGRE_PLATFORM OGRE_PLATFORM_WIN32
 #elif defined( __APPLE_CC__)
     // Device                                                     Simulator
 #endif // OGRE_PLATFORM == OGRE_PLATFORM_WIN32
 
 //----------------------------------------------------------------------------
-// Symbian Settings
-#if OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
-#   define _OgreExport 
-#	define OGRE_UNICODE_SUPPORT 1
-#   define OGRE_DEBUG_MODE 0
-#   define _OgrePrivate
-#	  define CLOCKS_PER_SEC  1000
-//  pragma def were found here: http://www.inf.pucrs.br/~eduardob/disciplinas/SistEmbarcados/Mobile/Nokia/Tools/Carbide_vs/WINSCW/Help/PDF/C_Compilers_Reference_3.2.pdf
-#	  pragma warn_unusedarg off
-#	  pragma warn_emptydecl off
-#	  pragma warn_possunwant off
-// A quick define to overcome different names for the same function
-#   define stricmp strcasecmp
-#   ifdef DEBUG
-#       define OGRE_DEBUG_MODE 1
-#   else
-#       define OGRE_DEBUG_MODE 0
-#   endif
-#endif
-//----------------------------------------------------------------------------
 // Android Settings
 /*
 #if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
 #endif
 */
 //----------------------------------------------------------------------------
-// Linux/Apple/iOs/Android/Symbian/NaCl Settings
+// Linux/Apple/iOs/Android/NaCl Settings
 #if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_APPLE || OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS || \
     OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || OGRE_PLATFORM == OGRE_PLATFORM_NACL
 

OgreMain/include/OgreSearchOps.h

 
 #include <dirent.h>
 #include <unistd.h>
-#if OGRE_PLATFORM != OGRE_PLATFORM_SYMBIAN
 #include <fnmatch.h>
-#endif
 
 /* Our simplified data entry structure */
 struct _finddata_t
     unsigned long size;
 };
 
-#if OGRE_PLATFORM != OGRE_PLATFORM_SYMBIAN
 #define _A_NORMAL 0x00  /* Normalfile-Noread/writerestrictions */
 #define _A_RDONLY 0x01  /* Read only file */
 #define _A_HIDDEN 0x02  /* Hidden file */
 int _findclose(intptr_t id);
 
 #endif
-
-#endif

OgreMain/include/OgreStdHeaders.h

     #define __STD_ALGORITHM
 #endif
 
-#if defined ( OGRE_GCC_VISIBILITY ) && (OGRE_PLATFORM != OGRE_PLATFORM_APPLE && OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS)
+#if defined ( OGRE_GCC_VISIBILITY ) && ((OGRE_PLATFORM == OGRE_PLATFORM_APPLE && !__LP64__) && OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS)
 /* Until libstdc++ for gcc 4.2 is released, we have to declare all
  * symbols in libstdc++.so externally visible, otherwise we end up
  * with them marked as hidden by -fvisible=hidden.
 #   include "Threading/OgreThreadHeaders.h"
 #endif
 
-#if defined ( OGRE_GCC_VISIBILITY ) && (OGRE_PLATFORM != OGRE_PLATFORM_APPLE && OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS)
+#if defined ( OGRE_GCC_VISIBILITY ) && ((OGRE_PLATFORM == OGRE_PLATFORM_APPLE && !__LP64__) && OGRE_PLATFORM != OGRE_PLATFORM_APPLE_IOS)
 #   pragma GCC visibility pop
 #endif
 #endif

OgreMain/include/OgreTimer.h

 //Bring in the specific platform's header file
 #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
 # include "WIN32/OgreTimerImp.h"
-#elif (OGRE_PLATFORM == OGRE_PLATFORM_LINUX) || (OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN)
+#elif OGRE_PLATFORM == OGRE_PLATFORM_LINUX
 # include "GLX/OgreTimerImp.h"
 #elif OGRE_PLATFORM == OGRE_PLATFORM_NACL  
 # include "NaCl/OgreTimerImp.h"

OgreMain/include/OgreUTFString.h

 # else
 #   define OGRE_IS_NATIVE_WCHAR_T      0
 # endif
-#elif OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
-#   define OGRE_IS_NATIVE_WCHAR_T      0
 #else   // OGRE_COMPILER != OGRE_COMPILER_MSVC
 
 // Assumed wchar_t is natively for other compilers

OgreMain/include/Symbian/OgreConfigDialogImp.h

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-    (Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-
-#ifndef __GLXCONFIGDIALOG_H__
-#define __GLXCONFIGDIALOG_H__
-
-#include "OgrePrerequisites.h"
-#include "OgreRoot.h"
-#include "OgreRenderSystem.h"
-
-namespace Ogre
-{
-    /**
-    Defines the behaviour of an automatic renderer configuration dialog.
-    @remarks
-        OGRE comes with it's own renderer configuration dialog, which
-        applications can use to easily allow the user to configure the
-        settings appropriate to their machine. This class defines the
-        interface to this standard dialog. Because dialogs are inherently
-        tied to a particular platform's windowing system, there will be a
-        different subclass for each platform.
-    @author
-        Andrew Zabolotny <zap@homelink.ru>
-    */
-    class _OgreExport ConfigDialog : public UtilityAlloc
-    {
-    public:
-        ConfigDialog();
-
-        /**
-        Displays the dialog.
-        @remarks
-            This method displays the dialog and from then on the dialog
-            interacts with the user independently. The dialog will be
-            calling the relevant OGRE rendering systems to query them for
-            options and to set the options the user selects. The method
-            returns when the user closes the dialog.
-        @returns
-            If the user accepted the dialog, <b>true</b> is returned.
-        @par
-            If the user cancelled the dialog (indicating the application
-            should probably terminate), <b>false</b> is returned.
-        @see
-            RenderSystem
-        */
-        bool display ();
-
-    protected:
-    };
-}
-#endif

OgreMain/include/Symbian/OgreErrorDialogImp.h

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-(Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-#ifndef __OGRE_GLX_ERROR_DIALOG_H__
-#define __OGRE_GLX_ERROR_DIALOG_H__
-
-#include "OgrePrerequisites.h"
-
-namespace Ogre
-{
-	/** Class for displaying the error dialog if Ogre fails badly. */
-	class _OgreExport ErrorDialog
-	{
-	public:
-		ErrorDialog();
-
-		/**
-		@remarks
-			Displays the error dialog.
-		@param
-			errorMessage The error message which has caused the failure.
-		@param
-			logName Optional name of the log to display in the detail pane.
-		*/
-        void display(const String& errorMessage, String logName = "");
-	};
-}
-#endif

OgreMain/include/Threading/OgreThreadHeadersBoost.h

 #ifndef __OgreThreadHeadersBoost_H__
 #define __OgreThreadHeadersBoost_H__
 
+#if OGRE_COMPILER == OGRE_COMPILER_CLANG || OGRE_COMPILER == OGRE_COMPILER_GCC
+#   pragma GCC diagnostic push
+#   pragma GCC diagnostic ignored "-Wshadow"
+#   pragma GCC diagnostic ignored "-Wpadded"
+#   pragma GCC diagnostic ignored "-Wweak-vtables"
+#   pragma GCC diagnostic ignored "-Wall"
+#endif
+
 #include <boost/thread/tss.hpp>
 #include <boost/thread/recursive_mutex.hpp>
 #include <boost/thread/condition.hpp>
 #include <boost/thread/shared_mutex.hpp>
 #include <boost/thread/locks.hpp>
 
+#if OGRE_COMPILER == OGRE_COMPILER_CLANG || OGRE_COMPILER == OGRE_COMPILER_GCC
+#   pragma GCC diagnostic pop
 #endif
+
+#endif

OgreMain/src/OgreBillboardParticleRenderer.cpp

 		mBillboardSet->setRenderQueueGroup(queueID);
 	}
 	//-----------------------------------------------------------------------
+	void BillboardParticleRenderer::setRenderQueueGroupAndPriority(uint8 queueID, ushort priority)
+	{
+		assert(queueID <= RENDER_QUEUE_MAX && "Render queue out of range!");
+		mBillboardSet->setRenderQueueGroupAndPriority(queueID, priority);
+	}
+	//-----------------------------------------------------------------------
 	void BillboardParticleRenderer::setKeepParticlesInLocalSpace(bool keepLocal)
 	{
 		mBillboardSet->setBillboardsInWorldSpace(!keepLocal);

OgreMain/src/OgreCamera.cpp

 #include "OgreRoot.h"
 #include "OgreRenderSystem.h"
 
-#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
-#include "macUtils.h"
-#endif
-
 namespace Ogre {
 
     String Camera::msMovableType = "Camera";
     //-----------------------------------------------------------------------
     Camera::~Camera()
     {
-		for (ListenerList::iterator i = mListeners.begin(); i != mListeners.end(); ++i)
+		ListenerList listenersCopy = mListeners;
+		for (ListenerList::iterator i = listenersCopy.begin(); i != listenersCopy.end(); ++i)
 		{
 			(*i)->cameraDestroyed(this);
 		}
 		}
 
 		//notify prerender scene
-		for (ListenerList::iterator i = mListeners.begin(); i != mListeners.end(); ++i)
+		ListenerList listenersCopy = mListeners;
+		for (ListenerList::iterator i = listenersCopy.begin(); i != listenersCopy.end(); ++i)
 		{
 			(*i)->cameraPreRenderScene(this);
 		}
 		//render scene
 		mSceneMgr->_renderScene(this, vp, includeOverlays);
 
+		// Listener list may have change
+		listenersCopy = mListeners;
+
 		//notify postrender scene
-		for (ListenerList::iterator i = mListeners.begin(); i != mListeners.end(); ++i)
+		for (ListenerList::iterator i = listenersCopy.begin(); i != listenersCopy.end(); ++i)
 		{
 			(*i)->cameraPostRenderScene(this);
 		}

OgreMain/src/OgreConfigFile.cpp

 		// Wrap as a stream
 		DataStreamPtr stream(OGRE_NEW FileStreamDataStream(filename, &fp, false));
 
-#if OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
-		// seems readLine doesn't work correctly in SYMBIAN with files
-		DataStreamPtr memoryStream(OGRE_NEW MemoryDataStream(stream));
-		stream = memoryStream;
-#endif
-
 		load(stream, separators, trimWhitespace);
 
 	}

OgreMain/src/OgreFileSystem.cpp

 #include <sys/stat.h>
 
 #if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_APPLE || \
-    OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN || OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS || \
+    OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS || \
     OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || \
     OGRE_PLATFORM == OGRE_PLATFORM_NACL
 #   include "OgreSearchOps.h"

OgreMain/src/OgreFreeImageCodec.cpp

 #endif
 #endif
 
-// Color order is actually RGB on iOS
-#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
-#undef FREEIMAGE_COLORORDER
-#define FREEIMAGE_COLORORDER FREEIMAGE_COLORORDER_RGB
-#endif
-
 namespace Ogre {
 
 	FreeImageCodec::RegisteredCodecList FreeImageCodec::msCodecList;

OgreMain/src/OgreMesh.cpp

 		newMesh->mIsLodManual = mIsLodManual;
 		newMesh->mNumLods = mNumLods;
 		newMesh->mMeshLodUsageList = mMeshLodUsageList;
+        newMesh->mAutoBuildEdgeLists = mAutoBuildEdgeLists;
         // Unreference edge lists, otherwise we'll delete the same lot twice, build on demand
         MeshLodUsageList::iterator lodi;
         for (lodi = newMesh->mMeshLodUsageList.begin(); lodi != newMesh->mMeshLodUsageList.end(); ++lodi) {
 		newMesh->mSharedVertexDataAnimationType = mSharedVertexDataAnimationType;
 		newMesh->mAnimationTypesDirty = true;
 
-
         newMesh->load();
         newMesh->touch();
 
         return newMesh;
-
     }
     //-----------------------------------------------------------------------
     const AxisAlignedBox& Mesh::getBounds(void) const

OgreMain/src/OgreParticleSystem.cpp

 		}
 	}
 	//-----------------------------------------------------------------------
+	void ParticleSystem::setRenderQueueGroupAndPriority(uint8 queueID, ushort priority)
+	{
+		MovableObject::setRenderQueueGroupAndPriority(queueID, priority);
+		if (mRenderer)
+		{
+			mRenderer->setRenderQueueGroupAndPriority(queueID, priority);
+		}
+	}
+	//-----------------------------------------------------------------------
 	void ParticleSystem::setKeepParticlesInLocalSpace(bool keepLocal)
 	{
 		mLocalSpace = keepLocal;

OgreMain/src/OgrePass.cpp

 			}
 			msPassGraveyard.clear();
 		}
-#if OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
-		PassSet::iterator i, iend;
-		iend = msDirtyHashList.end();
-		for (i = msDirtyHashList.begin(); i != iend; ++i)
-		{
-			Pass* p = *i;
-			p->_recalculateHash();
-		}
-		msDirtyHashList.clear();
-
-#else
         PassSet tempDirtyHashList;
 		{
 			OGRE_LOCK_MUTEX(msDirtyHashListMutex)
             Pass* p = *i;
             p->_recalculateHash();
         }
-#endif
     }
     //-----------------------------------------------------------------------
     void Pass::queueForDeletion(void)

OgreMain/src/OgreRenderSystemCapabilitiesSerializer.cpp

         addCapabilitiesMapping("pbuffer", RSC_PBUFFER);
         addCapabilitiesMapping("gl1_5_nohwocclusion", RSC_GL1_5_NOHWOCCLUSION);
         addCapabilitiesMapping("perstageconstant", RSC_PERSTAGECONSTANT);
+        addCapabilitiesMapping("separate_shader_objects", RSC_SEPARATE_SHADER_OBJECTS);
 
     }
 

OgreMain/src/OgreSceneManager.cpp

 //---------------------------------------------------------------------
 void SceneManager::removeListener(Listener* delListener)
 {
+    ListenerList listenersCopy = mListeners;
     ListenerList::iterator i, iend;
-    iend = mListeners.end();
-    for (i = mListeners.begin(); i != iend; ++i)
+    iend = listenersCopy.end();
+    for (i = listenersCopy.begin(); i != iend; ++i)
     {
         if (*i == delListener)
         {
-            mListeners.erase(i);
+            listenersCopy.erase(i);
             break;
         }
     }
 //---------------------------------------------------------------------
 void SceneManager::fireShadowTexturesUpdated(size_t numberOfShadowTextures)
 {
+    ListenerList listenersCopy = mListeners;
     ListenerList::iterator i, iend;
 
-    iend = mListeners.end();
-    for (i = mListeners.begin(); i != iend; ++i)
+    iend = listenersCopy.end();
+    for (i = listenersCopy.begin(); i != iend; ++i)
     {
         (*i)->shadowTexturesUpdated(numberOfShadowTextures);
     }
 //---------------------------------------------------------------------
 void SceneManager::fireShadowTexturesPreCaster(Light* light, Camera* camera, size_t iteration)
 {
+    ListenerList listenersCopy = mListeners;
     ListenerList::iterator i, iend;
 
-    iend = mListeners.end();
-    for (i = mListeners.begin(); i != iend; ++i)
+    iend = listenersCopy.end();
+    for (i = listenersCopy.begin(); i != iend; ++i)
     {
         (*i)->shadowTextureCasterPreViewProj(light, camera, iteration);
     }
 //---------------------------------------------------------------------
 void SceneManager::fireShadowTexturesPreReceiver(Light* light, Frustum* f)
 {
+    ListenerList listenersCopy = mListeners;
     ListenerList::iterator i, iend;
 
-    iend = mListeners.end();
-    for (i = mListeners.begin(); i != iend; ++i)
+    iend = listenersCopy.end();
+    for (i = listenersCopy.begin(); i != iend; ++i)
     {
         (*i)->shadowTextureReceiverPreViewProj(light, f);
     }
 //---------------------------------------------------------------------
 void SceneManager::firePreUpdateSceneGraph(Camera* camera)
 {
+    ListenerList listenersCopy = mListeners;
 	ListenerList::iterator i, iend;
 
-	iend = mListeners.end();
-	for (i = mListeners.begin(); i != iend; ++i)
+	iend = listenersCopy.end();
+	for (i = listenersCopy.begin(); i != iend; ++i)
 	{
 		(*i)->preUpdateSceneGraph(this, camera);
 	}
 //---------------------------------------------------------------------
 void SceneManager::firePostUpdateSceneGraph(Camera* camera)
 {
+    ListenerList listenersCopy = mListeners;
 	ListenerList::iterator i, iend;
 
-	iend = mListeners.end();
-	for (i = mListeners.begin(); i != iend; ++i)
+	iend = listenersCopy.end();
+	for (i = listenersCopy.begin(); i != iend; ++i)
 	{
 		(*i)->postUpdateSceneGraph(this, camera);
 	}
 //---------------------------------------------------------------------
 void SceneManager::firePreFindVisibleObjects(Viewport* v)
 {
+    ListenerList listenersCopy = mListeners;
 	ListenerList::iterator i, iend;
 
-	iend = mListeners.end();
-	for (i = mListeners.begin(); i != iend; ++i)
+	iend = listenersCopy.end();
+	for (i = listenersCopy.begin(); i != iend; ++i)
 	{
 		(*i)->preFindVisibleObjects(this, mIlluminationStage, v);
 	}
 //---------------------------------------------------------------------
 void SceneManager::firePostFindVisibleObjects(Viewport* v)
 {
+    ListenerList listenersCopy = mListeners;
 	ListenerList::iterator i, iend;
 
-	iend = mListeners.end();
-	for (i = mListeners.begin(); i != iend; ++i)
+	iend = listenersCopy.end();
+	for (i = listenersCopy.begin(); i != iend; ++i)
 	{
 		(*i)->postFindVisibleObjects(this, mIlluminationStage, v);
 	}
 //---------------------------------------------------------------------
 void SceneManager::fireSceneManagerDestroyed()
 {
+    ListenerList listenersCopy = mListeners;
 	ListenerList::iterator i, iend;
 
-	iend = mListeners.end();
-	for (i = mListeners.begin(); i != iend; ++i)
+	iend = listenersCopy.end();
+	for (i = listenersCopy.begin(); i != iend; ++i)
 	{
 		(*i)->sceneManagerDestroyed(this);
 	}
 			// Allow a Listener to override light sorting
 			// Reverse iterate so last takes precedence
 			bool overridden = false;
-			for (ListenerList::reverse_iterator ri = mListeners.rbegin();
-				ri != mListeners.rend(); ++ri)
+			ListenerList listenersCopy = mListeners;
+			for (ListenerList::reverse_iterator ri = listenersCopy.rbegin();
+				ri != listenersCopy.rend(); ++ri)
 			{
 				overridden = (*ri)->sortLightsAffectingFrustum(mLightsAffectingFrustum);
 				if (overridden)

OgreMain/src/OgreSearchOps.cpp

 #include <stdio.h>
 #include <ctype.h>
 
-#if OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN
-#include "OgreString.h"
-
-// SYMBIAN todo - possibly use - CDirScan from C:\Symbian\9.2\S60_3rd_FP1\Epoc32\include\f32file.h
-// see this sample - http://wiki.forum.nokia.com/index.php/Find_Files
-
-bool fnmatch (Ogre::String pattern, Ogre::String name, int dummy)
-{
-	if (pattern == "*")
-	{
-		return true;
-	}
-	if (pattern.substr(0,2) == "*.")
-	{
-		Ogre::StringUtil::toLowerCase(pattern);
-		Ogre::StringUtil::toLowerCase(name);
-		Ogre::String extToFind = pattern.substr(2, pattern.size() - 2);
-		if ((name.size() > extToFind.size()) &&(extToFind == name.substr(name.size() - extToFind.size(), extToFind.size())))
-		{
-			return 0; // match
-		}
-		else
-		{
-			return 1; // don't match
-		}
-	}
-	return false;
-}
-#endif
-
 /* Win32 directory operations emulation */
 #if OGRE_PLATFORM != OGRE_PLATFORM_WIN32
 

OgreMain/src/OgreStringConverter.cpp

 		// Use istringstream for direct correspondence with toString
 		StringStream str(val);
 		Real ret = defaultValue;
-		str >> ret;
+        if( !(str >> ret) )
+            return defaultValue;
 #endif
         return ret;
     }
 		// Use istringstream for direct correspondence with toString
 		StringStream str(val);
 		int ret = defaultValue;
-		str >> ret;
+        if( !(str >> ret) )
+            return defaultValue;
 
         return ret;
     }
 		// Use istringstream for direct correspondence with toString
 		StringStream str(val);
 		unsigned int ret = defaultValue;
-		str >> ret;
+        if( !(str >> ret) )
+            return defaultValue;
 
 		return ret;
     }
 		// Use istringstream for direct correspondence with toString
 		StringStream str(val);
 		long ret = defaultValue;
-		str >> ret;
+        if( !(str >> ret) )
+            return defaultValue;
 
 		return ret;
     }
 		// Use istringstream for direct correspondence with toString
 		StringStream str(val);
 		unsigned long ret = defaultValue;
-		str >> ret;
+        if( !(str >> ret) )
+            return defaultValue;
 
 		return ret;
     }

OgreMain/src/OgreZip.cpp

                     // the compressed size of a folder, and if he does, its useless anyway
                     info.compressedSize = size_t (-1);
                 }
-                else
-                {
-                    info.filename = info.basename;
-                }
 
                 mFileList.push_back(info);
 

OgreMain/src/Symbian/OgreConfigDialog.cpp

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-    (Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-#include "OgreConfigDialog.h"
-#include "OgreException.h"
-#include "OgreLogManager.h"
-
-
-namespace Ogre {
-
-ConfigDialog::ConfigDialog ()
-{
-}
-
-bool ConfigDialog::display(void)
-{
-	if(Root::getSingleton().getRenderSystem() != NULL)
-	{
-		return true;
-	}
-
-	// just select the first available render system for now.
-	const RenderSystemList* lstRend;
-	RenderSystemList::const_iterator pRend;
-
-	lstRend = &Root::getSingleton().getAvailableRenderers();
-	pRend = lstRend->begin();            
-
-	while (pRend != lstRend->end())
-	{
-		Root::getSingleton().setRenderSystem((*pRend));
-
-		return true;
-	}
-
-
-
-	return false;
-
-}
-
-
-}

OgreMain/src/Symbian/OgreErrorDialog.cpp

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-(Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-#include "OgreErrorDialog.h"
-
-#include <iostream>
-
-namespace Ogre {
-
-
-//---------------------------------------------------------------------------//
-ErrorDialog::ErrorDialog ()
-{
-}
-
-//---------------------------------------------------------------------------//
-void ErrorDialog::display (const String& errorMessage, String logName)
-{
-}
-
-}

PlugIns/OctreeSceneManager/src/OgreOctreeNode.cpp

     //update the OctreeSceneManager that things might have moved.
     // if it hasn't been added to the octree, add it, and if has moved
     // enough to leave it's current node, we'll update it.
-    if ( ! mWorldAABB.isNull() )
+    if ( ! mWorldAABB.isNull() && mIsInSceneGraph )
     {
         static_cast < OctreeSceneManager * > ( mCreator ) -> _updateOctreeNode( this );
     }

RenderSystems/GL/include/GL/wglew.h

 #define WGL_SHARE_ACCUM_ARB 0x200E
 #define WGL_SUPPORT_GDI_ARB 0x200F
 #define WGL_SUPPORT_OPENGL_ARB 0x2010
-#define WGL_DOUBLE_BUFFER_ARB 0x2012
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
 #define WGL_STEREO_ARB 0x2012
 #define WGL_PIXEL_TYPE_ARB 0x2013
 #define WGL_COLOR_BITS_ARB 0x2014
 #define WGL_SHARE_ACCUM_EXT 0x200E
 #define WGL_SUPPORT_GDI_EXT 0x200F
 #define WGL_SUPPORT_OPENGL_EXT 0x2010
-#define WGL_DOUBLE_BUFFER_EXT 0x2012
+#define WGL_DOUBLE_BUFFER_EXT 0x2011
 #define WGL_STEREO_EXT 0x2012
 #define WGL_PIXEL_TYPE_EXT 0x2013
 #define WGL_COLOR_BITS_EXT 0x2014

RenderSystems/GL/include/GL/wglext.h

 #define WGL_SHARE_ACCUM_ARB            0x200E
 #define WGL_SUPPORT_GDI_ARB            0x200F
 #define WGL_SUPPORT_OPENGL_ARB         0x2010
-#define WGL_DOUBLE_BUFFER_ARB          0x2012
+#define WGL_DOUBLE_BUFFER_ARB          0x2011
 #define WGL_STEREO_ARB                 0x2012
 #define WGL_PIXEL_TYPE_ARB             0x2013
 #define WGL_COLOR_BITS_ARB             0x2014
 #define WGL_SHARE_ACCUM_EXT            0x200E
 #define WGL_SUPPORT_GDI_EXT            0x200F
 #define WGL_SUPPORT_OPENGL_EXT         0x2010
-#define WGL_DOUBLE_BUFFER_EXT          0x2012
+#define WGL_DOUBLE_BUFFER_EXT          0x2011
 #define WGL_STEREO_EXT                 0x2012
 #define WGL_PIXEL_TYPE_EXT             0x2013
 #define WGL_COLOR_BITS_EXT             0x2014

RenderSystems/GL/src/OSX/OgreOSXCocoaWindow.mm

     void OSXCocoaWindow::windowHasResized()
     {
         // Ensure the context is current
-	[mGLContext flushBuffer];
+        [mGLContext flushBuffer];
     }
     
     void OSXCocoaWindow::windowMovedOrResized()
                 // Set the drawable, and current context
                 // If you do this last, there is a moment before the rendering window pops-up
                 [mGLContext makeCurrentContext];
-                [mGLContext setView:mView]; // invalid drawable here
             }
             
             [mGLContext update];

RenderSystems/GLES/CMakeLists.txt

   link_directories(${OPENGLES_LIBRARY_PATH})
   set(PLATFORM_HEADER_INSTALL "WIN32")
 # Add system specific settings
-elseif (SYMBIAN)
-  set(PLATFORM_HEADERS 
-    include/EGL/SYMBIAN/OgreSYMBIANEGLContext.h
-    include/EGL/SYMBIAN/OgreSYMBIANEGLSupport.h
-    include/EGL/SYMBIAN/OgreSYMBIANEGLRenderTexture.h
-    include/EGL/SYMBIAN/OgreSYMBIANEGLWindow.h
-    include/EGL/SYMBIAN/OgreGLESUtil.h
-    include/EGL/OgreEGLContext.h
-    include/EGL/OgreEGLRenderTexture.h
-    include/EGL/OgreEGLSupport.h
-    include/EGL/OgreEGLWindow.h
-  )
-  set(PLATFORM_SOURCES
-    src/EGL/SYMBIAN/OgreSYMBIANEGLSupport.cpp
-    src/EGL/SYMBIAN/OgreSYMBIANEGLRenderTexture.cpp
-    src/EGL/SYMBIAN/OgreSYMBIANEGLWindow.cpp
-    src/EGL/SYMBIAN/OgreSYMBIANEGLContext.cpp
-    src/EGL/OgreEGLContext.cpp
-    src/EGL/OgreEGLRenderTexture.cpp
-    src/EGL/OgreEGLSupport.cpp
-    src/EGL/OgreEGLWindow.cpp
-  )
-  include_directories(src/EGL/SYMBIAN include/EGL/SYMBIAN)
-  link_directories(${OPENGLES_LIBRARY_PATH})
-  set(PLATFORM_HEADER_INSTALL "SYMBIAN")
 elseif (APPLE)
   set(PLATFORM_HEADERS 
     include/EAGL/OgreEAGLESContext.h

RenderSystems/GLES/include/EGL/Symbian/OgreGLESUtil.h

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-(Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-
-#ifndef __GLESUtil_H__
-#define __GLESUtil_H__
-
-#include "OgreSymbianEGLSupport.h"
-
-namespace Ogre {
-    inline GLESSupport* getGLSupport()
-    {
-        return new SymbianEGLSupport();
-    }
-};
-
-#endif

RenderSystems/GLES/include/EGL/Symbian/OgreSymbianEGLContext.h

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-    (Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2008 Renato Araujo Oliveira Filho <renatox@gmail.com>
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-
-#ifndef __SymbianEGLContext_H__
-#define __SymbianEGLContext_H__
-
-#include "OgreEGLContext.h"
-
-namespace Ogre {
-    class _OgrePrivate SymbianEGLContext: public EGLContext
-    {
- 
-        public:
-            SymbianEGLContext(EGLDisplay eglDisplay, const EGLSupport* glsupport, ::EGLConfig fbconfig, ::EGLSurface drawable);
-
-            virtual ~SymbianEGLContext();
-            GLESContext* clone() const;
-    };
-}
-
-#endif

RenderSystems/GLES/include/EGL/Symbian/OgreSymbianEGLRenderTexture.h

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-    (Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2008 Renato Araujo Oliveira Filho <renatox@gmail.com>
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-
-#ifndef __SymbianEGLRenderTexture_H__
-#define __SymbianEGLRenderTexture_H__
-
-#include "OgrePrerequisites.h"
-#include "OgreEGLRenderTexture.h"
-
-namespace Ogre
-{
-    class GLESContext;
-    class EGLSupport;
-    class EGLContext;
-
-    class _OgrePrivate SymbianEGLPBuffer : public EGLPBuffer
-    {
-		protected:
-
-		public:
-            SymbianEGLPBuffer(EGLSupport* glsupport, PixelComponentType format, size_t width, size_t height);
-            virtual ~SymbianEGLPBuffer();
-    };
-}
-
-#endif

RenderSystems/GLES/include/EGL/Symbian/OgreSymbianEGLSupport.h

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-(Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2008 Renato Araujo Oliveira Filho <renatox@gmail.com>
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-
-#ifndef __SymbianEGLSupport_H__
-#define __SymbianEGLSupport_H__
-
-
-#include "OgreEGLSupport.h"
-
-namespace Ogre {
-    class _OgrePrivate SymbianEGLSupport : public EGLSupport
-    {
-		protected:
-			virtual EGLWindow* createEGLWindow( EGLSupport * support);
-        public:
-            SymbianEGLSupport();
-            virtual ~SymbianEGLSupport();
-
-			virtual GLESPBuffer* createPBuffer(PixelComponentType format,
-				size_t width, size_t height);
-			virtual void switchMode(uint& width, uint& height, short& frequency);
-
-			virtual RenderWindow* newWindow(const String &name,
-				unsigned int width, unsigned int height,
-				bool fullScreen,
-				const NameValuePairList *miscParams = 0);
-
-
-	};
-}
-
-#endif

RenderSystems/GLES/include/EGL/Symbian/OgreSymbianEGLWindow.h

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-    (Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2008 Renato Araujo Oliveira Filho <renatox@gmail.com>
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-
-#ifndef __SymbianEGLWindow_H__
-#define __SymbianEGLWindow_H__
-
-#include <coecntrl.h>
-#include "OgreEGLWindow.h"
-
-namespace Ogre {
-    class _OgrePrivate SymbianEGLWindow : public EGLWindow
-    {
-	protected:
-		CCoeControl *  mNativeControl;
-
-		virtual EGLContext * createEGLContext() const;
-		virtual void getLeftAndTopFromNativeWindow(int & left, int & top, uint width, uint height);
-		virtual void initNativeCreatedWindow(const NameValuePairList *miscParams);
-		virtual void createNativeWindow( int &left, int &top, uint &width, uint &height, String &title );
-		virtual void reposition(int left, int top);
-		virtual void resize(unsigned int width, unsigned int height);
-		virtual void windowMovedOrResized();
-		virtual void switchFullScreen(bool fullscreen);
-
-    public:
-		SymbianEGLWindow(EGLSupport* glsupport);
-		virtual ~SymbianEGLWindow();
-
-		void create(const String& name, unsigned int width, unsigned int height,
-		                        bool fullScreen, const NameValuePairList *miscParams);
-
-		void getCustomAttribute( const String& name, void *pData );
-
-
-    };
-}
-
-#endif

RenderSystems/GLES/include/OgreGLESPrerequisites.h

 #include "OgrePrerequisites.h"
 #include "OgreMath.h"
 
-#if (OGRE_PLATFORM == OGRE_PLATFORM_SYMBIAN)
-#	undef _WIN32
-#endif
-
 #if (OGRE_PLATFORM == OGRE_PLATFORM_WIN32)
 #	if !defined( __MINGW32__ )
 #		ifndef WIN32_LEAN_AND_MEAN

RenderSystems/GLES/src/EGL/Symbian/OgreSymbianEGLContext.cpp

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-    (Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2008 Renato Araujo Oliveira Filho <renatox@gmail.com>
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-#include "OgreGLESRenderSystem.h"
-
-#include "OgreEGLSupport.h"
-#include "OgreSymbianEGLContext.h"
-
-#include "OgreRoot.h"
-
-namespace Ogre {
-    SymbianEGLContext::SymbianEGLContext(EGLDisplay eglDisplay, 
-							const EGLSupport* glsupport,
-                           ::EGLConfig glconfig,
-                           ::EGLSurface drawable)
-        : EGLContext(eglDisplay, glsupport, glconfig, drawable)
-    {
-    }
-
-    SymbianEGLContext::~SymbianEGLContext()
-    {
-    }
-
-    GLESContext* SymbianEGLContext::clone() const
-    {
-        return new SymbianEGLContext(mEglDisplay ,mGLSupport, mConfig, mDrawable);
-    }
-}

RenderSystems/GLES/src/EGL/Symbian/OgreSymbianEGLRenderTexture.cpp

-/*
------------------------------------------------------------------------------
-This source file is part of OGRE
-    (Object-oriented Graphics Rendering Engine)
-For the latest info, see http://www.ogre3d.org/
-
-Copyright (c) 2008 Renato Araujo Oliveira Filho <renatox@gmail.com>
-Copyright (c) 2000-2012 Torus Knot Software Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
------------------------------------------------------------------------------
-*/
-
-#include "OgreStableHeaders.h"
-
-#include "OgreException.h"
-#include "OgreLogManager.h"
-#include "OgreRoot.h"
-#include "OgreStringConverter.h"
-
-#include "OgreGLESPrerequisites.h"
-#include "OgreGLESRenderSystem.h"
-
-#include "OgreSymbianEGLRenderTexture.h"
-#include "OgreSymbianEGLContext.h"
-#include "OgreSymbianEGLSupport.h"
-
-#include <iostream>
-#include <climits>
-
-namespace Ogre {
-
-	SymbianEGLPBuffer::SymbianEGLPBuffer( EGLSupport* glsupport, PixelComponentType format, size_t width, size_t height )
-		: EGLPBuffer(glsupport, format, width, height)
-	{