]> code.bitgloo.com Git - clyne/entityx.git/commitdiff
Revert "Switch to boost::signals2."
authorAlec Thomas <alec@swapoff.org>
Thu, 22 Aug 2013 02:57:32 +0000 (22:57 -0400)
committerAlec Thomas <alec@swapoff.org>
Thu, 22 Aug 2013 02:57:32 +0000 (22:57 -0400)
Until I have the time to make the tests work.

This reverts commit be03c3a3d4e8824c3b909648b46910b4cdbc72e1.

CHANGELOG.md [new file with mode: 0644]
CHANGES.md [deleted file]
CMakeLists.txt
README.md
entityx/Event.h
entityx/python/PythonSystem.h
entityx/python/entityx/tests/deep_subclass_test.py

diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644 (file)
index 0000000..acc0008
--- /dev/null
@@ -0,0 +1,22 @@
+# Change Log
+
+## 2013-08-18 - Destroying an entity invalidates all other references
+
+Previously, `Entity::Id` was a simple integer index (slot) into vectors in the `EntityManager`. EntityX also maintains a list of deleted entity slots that are reused when new entities are created. This reduces the size and frequency of vector reallocation. The downside though, was that if a slot was reused, entity IDs referencing the entity before reallocation would be invalidated on reuse.
+
+Each slot now also has a version number and a "valid" bit associated with it. When an entity is allocated the version is incremented and the valid bit set. When an entity is destroyed, the valid bit is cleared. `Entity::Id` now contains all of this information and can correctly determine if an ID is still valid across destroy/create.
+
+## 2013-08-17 - Python scripting, and a more robust build system
+
+Two big changes in this release:
+
+1. Python scripting support (alpha).
+    - Bridges the EntityX entity-component system into Python.
+    - Components and entities can both be defined in Python.
+    - Systems must still be defined in C++, for performance reasons.
+
+    Note that there is one major design difference between the Python ECS model and the C++ model: entities in Python can receive and handle events.
+    See the [README](https://github.com/alecthomas/entityx/blob/master/entityx/python/README.md) for help, and the [C++](https://github.com/alecthomas/entityx/blob/master/entityx/python/PythonSystem_test.cc) and [Python](https://github.com/alecthomas/entityx/tree/master/entityx/python/entityx/tests) test source for more examples.
+
+2. Made the build system much more robust, including automatic feature selection with manual override.
diff --git a/CHANGES.md b/CHANGES.md
deleted file mode 100644 (file)
index acc0008..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Change Log
-
-## 2013-08-18 - Destroying an entity invalidates all other references
-
-Previously, `Entity::Id` was a simple integer index (slot) into vectors in the `EntityManager`. EntityX also maintains a list of deleted entity slots that are reused when new entities are created. This reduces the size and frequency of vector reallocation. The downside though, was that if a slot was reused, entity IDs referencing the entity before reallocation would be invalidated on reuse.
-
-Each slot now also has a version number and a "valid" bit associated with it. When an entity is allocated the version is incremented and the valid bit set. When an entity is destroyed, the valid bit is cleared. `Entity::Id` now contains all of this information and can correctly determine if an ID is still valid across destroy/create.
-
-## 2013-08-17 - Python scripting, and a more robust build system
-
-Two big changes in this release:
-
-1. Python scripting support (alpha).
-    - Bridges the EntityX entity-component system into Python.
-    - Components and entities can both be defined in Python.
-    - Systems must still be defined in C++, for performance reasons.
-
-    Note that there is one major design difference between the Python ECS model and the C++ model: entities in Python can receive and handle events.
-    See the [README](https://github.com/alecthomas/entityx/blob/master/entityx/python/README.md) for help, and the [C++](https://github.com/alecthomas/entityx/blob/master/entityx/python/PythonSystem_test.cc) and [Python](https://github.com/alecthomas/entityx/tree/master/entityx/python/entityx/tests) test source for more examples.
-
-2. Made the build system much more robust, including automatic feature selection with manual override.
index 23206e780031d6b54976593d114c6c30eb2505c8..e53de9a6679c07133f3664dc3388824341cdacaa 100644 (file)
@@ -76,6 +76,7 @@ require(HAVE_STDINT_H "stdint.h")
 set(Boost_USE_STATIC_LIBS OFF)
 set(Boost_USE_MULTITHREADED ON)
 set(Boost_USE_STATIC_RUNTIME OFF)
+find_package(Boost 1.48.0 REQUIRED COMPONENTS signals)
 find_package(Boost 1.48.0 COMPONENTS python)
 
 include_directories(${Boost_INCLUDE_DIR})
@@ -134,7 +135,7 @@ if (Boost_PYTHON_LIBRARY)
 endif (Boost_PYTHON_LIBRARY)
 
 if (ENTITYX_BUILD_TESTING)
-    find_package(Boost 1.48.0 REQUIRED COMPONENTS timer system)
+    find_package(Boost 1.48.0 REQUIRED COMPONENTS signals timer system)
     add_subdirectory(gtest-1.6.0)
     include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
     enable_testing()
index a72ba20bfd778048e2056965ba379cdd99620476..0df1d74e2e83b43ebfe397c411a8318c72d00362 100644 (file)
--- a/README.md
+++ b/README.md
@@ -15,11 +15,10 @@ You can also contact me directly via [email](mailto:alec@swapoff.org) or [Twitte
 
 ## Recent Notable Changes
 
-- 2013-08-21 - Switch to `boost::signals2`.
 - 2013-08-18 - Destroying an entity invalidates all other references
 - 2013-08-17 - Python scripting, and a more robust build system
 
-See the [ChangeLog](https://github.com/alecthomas/entityx/blob/master/CHANGES.md) for details.
+See the [ChangeLog](https://github.com/alecthomas/entityx/blob/master/CHANGELOG.md) for details.
 
 ## Overview
 
@@ -256,7 +255,7 @@ EntityX has the following build and runtime requirements:
 
 - A C++ compiler that supports a basic set of C++11 features (ie. recent clang, recent gcc, and maybe (untested) VC++ with the [Nov 2012 CTP](http://www.microsoft.com/en-us/download/details.aspx?id=35515)).
 - [CMake](http://cmake.org/)
-- [Boost](http://boost.org) `1.48.0` or higher (links against `boost::signals2`).
+- [Boost](http://boost.org) `1.48.0` or higher (links against `boost::signals`).
 
 Once these dependencies are installed you should be able to build and install EntityX as below. The following options can be passed to cmake to modify how EntityX is built:
 
index 040306c2ee445ee66cc9ca02379f44fc58467ad1..8d3de6146916974212d5e135d46ffb237588cf67 100644 (file)
@@ -14,9 +14,8 @@
 #include <boost/bind.hpp>
 #include <boost/function.hpp>
 #include <boost/noncopyable.hpp>
-#include <boost/signals2.hpp>
+#include <boost/signal.hpp>
 #include <boost/unordered_map.hpp>
-#include <list>
 #include "entityx/config.h"
 
 
@@ -67,7 +66,7 @@ class BaseReceiver {
 
  private:
   friend class EventManager;
-  std::list<boost::signals2::connection> connections_;
+  std::list<boost::signals::connection> connections_;
 };
 
 
@@ -132,7 +131,7 @@ class EventManager : public entityx::enable_shared_from_this<EventManager>, boos
   }
 
  private:
-  typedef boost::signals2::signal<void (const BaseEvent*)> EventSignal;
+  typedef boost::signal<void (const BaseEvent*)> EventSignal;
   typedef entityx::shared_ptr<EventSignal> EventSignalPtr;
 
   EventManager() {}
index 5c6333c5cbef1b82532e9ea099a711c22d09c6ec..7001f23d3487a51416516c2bf542efd15c83c6ef 100644 (file)
@@ -23,9 +23,9 @@
 namespace std {
 
 // This may or may not work... it definitely does not work on OSX.
-// template <class T> inline T * get_pointer(const std::shared_ptr<T> &p) {
-//   return p.get();
-// }
+template <class T> inline T * get_pointer(const std::shared_ptr<T> &p) {
+  return p.get();
+}
 
 }
 
index 801b4877716fce0469ccca3ccd1b8ad82251e109..9c576b29004a307341b03c8c31c83f13b97a5f11 100644 (file)
@@ -21,6 +21,4 @@ class DeepSubclassTest2(DeepSubclassTest):
         assert self.direction
         assert self.position
         assert self.position2
-        assert self.position.x == self.position2.x and self.position.y == self.position2.y
-        self.position.x += 1
-        assert self.position.x == self.position2.x and self.position.y == self.position2.y
+        assert self.position is self.position2