Browse Source

Remove URHO3D_CXX11 guards.

Eugene Kozlov 8 years ago
parent
commit
b26903703a

+ 19 - 34
CMake/Modules/UrhoCommon.cmake

@@ -129,7 +129,6 @@ set (CMAKE_EXE_LINKER_FLAGS "${INDIRECT_DEPS_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKE
 
 
 # Define all supported build options
 # Define all supported build options
 include (CMakeDependentOption)
 include (CMakeDependentOption)
-option (URHO3D_C++11 "Enable C++11 standard")
 cmake_dependent_option (IOS "Setup build for iOS platform" FALSE "XCODE" FALSE)
 cmake_dependent_option (IOS "Setup build for iOS platform" FALSE "XCODE" FALSE)
 cmake_dependent_option (TVOS "Setup build for tvOS platform" FALSE "XCODE" FALSE)
 cmake_dependent_option (TVOS "Setup build for tvOS platform" FALSE "XCODE" FALSE)
 cmake_dependent_option (URHO3D_64BIT "Enable 64-bit build, the default is set based on the native ABI of the chosen compiler toolchain" "${NATIVE_64BIT}" "NOT MSVC AND NOT ANDROID AND NOT (ARM AND NOT IOS) AND NOT WEB AND NOT POWERPC" "${NATIVE_64BIT}")     # Intentionally only enable the option for iOS but not for tvOS as the latter is 64-bit only
 cmake_dependent_option (URHO3D_64BIT "Enable 64-bit build, the default is set based on the native ABI of the chosen compiler toolchain" "${NATIVE_64BIT}" "NOT MSVC AND NOT ANDROID AND NOT (ARM AND NOT IOS) AND NOT WEB AND NOT POWERPC" "${NATIVE_64BIT}")     # Intentionally only enable the option for iOS but not for tvOS as the latter is 64-bit only
@@ -375,7 +374,6 @@ if (URHO3D_CLANG_TOOLS OR URHO3D_BINDINGS)
 endif ()
 endif ()
 if (URHO3D_CLANG_TOOLS)
 if (URHO3D_CLANG_TOOLS)
     # Require C++11 standard and no precompiled-header
     # Require C++11 standard and no precompiled-header
-    set (URHO3D_C++11 1)
     set (URHO3D_PCH 0)
     set (URHO3D_PCH 0)
     set (URHO3D_LIB_TYPE SHARED)
     set (URHO3D_LIB_TYPE SHARED)
     # Set build options that would maximise the AST of Urho3D library
     # Set build options that would maximise the AST of Urho3D library
@@ -423,17 +421,6 @@ if (NOT URHO3D_LIB_TYPE STREQUAL SHARED AND NOT URHO3D_LIB_TYPE STREQUAL MODULE)
     endif ()
     endif ()
 endif ()
 endif ()
 
 
-# Force C++11 standard (required by the generic bindings generation) if using AngelScript on Web and 64-bit ARM platforms
-if (URHO3D_ANGELSCRIPT AND (EMSCRIPTEN OR (ARM AND URHO3D_64BIT)))
-    set (URHO3D_C++11 1)
-endif ()
-
-# Force C++11 standard (required by nanodbc library) if using ODBC
-if (URHO3D_DATABASE_ODBC)
-    find_package (ODBC REQUIRED)
-    set (URHO3D_C++11 1)
-endif ()
-
 # Define preprocessor macros (for building the Urho3D library) based on the configured build options
 # Define preprocessor macros (for building the Urho3D library) based on the configured build options
 foreach (OPT
 foreach (OPT
         URHO3D_ANGELSCRIPT
         URHO3D_ANGELSCRIPT
@@ -475,30 +462,28 @@ if (WIN32 AND NOT CMAKE_PROJECT_NAME MATCHES ^Urho3D-ExternalProject-)
 endif ()
 endif ()
 
 
 # Platform and compiler specific options
 # Platform and compiler specific options
-if (URHO3D_C++11)
-    add_definitions (-DURHO3D_CXX11)   # Note the define is NOT 'URHO3D_C++11'!
-    if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
-        # Use gnu++11/gnu++0x instead of c++11/c++0x as the latter does not work as expected when cross compiling
-        if (VERIFIED_SUPPORTED_STANDARD)
-            set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${VERIFIED_SUPPORTED_STANDARD}")
-        else ()
-            foreach (STANDARD gnu++11 gnu++0x)  # Fallback to gnu++0x on older GCC version
-                execute_process (COMMAND ${CMAKE_COMMAND} -E echo COMMAND ${CMAKE_CXX_COMPILER} -std=${STANDARD} -E - RESULT_VARIABLE GCC_EXIT_CODE OUTPUT_QUIET ERROR_QUIET)
-                if (GCC_EXIT_CODE EQUAL 0)
-                    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${STANDARD}")
-                    set (VERIFIED_SUPPORTED_STANDARD ${STANDARD} CACHE INTERNAL "GNU extension of C++11 standard that is verified to be supported by the chosen compiler")
-                    break ()
-                endif ()
-            endforeach ()
-            if (NOT GCC_EXIT_CODE EQUAL 0)
-                message (FATAL_ERROR "Your GCC version ${CMAKE_CXX_COMPILER_VERSION} is too old to enable C++11 standard")
+add_definitions (-DURHO3D_CXX11)   # Note the define is NOT 'URHO3D_C++11'!
+if (CMAKE_CXX_COMPILER_ID MATCHES GNU)
+    # Use gnu++11/gnu++0x instead of c++11/c++0x as the latter does not work as expected when cross compiling
+    if (VERIFIED_SUPPORTED_STANDARD)
+        set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${VERIFIED_SUPPORTED_STANDARD}")
+    else ()
+        foreach (STANDARD gnu++11 gnu++0x)  # Fallback to gnu++0x on older GCC version
+            execute_process (COMMAND ${CMAKE_COMMAND} -E echo COMMAND ${CMAKE_CXX_COMPILER} -std=${STANDARD} -E - RESULT_VARIABLE GCC_EXIT_CODE OUTPUT_QUIET ERROR_QUIET)
+            if (GCC_EXIT_CODE EQUAL 0)
+                set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${STANDARD}")
+                set (VERIFIED_SUPPORTED_STANDARD ${STANDARD} CACHE INTERNAL "GNU extension of C++11 standard that is verified to be supported by the chosen compiler")
+                break ()
             endif ()
             endif ()
+        endforeach ()
+        if (NOT GCC_EXIT_CODE EQUAL 0)
+            message (FATAL_ERROR "Your GCC version ${CMAKE_CXX_COMPILER_VERSION} is too old to enable C++11 standard")
         endif ()
         endif ()
-    elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
-        set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
-    elseif (MSVC80)
-        message (FATAL_ERROR "Your MSVC version is too told to enable C++11 standard")
     endif ()
     endif ()
+elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang)
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+elseif (MSVC80)
+    message (FATAL_ERROR "Your MSVC version is too told to enable C++11 standard")
 endif ()
 endif ()
 if (APPLE)
 if (APPLE)
     if (IOS)
     if (IOS)

+ 0 - 6
Source/Urho3D/Container/HashMap.h

@@ -28,9 +28,7 @@
 #include "../Container/Vector.h"
 #include "../Container/Vector.h"
 
 
 #include <cassert>
 #include <cassert>
-#if URHO3D_CXX11
 #include <initializer_list>
 #include <initializer_list>
-#endif
 
 
 namespace Urho3D
 namespace Urho3D
 {
 {
@@ -240,7 +238,6 @@ public:
         head_ = tail_ = ReserveNode();
         head_ = tail_ = ReserveNode();
         *this = map;
         *this = map;
     }
     }
-#if URHO3D_CXX11
     /// Aggregate initialization constructor.
     /// Aggregate initialization constructor.
     HashMap(const std::initializer_list<Pair<T, U>>& list) : HashMap()
     HashMap(const std::initializer_list<Pair<T, U>>& list) : HashMap()
     {
     {
@@ -249,7 +246,6 @@ public:
             Insert(*it);
             Insert(*it);
         }
         }
     }
     }
-#endif
     /// Destruct.
     /// Destruct.
     ~HashMap()
     ~HashMap()
     {
     {
@@ -345,7 +341,6 @@ public:
         return node ? &node->pair_.second_ : 0;
         return node ? &node->pair_.second_ : 0;
     }
     }
 
 
-#if URHO3D_CXX11
     /// Populate the map using variadic template. This handles the base case.
     /// Populate the map using variadic template. This handles the base case.
     HashMap& Populate(const T& key, const U& value)
     HashMap& Populate(const T& key, const U& value)
     {
     {
@@ -358,7 +353,6 @@ public:
         this->operator [](key) = value;
         this->operator [](key) = value;
         return Populate(args...);
         return Populate(args...);
     };
     };
-#endif
 
 
     /// Insert a pair. Return an iterator to it.
     /// Insert a pair. Return an iterator to it.
     Iterator Insert(const Pair<T, U>& pair)
     Iterator Insert(const Pair<T, U>& pair)

+ 0 - 4
Source/Urho3D/Container/HashSet.h

@@ -26,9 +26,7 @@
 #include "../Container/Sort.h"
 #include "../Container/Sort.h"
 
 
 #include <cassert>
 #include <cassert>
-#if URHO3D_CXX11
 #include <initializer_list>
 #include <initializer_list>
-#endif
 
 
 namespace Urho3D
 namespace Urho3D
 {
 {
@@ -195,7 +193,6 @@ public:
         head_ = tail_ = ReserveNode();
         head_ = tail_ = ReserveNode();
         *this = set;
         *this = set;
     }
     }
-#if URHO3D_CXX11
     /// Aggregate initialization constructor.
     /// Aggregate initialization constructor.
     HashSet(const std::initializer_list<T>& list) : HashSet()
     HashSet(const std::initializer_list<T>& list) : HashSet()
     {
     {
@@ -204,7 +201,6 @@ public:
             Insert(*it);
             Insert(*it);
         }
         }
     }
     }
-#endif
     /// Destruct.
     /// Destruct.
     ~HashSet()
     ~HashSet()
     {
     {

+ 0 - 4
Source/Urho3D/Container/LinkedList.h

@@ -27,9 +27,7 @@
 #else
 #else
 #include <Urho3D/Urho3D.h>
 #include <Urho3D/Urho3D.h>
 #endif
 #endif
-#if URHO3D_CXX11
 #include <initializer_list>
 #include <initializer_list>
-#endif
 
 
 namespace Urho3D
 namespace Urho3D
 {
 {
@@ -56,7 +54,6 @@ public:
         head_(0)
         head_(0)
     {
     {
     }
     }
-#if URHO3D_CXX11
     /// Aggregate initialization constructor.
     /// Aggregate initialization constructor.
     LinkedList(const std::initializer_list<T>& list) : LinkedList()
     LinkedList(const std::initializer_list<T>& list) : LinkedList()
     {
     {
@@ -65,7 +62,6 @@ public:
             Insert(*it);
             Insert(*it);
         }
         }
     }
     }
-#endif
     /// Destruct.
     /// Destruct.
     ~LinkedList()
     ~LinkedList()
     {
     {

+ 0 - 4
Source/Urho3D/Container/List.h

@@ -23,9 +23,7 @@
 #pragma once
 #pragma once
 
 
 #include "../Container/ListBase.h"
 #include "../Container/ListBase.h"
-#if URHO3D_CXX11
 #include <initializer_list>
 #include <initializer_list>
-#endif
 
 
 namespace Urho3D
 namespace Urho3D
 {
 {
@@ -188,7 +186,6 @@ public:
         head_ = tail_ = ReserveNode();
         head_ = tail_ = ReserveNode();
         *this = list;
         *this = list;
     }
     }
-#if URHO3D_CXX11
     /// Aggregate initialization constructor.
     /// Aggregate initialization constructor.
     List(const std::initializer_list<T>& list) : List()
     List(const std::initializer_list<T>& list) : List()
     {
     {
@@ -197,7 +194,6 @@ public:
             Push(*it);
             Push(*it);
         }
         }
     }
     }
-#endif
     /// Destruct.
     /// Destruct.
     ~List()
     ~List()
     {
     {

+ 0 - 13
Source/Urho3D/Container/Ptr.h

@@ -26,10 +26,7 @@
 
 
 #include <cassert>
 #include <cassert>
 #include <cstddef>
 #include <cstddef>
-
-#if URHO3D_CXX11
 #include <utility>
 #include <utility>
-#endif
 
 
 namespace Urho3D
 namespace Urho3D
 {
 {
@@ -44,13 +41,11 @@ public:
     {
     {
     }
     }
 
 
-#if URHO3D_CXX11
     /// Construct a null shared pointer.
     /// Construct a null shared pointer.
     SharedPtr(std::nullptr_t) :
     SharedPtr(std::nullptr_t) :
         ptr_(0)
         ptr_(0)
     {
     {
     }
     }
-#endif
 
 
     /// Copy-construct from another shared pointer.
     /// Copy-construct from another shared pointer.
     SharedPtr(const SharedPtr<T>& rhs) :
     SharedPtr(const SharedPtr<T>& rhs) :
@@ -256,14 +251,12 @@ public:
     {
     {
     }
     }
 
 
-#if URHO3D_CXX11
     /// Construct a null weak pointer.
     /// Construct a null weak pointer.
     WeakPtr(std::nullptr_t) :
     WeakPtr(std::nullptr_t) :
         ptr_(0),
         ptr_(0),
         refCount_(0)
         refCount_(0)
     {
     {
     }
     }
-#endif
 
 
     /// Copy-construct from another weak pointer.
     /// Copy-construct from another weak pointer.
     WeakPtr(const WeakPtr<T>& rhs) :
     WeakPtr(const WeakPtr<T>& rhs) :
@@ -550,7 +543,6 @@ public:
         return *this;
         return *this;
     }
     }
 
 
-#if URHO3D_CXX11
     /// Construct empty.
     /// Construct empty.
     UniquePtr(std::nullptr_t) { }
     UniquePtr(std::nullptr_t) { }
 
 
@@ -563,7 +555,6 @@ public:
         Reset(up.Detach());
         Reset(up.Detach());
         return *this;
         return *this;
     }
     }
-#endif
 
 
     /// Point to the object.
     /// Point to the object.
     T* operator ->() const
     T* operator ->() const
@@ -641,8 +632,6 @@ template <class T> void Swap(UniquePtr<T>& first, UniquePtr<T>& second)
     first.Swap(second);
     first.Swap(second);
 }
 }
 
 
-#if URHO3D_CXX11
-
 /// Construct UniquePtr.
 /// Construct UniquePtr.
 template <class T, class ... Args> UniquePtr<T> MakeUnique(Args && ... args)
 template <class T, class ... Args> UniquePtr<T> MakeUnique(Args && ... args)
 {
 {
@@ -655,6 +644,4 @@ template <class T, class ... Args> SharedPtr<T> MakeShared(Args && ... args)
     return SharedPtr<T>(new T(std::forward<Args>(args)...));
     return SharedPtr<T>(new T(std::forward<Args>(args)...));
 }
 }
 
 
-#endif
-
 }
 }

+ 0 - 6
Source/Urho3D/Container/Vector.h

@@ -27,9 +27,7 @@
 #include <cassert>
 #include <cassert>
 #include <cstring>
 #include <cstring>
 #include <new>
 #include <new>
-#if URHO3D_CXX11
 #include <initializer_list>
 #include <initializer_list>
-#endif
 
 
 #ifdef _MSC_VER
 #ifdef _MSC_VER
 #pragma warning(push)
 #pragma warning(push)
@@ -77,7 +75,6 @@ public:
     {
     {
         *this = vector;
         *this = vector;
     }
     }
-#if URHO3D_CXX11
     /// Aggregate initialization constructor.
     /// Aggregate initialization constructor.
     Vector(const std::initializer_list<T>& list) : Vector()
     Vector(const std::initializer_list<T>& list) : Vector()
     {
     {
@@ -86,7 +83,6 @@ public:
             Push(*it);
             Push(*it);
         }
         }
     }
     }
-#endif
     /// Destruct.
     /// Destruct.
     ~Vector()
     ~Vector()
     {
     {
@@ -616,7 +612,6 @@ public:
     {
     {
         *this = vector;
         *this = vector;
     }
     }
-#if URHO3D_CXX11
     /// Aggregate initialization constructor.
     /// Aggregate initialization constructor.
     PODVector(const std::initializer_list<T>& list) : PODVector()
     PODVector(const std::initializer_list<T>& list) : PODVector()
     {
     {
@@ -625,7 +620,6 @@ public:
             Push(*it);
             Push(*it);
         }
         }
     }
     }
-#endif
     /// Destruct.
     /// Destruct.
     ~PODVector()
     ~PODVector()
     {
     {

+ 0 - 2
Source/Urho3D/Core/Object.cpp

@@ -179,7 +179,6 @@ void Object::SubscribeToEvent(Object* sender, StringHash eventType, EventHandler
     }
     }
 }
 }
 
 
-#if URHO3D_CXX11
 void Object::SubscribeToEvent(StringHash eventType, const std::function<void(StringHash, VariantMap&)>& function, void* userData/*=0*/)
 void Object::SubscribeToEvent(StringHash eventType, const std::function<void(StringHash, VariantMap&)>& function, void* userData/*=0*/)
 {
 {
     SubscribeToEvent(eventType, new EventHandler11Impl(function, userData));
     SubscribeToEvent(eventType, new EventHandler11Impl(function, userData));
@@ -189,7 +188,6 @@ void Object::SubscribeToEvent(Object* sender, StringHash eventType, const std::f
 {
 {
     SubscribeToEvent(sender, eventType, new EventHandler11Impl(function, userData));
     SubscribeToEvent(sender, eventType, new EventHandler11Impl(function, userData));
 }
 }
-#endif
 
 
 void Object::UnsubscribeFromEvent(StringHash eventType)
 void Object::UnsubscribeFromEvent(StringHash eventType)
 {
 {

+ 0 - 8
Source/Urho3D/Core/Object.h

@@ -24,9 +24,7 @@
 
 
 #include "../Container/LinkedList.h"
 #include "../Container/LinkedList.h"
 #include "../Core/Variant.h"
 #include "../Core/Variant.h"
-#if URHO3D_CXX11
 #include <functional>
 #include <functional>
-#endif
 
 
 namespace Urho3D
 namespace Urho3D
 {
 {
@@ -110,12 +108,10 @@ public:
     void SubscribeToEvent(StringHash eventType, EventHandler* handler);
     void SubscribeToEvent(StringHash eventType, EventHandler* handler);
     /// Subscribe to a specific sender's event.
     /// Subscribe to a specific sender's event.
     void SubscribeToEvent(Object* sender, StringHash eventType, EventHandler* handler);
     void SubscribeToEvent(Object* sender, StringHash eventType, EventHandler* handler);
-#ifdef URHO3D_CXX11
     /// Subscribe to an event that can be sent by any sender.
     /// Subscribe to an event that can be sent by any sender.
     void SubscribeToEvent(StringHash eventType, const std::function<void(StringHash, VariantMap&)>& function, void* userData=0);
     void SubscribeToEvent(StringHash eventType, const std::function<void(StringHash, VariantMap&)>& function, void* userData=0);
     /// Subscribe to a specific sender's event.
     /// Subscribe to a specific sender's event.
     void SubscribeToEvent(Object* sender, StringHash eventType, const std::function<void(StringHash, VariantMap&)>& function, void* userData=0);
     void SubscribeToEvent(Object* sender, StringHash eventType, const std::function<void(StringHash, VariantMap&)>& function, void* userData=0);
-#endif
     /// Unsubscribe from an event.
     /// Unsubscribe from an event.
     void UnsubscribeFromEvent(StringHash eventType);
     void UnsubscribeFromEvent(StringHash eventType);
     /// Unsubscribe from a specific sender's event.
     /// Unsubscribe from a specific sender's event.
@@ -132,13 +128,11 @@ public:
     void SendEvent(StringHash eventType, VariantMap& eventData);
     void SendEvent(StringHash eventType, VariantMap& eventData);
     /// Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
     /// Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
     VariantMap& GetEventDataMap() const;
     VariantMap& GetEventDataMap() const;
-#if URHO3D_CXX11
     /// Send event with variadic parameter pairs to all subscribers. The parameter pairs is a list of paramID and paramValue separated by comma, one pair after another.
     /// Send event with variadic parameter pairs to all subscribers. The parameter pairs is a list of paramID and paramValue separated by comma, one pair after another.
     template <typename... Args> void SendEvent(StringHash eventType, Args... args)
     template <typename... Args> void SendEvent(StringHash eventType, Args... args)
     {
     {
         SendEvent(eventType, GetEventDataMap().Populate(args...));
         SendEvent(eventType, GetEventDataMap().Populate(args...));
     }
     }
-#endif
 
 
     /// Return execution context.
     /// Return execution context.
     Context* GetContext() const { return context_; }
     Context* GetContext() const { return context_; }
@@ -318,7 +312,6 @@ private:
     HandlerFunctionPtr function_;
     HandlerFunctionPtr function_;
 };
 };
 
 
-#if URHO3D_CXX11
 /// Template implementation of the event handler invoke helper (std::function instance).
 /// Template implementation of the event handler invoke helper (std::function instance).
 class EventHandler11Impl : public EventHandler
 class EventHandler11Impl : public EventHandler
 {
 {
@@ -347,7 +340,6 @@ private:
     /// Class-specific pointer to handler function.
     /// Class-specific pointer to handler function.
     std::function<void(StringHash, VariantMap&)> function_;
     std::function<void(StringHash, VariantMap&)> function_;
 };
 };
-#endif
 
 
 /// Register event names.
 /// Register event names.
 struct URHO3D_API EventNameRegistrar
 struct URHO3D_API EventNameRegistrar

+ 0 - 4
Source/Urho3D/Engine/Console.cpp

@@ -376,14 +376,10 @@ void Console::HandleTextFinished(StringHash eventType, VariantMap& eventData)
         // Send the command as an event for script subsystem
         // Send the command as an event for script subsystem
         using namespace ConsoleCommand;
         using namespace ConsoleCommand;
 
 
-#if URHO3D_CXX11
-        SendEvent(E_CONSOLECOMMAND, P_COMMAND, line, P_ID, static_cast<Text*>(interpreters_->GetSelectedItem())->GetText());
-#else
         VariantMap& newEventData = GetEventDataMap();
         VariantMap& newEventData = GetEventDataMap();
         newEventData[P_COMMAND] = line;
         newEventData[P_COMMAND] = line;
         newEventData[P_ID] = static_cast<Text*>(interpreters_->GetSelectedItem())->GetText();
         newEventData[P_ID] = static_cast<Text*>(interpreters_->GetSelectedItem())->GetText();
         SendEvent(E_CONSOLECOMMAND, newEventData);
         SendEvent(E_CONSOLECOMMAND, newEventData);
-#endif
 
 
         // Make sure the line isn't the same as the last one
         // Make sure the line isn't the same as the last one
         if (history_.Empty() || line != history_.Back())
         if (history_.Empty() || line != history_.Back())

+ 0 - 3
Source/Urho3D/Urho2D/ParticleEffect2D.cpp

@@ -61,12 +61,9 @@ static const int destBlendFuncs[] =
     1       // GL_ONE
     1       // GL_ONE
 };
 };
 
 
-#if URHO3D_CXX11
 // Make sure that there are are as many blend functions as we have blend modes.
 // Make sure that there are are as many blend functions as we have blend modes.
 static_assert(sizeof(srcBlendFuncs) / sizeof(srcBlendFuncs[0]) == MAX_BLENDMODES, "");
 static_assert(sizeof(srcBlendFuncs) / sizeof(srcBlendFuncs[0]) == MAX_BLENDMODES, "");
 static_assert(sizeof(destBlendFuncs) / sizeof(destBlendFuncs[0]) == MAX_BLENDMODES, "");
 static_assert(sizeof(destBlendFuncs) / sizeof(destBlendFuncs[0]) == MAX_BLENDMODES, "");
-#endif
-
 
 
 ParticleEffect2D::ParticleEffect2D(Context* context) :
 ParticleEffect2D::ParticleEffect2D(Context* context) :
     Resource(context),
     Resource(context),