| # HG changeset patch |
| # User Erik Ogenvik <erik@ogenvik.org> |
| # Date 1521740507 -3600 |
| # Branch v0-8 |
| # Node ID b7f846e6d8926f09080c4326f60cf6049ba5f5fc |
| # Parent a404dc83619fba5351a13bfdbab1fec12776d4ed |
| Use macros to handle changed Ogre::SharedPtr API. |
| |
| diff --git a/cegui/include/CEGUI/RendererModules/Ogre/OgreMacros.h b/cegui/include/CEGUI/RendererModules/Ogre/OgreMacros.h |
| new file mode 100644 |
| --- /dev/null |
| +++ b/cegui/include/CEGUI/RendererModules/Ogre/OgreMacros.h |
| @@ -0,0 +1,38 @@ |
| +/*************************************************************************** |
| + * Copyright (C) 2018 Erik Ogenvik |
| + * |
| + * 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 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 _CEGUIOgreMacros_h_ |
| +#define _CEGUIOgreMacros_h_ |
| + |
| +#include <OgrePrerequisites.h> |
| + |
| +//New shared ptr API introduced in 1.10.1 |
| +#if OGRE_VERSION >= 0x10A01 |
| +#define OGRE_RESET(_sharedPtr) ((_sharedPtr).reset()) |
| +#define OGRE_ISNULL(_sharedPtr) (!(_sharedPtr)) |
| +#else |
| +#define OGRE_RESET(_sharedPtr) ((_sharedPtr).setNull()) |
| +#define OGRE_ISNULL(_sharedPtr) ((_sharedPtr).isNull()) |
| +#endif |
| + |
| +#endif //_CEGUIOgreMacros_h_ |
| diff --git a/cegui/src/RendererModules/Ogre/CMakeLists.txt b/cegui/src/RendererModules/Ogre/CMakeLists.txt |
| --- a/cegui/src/RendererModules/Ogre/CMakeLists.txt |
| +++ b/cegui/src/RendererModules/Ogre/CMakeLists.txt |
| @@ -11,11 +11,5 @@ |
| |
| if (CEGUI_FOUND_OGRE_VERSION_MAJOR GREATER 0 AND CEGUI_FOUND_OGRE_VERSION_MINOR GREATER 10) |
| target_compile_features(${CEGUI_TARGET_NAME} PRIVATE cxx_std_11) |
| - |
| -target_compile_definitions(${CEGUI_TARGET_NAME} |
| - PRIVATE |
| - -DOGRE_VERSION_MAJOR=${CEGUI_FOUND_OGRE_VERSION_MAJOR} |
| - -DOGRE_VERSION_MINOR=${CEGUI_FOUND_OGRE_VERSION_MINOR} |
| - ) |
| endif(CEGUI_FOUND_OGRE_VERSION_MAJOR GREATER 0 AND CEGUI_FOUND_OGRE_VERSION_MINOR GREATER 10) |
| |
| diff --git a/cegui/src/RendererModules/Ogre/GeometryBuffer.cpp b/cegui/src/RendererModules/Ogre/GeometryBuffer.cpp |
| --- a/cegui/src/RendererModules/Ogre/GeometryBuffer.cpp |
| +++ b/cegui/src/RendererModules/Ogre/GeometryBuffer.cpp |
| @@ -26,6 +26,7 @@ |
| ***************************************************************************/ |
| #include "CEGUI/RendererModules/Ogre/GeometryBuffer.h" |
| #include "CEGUI/RendererModules/Ogre/Texture.h" |
| +#include "CEGUI/RendererModules/Ogre/OgreMacros.h" |
| #include "CEGUI/Vertex.h" |
| #include "CEGUI/RenderEffect.h" |
| |
| @@ -39,6 +40,8 @@ |
| #include <OgreViewport.h> |
| #endif |
| |
| + |
| + |
| // Start of CEGUI namespace section |
| namespace CEGUI |
| { |
| @@ -132,7 +135,7 @@ |
| { |
| OGRE_DELETE rop.vertexData; |
| rop.vertexData = 0; |
| - vb.setNull(); |
| + OGRE_RESET(vb); |
| } |
| |
| //----------------------------------------------------------------------------// |
| diff --git a/cegui/src/RendererModules/Ogre/Renderer.cpp b/cegui/src/RendererModules/Ogre/Renderer.cpp |
| --- a/cegui/src/RendererModules/Ogre/Renderer.cpp |
| +++ b/cegui/src/RendererModules/Ogre/Renderer.cpp |
| @@ -29,6 +29,7 @@ |
| #include "CEGUI/RendererModules/Ogre/TextureTarget.h" |
| #include "CEGUI/RendererModules/Ogre/Texture.h" |
| #include "CEGUI/RendererModules/Ogre/WindowTarget.h" |
| +#include "CEGUI/RendererModules/Ogre/OgreMacros.h" |
| #include "CEGUI/GUIContext.h" |
| #include "CEGUI/Exceptions.h" |
| #include "CEGUI/System.h" |
| @@ -62,7 +63,7 @@ |
| #include <OgreHlmsDatablock.h> |
| #endif |
| |
| -#if OGRE_VERSION_MAJOR >= 1 && OGRE_VERSION_MINOR >= 11 |
| +#if OGRE_VERSION > 0x11000 |
| #ifdef OGRE_BUILD_COMPONENT_RTSHADERSYSTEM |
| #include <RTShaderSystem/OgreRTShaderConfig.h> |
| #endif |
| @@ -919,7 +920,7 @@ |
| } |
| else// If no shader was compatible |
| { |
| - d_pimpl->d_vertexShader.setNull(); |
| + OGRE_RESET(d_pimpl->d_vertexShader); |
| CEGUI_THROW(RendererException( |
| "OgreRenderer::initialiseShaders: No supported syntax - " |
| "unable to compile '__cegui_internal_vs__'")); |
| @@ -970,8 +971,8 @@ |
| } |
| else |
| { |
| - d_pimpl->d_vertexShader.setNull(); |
| - d_pimpl->d_pixelShader.setNull(); |
| + OGRE_RESET(d_pimpl->d_vertexShader); |
| + OGRE_RESET(d_pimpl->d_pixelShader); |
| |
| CEGUI_THROW(RendererException( |
| "OgreRenderer::initialiseShaders: No supported syntax - " |
| @@ -1002,10 +1003,10 @@ |
| if (d_pimpl->d_hlmsSamplerblock != NULL) |
| hlmsManager->destroySamplerblock(d_pimpl->d_hlmsSamplerblock); |
| #endif |
| - d_pimpl->d_pixelShaderParameters.setNull(); |
| - d_pimpl->d_vertexShaderParameters.setNull(); |
| - d_pimpl->d_pixelShader.setNull(); |
| - d_pimpl->d_vertexShader.setNull(); |
| + OGRE_RESET(d_pimpl->d_pixelShaderParameters); |
| + OGRE_RESET(d_pimpl->d_vertexShaderParameters); |
| + OGRE_RESET(d_pimpl->d_pixelShader); |
| + OGRE_RESET(d_pimpl->d_vertexShader); |
| } |
| |
| //----------------------------------------------------------------------------// |
| diff --git a/cegui/src/RendererModules/Ogre/ResourceProvider.cpp b/cegui/src/RendererModules/Ogre/ResourceProvider.cpp |
| --- a/cegui/src/RendererModules/Ogre/ResourceProvider.cpp |
| +++ b/cegui/src/RendererModules/Ogre/ResourceProvider.cpp |
| @@ -27,6 +27,7 @@ |
| * OTHER DEALINGS IN THE SOFTWARE. |
| ***************************************************************************/ |
| #include "CEGUI/RendererModules/Ogre/ResourceProvider.h" |
| +#include "CEGUI/RendererModules/Ogre/OgreMacros.h" |
| #include "CEGUI/Exceptions.h" |
| |
| #include <OgreArchiveManager.h> |
| @@ -59,7 +60,7 @@ |
| Ogre::DataStreamPtr input = Ogre::ResourceGroupManager::getSingleton(). |
| openResource(filename.c_str(), orpGroup.c_str()); |
| |
| - if (input.isNull()) |
| + if (OGRE_ISNULL(input)) |
| CEGUI_THROW(InvalidRequestException( |
| "Unable to open resource file '" + filename + |
| "' in resource group '" + orpGroup + "'.")); |
| diff --git a/cegui/src/RendererModules/Ogre/Texture.cpp b/cegui/src/RendererModules/Ogre/Texture.cpp |
| --- a/cegui/src/RendererModules/Ogre/Texture.cpp |
| +++ b/cegui/src/RendererModules/Ogre/Texture.cpp |
| @@ -25,6 +25,7 @@ |
| * OTHER DEALINGS IN THE SOFTWARE. |
| ***************************************************************************/ |
| #include "CEGUI/RendererModules/Ogre/Texture.h" |
| +#include "CEGUI/RendererModules/Ogre/OgreMacros.h" |
| #include "CEGUI/Exceptions.h" |
| #include "CEGUI/System.h" |
| #include "CEGUI/RendererModules/Ogre/ImageCodec.h" |
| @@ -105,7 +106,7 @@ |
| createEmptyOgreTexture(Texture::PF_RGBA); |
| |
| // throw exception if no texture was able to be created |
| - if (d_texture.isNull()) |
| + if (OGRE_ISNULL(d_texture)) |
| CEGUI_THROW(RendererException( |
| "Failed to create Texture object with spcecified size.")); |
| |
| @@ -222,7 +223,7 @@ |
| d_texture->getBuffer(0,0).get()->blitFromMemory(*pixelBox); |
| |
| // throw exception if no texture was able to be created |
| - if (d_texture.isNull()) |
| + if (OGRE_ISNULL(d_texture)) |
| CEGUI_THROW(RendererException( |
| "Failed to blit to Texture from memory.")); |
| |
| @@ -235,7 +236,7 @@ |
| //----------------------------------------------------------------------------// |
| void OgreTexture::blitFromMemory(const void* sourceData, const Rectf& area) |
| { |
| - if (d_texture.isNull()) // TODO: exception? |
| + if (OGRE_ISNULL(d_texture)) // TODO: exception? |
| return; |
| |
| // NOTE: const_cast because Ogre takes pointer to non-const here. Rather |
| @@ -250,7 +251,7 @@ |
| //----------------------------------------------------------------------------// |
| void OgreTexture::blitToMemory(void* targetData) |
| { |
| - if (d_texture.isNull()) // TODO: exception? |
| + if (OGRE_ISNULL(d_texture)) // TODO: exception? |
| return; |
| |
| Ogre::PixelBox pb(d_size.d_width, d_size.d_height, |
| @@ -261,10 +262,10 @@ |
| //----------------------------------------------------------------------------// |
| void OgreTexture::freeOgreTexture() |
| { |
| - if (!d_texture.isNull() && !d_isLinked) |
| + if (!OGRE_ISNULL(d_texture) && !d_isLinked) |
| Ogre::TextureManager::getSingleton().remove(d_texture->getHandle()); |
| |
| - d_texture.setNull(); |
| + OGRE_RESET(d_texture); |
| } |
| |
| //----------------------------------------------------------------------------// |
| @@ -320,7 +321,7 @@ |
| d_texture = texture; |
| d_isLinked = !take_ownership; |
| |
| - if (!d_texture.isNull()) |
| + if (!OGRE_ISNULL(d_texture)) |
| { |
| d_size.d_width = d_texture->getWidth(); |
| d_size.d_height= d_texture->getHeight(); |