Browse Source

updated xcode projects
fixed warnings
updated vs projects
added SlidingActor::stop
added KeyEvent
added shell scripts to examples

Denis Muratshin 11 years ago
parent
commit
f824e03749
100 changed files with 2695 additions and 172 deletions
  1. 2 2
      .hg_archival.txt
  2. 7 9
      .hgignore
  3. 0 1
      Android.mk
  4. 1 1
      CMakeLists.txt
  5. 10 5
      doc/Home.md
  6. 14 6
      doc/actors.md
  7. 5 0
      doc/colors.md
  8. 4 4
      doc/debug.md
  9. 286 0
      doc/events.md
  10. 2 2
      doc/filesystem.md
  11. 8 3
      doc/fonts.md
  12. BIN
      doc/img/actor.png
  13. BIN
      doc/img/box.jpg
  14. BIN
      doc/img/colors.png
  15. BIN
      doc/img/event_phases.png
  16. BIN
      doc/img/event_stopimprop.jpg
  17. BIN
      doc/img/event_stopprop.jpg
  18. BIN
      doc/img/event_target.jpg
  19. BIN
      doc/img/eventpath.jpg
  20. BIN
      doc/img/eventphases.jpg
  21. BIN
      doc/img/events_begin.png
  22. BIN
      doc/img/image_cols.png
  23. 143 0
      doc/resources.md
  24. 48 0
      doc/start.md
  25. 2 0
      examples/Demo/proj.android/ant_debug.sh
  26. 4 0
      examples/Demo/proj.android/build-run.sh
  27. 2 0
      examples/Demo/proj.android/build.sh
  28. 3 0
      examples/Demo/proj.android/install.sh
  29. 4 4
      examples/Demo/proj.ios/demo_ios.xcodeproj/project.pbxproj
  30. 3 5
      examples/Demo/proj.macosx/demo_macosx.xcodeproj/project.pbxproj
  31. 2 0
      examples/Demo/proj.win32/Demo_vs2010.vcxproj.user
  32. 2 0
      examples/Demo/proj.win32/Demo_vs2013.vcxproj.user
  33. 9 0
      examples/Demo/src/TestSliding.h
  34. 0 5
      examples/Demo/src/entry_point.cpp
  35. 51 0
      examples/DemoBox2D/proj.ios/DemoBox2D/DemoBox2D_ios-Info.plist
  36. 16 0
      examples/DemoBox2D/proj.ios/DemoBox2D/DemoBox2D_ios-Prefix.pch
  37. 53 0
      examples/DemoBox2D/proj.ios/DemoBox2D/Images.xcassets/AppIcon.appiconset/Contents.json
  38. 49 0
      examples/DemoBox2D/proj.ios/DemoBox2D/Images.xcassets/LaunchImage.launchimage/Contents.json
  39. 51 0
      examples/DemoBox2D/proj.ios/DemoBox2D/LaunchImage.launchimage/Contents.json
  40. 805 0
      examples/DemoBox2D/proj.ios/DemoBox2D_ios.xcodeproj/project.pbxproj
  41. 9 0
      examples/DemoBox2D/proj.macosx/DemoBox2D/DemoBox2D_macosx-Prefix.pch
  42. 58 0
      examples/DemoBox2D/proj.macosx/DemoBox2D/Images.xcassets/AppIcon.appiconset/Contents.json
  43. 34 0
      examples/DemoBox2D/proj.macosx/DemoBox2D_macosx-Info.plist
  44. 830 0
      examples/DemoBox2D/proj.macosx/DemoBox2D_macosx.xcodeproj/project.pbxproj
  45. 0 5
      examples/DemoBox2D/src/entry_point.cpp
  46. 2 0
      examples/Game/part1/proj.android/ant_debug.sh
  47. 4 0
      examples/Game/part1/proj.android/build-run.sh
  48. 2 0
      examples/Game/part1/proj.android/build.sh
  49. 3 0
      examples/Game/part1/proj.android/install.sh
  50. 4 4
      examples/Game/part1/proj.ios/GamePart1_ios.xcodeproj/project.pbxproj
  51. 3 5
      examples/Game/part1/proj.macosx/GamePart1_macosx.xcodeproj/project.pbxproj
  52. 2 0
      examples/Game/part1/proj.win32/GamePart1_vs2010.vcxproj.user
  53. 2 0
      examples/Game/part1/proj.win32/GamePart1_vs2013.vcxproj.user
  54. 0 5
      examples/Game/part1/src/entry_point.cpp
  55. 2 0
      examples/Game/part2/proj.android/ant_debug.sh
  56. 4 0
      examples/Game/part2/proj.android/build-run.sh
  57. 2 0
      examples/Game/part2/proj.android/build.sh
  58. 3 0
      examples/Game/part2/proj.android/install.sh
  59. 4 4
      examples/Game/part2/proj.ios/GamePart2_ios.xcodeproj/project.pbxproj
  60. 3 5
      examples/Game/part2/proj.macosx/GamePart2_macosx.xcodeproj/project.pbxproj
  61. 2 0
      examples/Game/part2/proj.win32/GamePart2_vs2010.vcxproj.user
  62. 2 0
      examples/Game/part2/proj.win32/GamePart2_vs2013.vcxproj.user
  63. 0 5
      examples/Game/part2/src/entry_point.cpp
  64. 2 0
      examples/Game/part3/proj.android/ant_debug.sh
  65. 4 0
      examples/Game/part3/proj.android/build-run.sh
  66. 2 0
      examples/Game/part3/proj.android/build.sh
  67. 3 0
      examples/Game/part3/proj.android/install.sh
  68. 4 4
      examples/Game/part3/proj.ios/GamePart3_ios.xcodeproj/project.pbxproj
  69. 3 5
      examples/Game/part3/proj.macosx/GamePart3_macosx.xcodeproj/project.pbxproj
  70. 2 0
      examples/Game/part3/proj.win32/GamePart3_vs2010.vcxproj.user
  71. 2 0
      examples/Game/part3/proj.win32/GamePart3_vs2013.vcxproj.user
  72. 0 5
      examples/Game/part3/src/entry_point.cpp
  73. 2 0
      examples/Game/part4/proj.android/ant_debug.sh
  74. 4 0
      examples/Game/part4/proj.android/build-run.sh
  75. 2 0
      examples/Game/part4/proj.android/build.sh
  76. 3 0
      examples/Game/part4/proj.android/install.sh
  77. 4 4
      examples/Game/part4/proj.ios/GamePart4_ios.xcodeproj/project.pbxproj
  78. 3 5
      examples/Game/part4/proj.macosx/GamePart4_macosx.xcodeproj/project.pbxproj
  79. 2 0
      examples/Game/part4/proj.win32/GamePart4_vs2010.vcxproj.user
  80. 2 0
      examples/Game/part4/proj.win32/GamePart4_vs2013.vcxproj.user
  81. 0 5
      examples/Game/part4/src/entry_point.cpp
  82. 2 0
      examples/HelloWorld/proj.android/ant_debug.sh
  83. 4 0
      examples/HelloWorld/proj.android/build-run.sh
  84. 2 0
      examples/HelloWorld/proj.android/build.sh
  85. 3 0
      examples/HelloWorld/proj.android/install.sh
  86. 26 22
      examples/HelloWorld/proj.ios/HelloWorld_ios.xcodeproj/project.pbxproj
  87. 25 23
      examples/HelloWorld/proj.macosx/HelloWorld_macosx.xcodeproj/project.pbxproj
  88. 2 0
      examples/HelloWorld/proj.win32/HelloWorld_vs2010.vcxproj.user
  89. 2 0
      examples/HelloWorld/proj.win32/HelloWorld_vs2013.vcxproj.user
  90. 0 5
      examples/HelloWorld/src/entry_point.cpp
  91. 2 0
      examples/Match3/proj.android/ant_debug.sh
  92. 4 0
      examples/Match3/proj.android/build-run.sh
  93. 2 0
      examples/Match3/proj.android/build.sh
  94. 3 0
      examples/Match3/proj.android/install.sh
  95. 4 4
      examples/Match3/proj.ios/Match3_ios.xcodeproj/project.pbxproj
  96. 3 5
      examples/Match3/proj.macosx/Match3_macosx.xcodeproj/project.pbxproj
  97. 2 0
      examples/Match3/proj.win32/Match3_vs2010.vcxproj.user
  98. 2 0
      examples/Match3/proj.win32/Match3_vs2013.vcxproj.user
  99. 0 5
      examples/Match3/src/entry_point.cpp
  100. 2 0
      examples/TutorialResources/proj.android/ant_debug.sh

+ 2 - 2
.hg_archival.txt

@@ -1,5 +1,5 @@
 repo: b6d71054df5712e643a0685bc3ba54b123db5729
 repo: b6d71054df5712e643a0685bc3ba54b123db5729
-node: 065a457ceefb7c90d7d8a08b8519bb4285254cf8
+node: 07d735c449664967a4f477c5e34481c7218f931a
 branch: default
 branch: default
 latesttag: oldrender
 latesttag: oldrender
-latesttagdistance: 366
+latesttagdistance: 391

+ 7 - 9
.hgignore

@@ -39,7 +39,6 @@ examples/Match3/build_match3_lib_vc10/
 examples/GameTemplate/build_gametemplate_lib_vc10/
 examples/GameTemplate/build_gametemplate_lib_vc10/
 examples/GameTemplate/build_gametemplate_lib_vc10
 examples/GameTemplate/build_gametemplate_lib_vc10
 examples/HelloWorld/data-ram/log.txt
 examples/HelloWorld/data-ram/log.txt
-examples/HelloWorld/data-ram/log.txt
 tools/out.xml
 tools/out.xml
 examples/SDL/HelloWorld/win32/
 examples/SDL/HelloWorld/win32/
 oxygine/SDL/win32/Release/
 oxygine/SDL/win32/Release/
@@ -61,9 +60,6 @@ examples/Demo/build_demo_src_vc10
 examples/Demo/win32/Debug
 examples/Demo/win32/Debug
 examples/Demo/data/*.dll
 examples/Demo/data/*.dll
 examples/Demo/win32/Release/
 examples/Demo/win32/Release/
-fccbuild
-examples/Demo/flash/vfsRootFSBackingStore.as
-examples/Demo/flash/VFS.abc
 *.orig
 *.orig
 oxygine/system_data/data2
 oxygine/system_data/data2
 examples/Demo/build_demo_src_vc11
 examples/Demo/build_demo_src_vc11
@@ -84,11 +80,7 @@ examples/DemoBox2D/build_box2d_vc11/
 examples/Demo/build_demo_vc11/
 examples/Demo/build_demo_vc11/
 examples/TutorialResources/build_tutorialresources_vc10
 examples/TutorialResources/build_tutorialresources_vc10
 examples/Game/part1/build_game_vc
 examples/Game/part1/build_game_vc
-examples/Game/part1/build_game_vc10/
-examples/Game/part2/build_game_vc10
-examples/Game/part3/build_game_vc10
-examples/Game/part4/build_game_vc10/
-examples/Game - Copy/
+examples/Game/part1/build_game_vc10
 examples/Demo/proj.marmalade/build_demo_vc10
 examples/Demo/proj.marmalade/build_demo_vc10
 examples/Demo/proj.win32/Debug
 examples/Demo/proj.win32/Debug
 examples/Demo/proj.win32/Release
 examples/Demo/proj.win32/Release
@@ -132,5 +124,11 @@ data.js
 examples/HelloWorld/proj.win32/Win32/
 examples/HelloWorld/proj.win32/Win32/
 ident.free
 ident.free
 examples/Game/part4/build_game_vc12/
 examples/Game/part4/build_game_vc12/
+Debug_vs2010
+Release_vs2010
+Debug_vs2013
+Release_vs2013
+examples/HelloWorld/proj.win32/Release/
+examples/Game/part4/build_game_vc10/
 syntax: regexp
 syntax: regexp
 ^build/
 ^build/

+ 0 - 1
Android.mk

@@ -73,5 +73,4 @@ LOCAL_WHOLE_STATIC_LIBRARIES := ox_libpng_static ox_libjpeg_static
 					
 					
 include $(BUILD_STATIC_LIBRARY)
 include $(BUILD_STATIC_LIBRARY)
 
 
-#$(call import-add-path, $(LOCAL_PATH)/../)
 $(call import-module, SDL)
 $(call import-module, SDL)

+ 1 - 1
CMakeLists.txt

@@ -83,8 +83,8 @@ set(OXYGINE_LIBRARY_DIRS
 set(CORE_LIBS 
 set(CORE_LIBS 
 	${CORE_LIBS}
 	${CORE_LIBS}
 	oxygine-framework
 	oxygine-framework
-	SDL2
 	SDL2main	
 	SDL2main	
+	SDL2	
 	${OPENGL_LIBRARIES}		
 	${OPENGL_LIBRARIES}		
 )
 )
 
 

+ 10 - 5
doc/Home.md

@@ -1,8 +1,13 @@
 #Oxygine Wiki
 #Oxygine Wiki
 Work in progress...
 Work in progress...
 
 
-1. [**Actors and SceneGraph**](actors)
-2. [Working with files](filesystem)
-3. [Debugging, Profiling and Logging](debug) 
-4. [Fonts](fonts)
-5. [Shaders](shaders)
+##Documentation
+1. [How To Start](start)
+1. [Actors and SceneGraph](actors)
+2. [Event Handling](events)
+3. [Working with files](filesystem)
+4. [Debugging, Profiling and Logging](debug) 
+5. [Fonts](fonts)
+6. [Shaders](shaders)
+7. [Resources](resources)
+8. [Colors Table](colors)

+ 14 - 6
doc/actors.md

@@ -4,7 +4,7 @@ Low level 2D frameworks provides you basic rendering functionality. Where you sh
 Oxygine isn't low level 2D framework and in addition to this it provides own scene graph.
 Oxygine isn't low level 2D framework and in addition to this it provides own scene graph.
 
 
 ##Example
 ##Example
-You could create Sprite, set position and image, attach it to scene and "forget". Sprite would be displayed and updated each frame automatically. You could say to this sprite "rotate on 360 degress for 2 secons 5 times and then remove self".
+You could create Sprite, set position and image, attach it to scene and "forget". Sprite would be displayed and updated each frame automatically. You could say to this sprite "rotate on 360 degrees for 2 seconds 5 times and then remove self".
 
 
 	spSrite sprite = new Sprite;
 	spSrite sprite = new Sprite;
 	sprite->attachTo(getRoot()); 
 	sprite->attachTo(getRoot()); 
@@ -13,7 +13,7 @@ You could create Sprite, set position and image, attach it to scene and "forget"
 > it is pseudocode, you also should set to sprite "image" resource or it would be empty and invisible  
 > it is pseudocode, you also should set to sprite "image" resource or it would be empty and invisible  
 > getRoot() returns root node of the scene graph
 > getRoot() returns root node of the scene graph
 
 
-you could create second *"child"* sprite attached to already created and they would be rotating both:
+You could create second *"child"* sprite attached to already created and they would be rotating both:
 
 
 	spSprite child = new Sprite;
 	spSprite child = new Sprite;
 	child->attachTo(sprite);
 	child->attachTo(sprite);
@@ -21,7 +21,7 @@ you could create second *"child"* sprite attached to already created and they wo
    
    
  
  
  
  
-![Actor inheritance](img/actor.gif)
+![Actor inheritance](img/actor.png)
  
  
  
  
 #Actors
 #Actors
@@ -33,17 +33,25 @@ Actor has properties:
 - name
 - name
 - list of children
 - list of children
 - list of added tweens 
 - list of added tweens 
-- etc
+- etc.
 
 
 
 
 You would widely use Sprites in your app.
 You would widely use Sprites in your app.
 
 
 ##Sprite
 ##Sprite
-Sprite is inhireted from Actor. Sprite = Actor + Image 
+Sprite is inherited from Actor. Sprite = Actor + Image 
 
 
 ##TextField
 ##TextField
 TextField is used for displaying text.
 TextField is used for displaying text.
 
 
 ##Progress Bar
 ##Progress Bar
-Brogress Bar is used for displaying progress.
+Progress Bar is used for displaying progress.
 
 
+##ColorRectSprite
+It is rectangle filled with one color.
+
+##ClipRectActor
+ClipRectActor is clipping outside childre.
+
+##MaskedSprite
+Sprite which is using other sprite for masking own children.

+ 5 - 0
doc/colors.md

@@ -0,0 +1,5 @@
+#Colors table
+
+Colors are available in the class **Color**.
+
+![](img/colors.png)

+ 4 - 4
doc/debug.md

@@ -1,5 +1,5 @@
 ##DebugActor 
 ##DebugActor 
-DebugActor displays some usefull stats. Some of them available only in Debug mode:
+DebugActor displays some useful stats. Some of them available only in Debug mode:
 
 
 - **fps** - frames per second
 - **fps** - frames per second
 - **objects** - number of created instances of Object. Debug only, to enable it in release define OXYGINE_DEBUG_TRACE_LEAKS
 - **objects** - number of created instances of Object. Debug only, to enable it in release define OXYGINE_DEBUG_TRACE_LEAKS
@@ -22,7 +22,7 @@ To display custom text on DebugActor (image above) call it each frame:
 
 
 1. **Textures inspector** shows all created and not deleted textures. Debug only, to enable it in release define OXYGINE_DEBUG_TRACE_LEAKS
 1. **Textures inspector** shows all created and not deleted textures. Debug only, to enable it in release define OXYGINE_DEBUG_TRACE_LEAKS
 2. **T2P** - Texel2Pixel. It shows "blurred" sprites displayed without texel to pixel precision on display
 2. **T2P** - Texel2Pixel. It shows "blurred" sprites displayed without texel to pixel precision on display
-3. **Finger** - Animates clicked actors under mouse cursor. Could be usefull to find out who blocked mouse events
+3. **Finger** - Animates clicked actors under mouse cursor. Could be useful to find out who blocked mouse events
 4. **Tree Inspector** show graph tree of actors with detailed info.
 4. **Tree Inspector** show graph tree of actors with detailed info.
 
 
 #Logging
 #Logging
@@ -62,7 +62,7 @@ result:
 	id = 4, name = '', typeid = 'class oxygine::Sprite', refs = 0
 	id = 4, name = '', typeid = 'class oxygine::Sprite', refs = 0
 	total: 2 -----------------------------
 	total: 2 -----------------------------
 
 
-There are some usefull functions:
+There are some useful functions:
 
 
 		/**Shows assert when object with this unique ID will be created.*/ 
 		/**Shows assert when object with this unique ID will be created.*/ 
 		ObjectBase::showAssertInCtor(int id);
 		ObjectBase::showAssertInCtor(int id);
@@ -72,4 +72,4 @@ There are some usefull functions:
 **"id"** is numeric identifier which could be retrieved from "allocated objects" list 
 **"id"** is numeric identifier which could be retrieved from "allocated objects" list 
 
 
 
 
-> Each example has leak guards (entry_point.cpp)
+> Each example has leak guards (entry_point.cpp)

+ 286 - 0
doc/events.md

@@ -0,0 +1,286 @@
+#Events
+Oxygine has events model taken from Adobe Flash (as3).
+This article is based on as3 article about events: [http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html](http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html)
+
+ 
+
+##EventDispatcher class
+
+Event handling in Oxygine depends heavily on the EventDispatcher class. 
+
+For those not familiar with EventDispatcher, the basic concept is this: 
+First you define functions (methods), or event handlers, to react to various events. Then you associate those functions with the events by using the addEventListener() method, which is called from the object that will receive the event. 
+
+The code using EventDispatcher looks like this:
+
+	void clickHandler(Event*) {}
+	submitButton.addEventListener(TouchEvent::CLICK, CLOSURE(this, &SomeClass::clickHandler));
+
+
+Using EventDispatcher, you use removeEventListener(). This method removes an event listener that matches the same definition used in addEventListener (up to the third parameter).
+
+	submitButton.removeEventListener(TouchEvent::CLICK, CLOSURE(this, &SomeClass::clickHandler));
+
+##Where is EventDispatcher?
+You may have noticed that the code snippets above do not explicitly reference EventDispatcher. In fact, it's rare that you would ever use EventDispatcher directly in your code. EventDispatcher, in Oxygine, is actually a base class, which other classes extend in order to be able to have access to addEventListener and other EventDispatcher methods. 
+
+
+##EventDispatcher methods
+Here is a summary of the methods in EventDispatcher:
+
+	int addEventListener(eventType type, EventCallback callback); 
+	void removeEventListener(eventType type, EventCallback callback);
+	void dispatchEvent(Event *event);
+
+* **addEventListener**: Adds an event handler function to listen to an event so that when that event occurs, the function will be called.
+* **removeEventListener**: Removes an event handler added to a listeners list using addEventListener. The same first 2 arguments used in addEventListener must be used in removeEventListener to remove the correct handler.
+
+> there are other simplified versions of removeEventListener
+
+* **dispatchEvent**: Sends the passed event to all listeners in the listeners list of an object that relates to the event type. This method is most commonly used when creating custom events.
+
+###Example 1: Clicking a box
+As a simple example, consider clicking on a square instance named "box" on the screen. The goal of this example is to handle that event so that the text "click" is traced in the Output panel when the box is clicked with the mouse.
+
+![](img/events_begin.png)
+
+
+	class Root : public ColorRectSprite
+	{
+	public:
+		void clickHandler(Event*)
+		{
+			log::messageln("click");
+		}
+	
+		Root()
+		{
+			setSize(300, 200);
+			setPosition(getStage()->getSize() / 2 - getSize() / 2);
+			setColor(Color::Silver);
+			spColorRectSprite box = new ColorRectSprite;
+			box->setColor(Color::Salmon);
+			box->setPosition(50, 50);
+			box->setSize(100, 100);
+			addChild(box);
+	
+			box->addEventListener(TouchEvent::CLICK, CLOSURE(this, &Root::clickHandler));
+		}
+	};
+
+To test this code example, do the following:
+
+* open HelloWorld example
+* copy paste code to example.cpp
+* add this code to example_init function:
+
+	getStage()->addChild(new Root);
+
+
+Let's take a look at the code. The first step is to define the event handler (listener function). As with all events, this accepts in its parameter list a single event instance that's automatically passed into the function when called from an event dispatcher. After that, the function is set as a listener to the box instance-the event dispatcher-listening for a *TouchEvent::CLICK* event using a basic addEventListener call. Since the box is an instance of ColorRectSprite it inherits from EventDispatcher and has access to all the EventDispatcher methods, including addEventListener.
+
+*TouchEvent::CLICK* is a constant variable defined in the TouchEvent class. It simply provides the unique integer idendifier of the event. Other event types are also stored in similar constants in the TouchEvent class, as well as other event-related classes. 
+
+Testing the example will display a clickable box that, when clicked, traces the word "click".
+
+
+###Event propagation and phases
+
+Although you might not have realized it in the previous example, the event that took place as a result of the box being clicked actually affects many different objects, not just the object being clicked. Event handling is the support for event propagation—the transference of a single event applying to multiple objects. Each of those objects receives the event, instead of just the object in which the event originated.
+
+With event propagation you're dealing with three "phases" of an event. Each phase represents a path or the location of an event as it works itself through the display objects in Oxygine that relate to that event. The three phases of an event are capturing, at target, and bubbling:
+
+* **Capturing phase**: This represents the parent objects of the target object from which the event originated. Any propagated event starts with the topmost parent (stage) and works down the display object hierarchy until reaching the original target.
+* **At target phase**: The target phase is the phase where the event is at the target object or the object from which the event originated. Unlike the capturing and bubbling phases, this phase always relates to only one object, the target object.
+* **Bubbling phase**: When an event "bubbles" it follows the reverse path of the capturing phase and works its way back up the parent hierarchy of the target object until reaching the top-most parent or stage.
+Not all propagated events (and not all events propagate) go through each phase, however. If the Stage object, for example, receives an event, there will only be an at target phase since there are no objects beyond the stage for the capturing or bubbling phases to take place.
+
+![](img/event_phases.png)
+
+
+As the event makes its way though each phase and each object within those phases, it calls all of the listener functions that were added for that event. This means that clicking on the box doesn't limit the event to the box; the Stage also receives the event. 
+
+![](img/eventpath.jpg)
+
+You can see how this all works more clearly by adding more listeners to our example.
+
+
+###Example 2: One box, many listeners
+
+To see how a single mouse click propagates through many objects within the display list hierarchy, you can add additional listeners to receive the event for each of those objects it affects. 
+
+In this example we will add listeners for Stage, Root, and box. 
+
+Clicking the box propagates the events throughout all specified listeners for all phases
+
+	class Root : public ColorRectSprite
+	{
+	public:
+		void boxClick(Event*)
+		{
+			log::messageln("box click");
+		}
+		void rootClick(Event*)
+		{
+			log::messageln("root click");
+		}
+		void stageClick(Event*)
+		{
+			log::messageln("stage click");
+		}
+		Root()
+		{
+			setSize(300, 200);
+			setPosition(getStage()->getSize() / 2 - getSize() / 2);
+			setColor(Color::Silver);
+			spColorRectSprite box = new ColorRectSprite;
+			box->setColor(Color::Salmon);
+			box->setPosition(50, 50);
+			box->setSize(100, 100);
+			addChild(box);
+	
+			getStage()->addEventListener(TouchEvent::CLICK, CLOSURE(this, &Root::stageClick));
+			box->addEventListener(TouchEvent::CLICK, CLOSURE(this, &Root::boxClick));
+			this->addEventListener(TouchEvent::CLICK, CLOSURE(this, &Root::rootClick));
+		}
+	};
+
+
+
+Test this example and click around to see the results. Clicking on the box should give you the following output:
+
+	box click
+	root click
+	stage click
+
+Try clicking anywhere off of the *box* and you get an output of:
+
+	root click
+	stage click
+
+or:
+
+	stage click
+
+##Event targeting
+
+All events, like mouse clicks, start off in Oxygine with the process of event targeting. This is the process by which Oxygine determines which object is the target of the event (where the event originates). In the previous examples we've seen how Oxygine was able to determine whether or not you clicked on the box or the Stage. For every mouse event, the event references one object—the object of highest arrangement capable of receiving the event.
+
+![](img/event_target.jpg)
+
+All display objects are, by default, enabled to receive touch events. This means that even if no event handlers have been assigned to a particular actor, it will still be targeted for an event when clicked, preventing anything below it from receiving events.
+
+To change this behavior use the *setTouchEnabled* setter. Setting it to false will disable an acotr instance from receiving touch events and allows other instances below it to be targeted for touch  events:
+
+	sprite->setTouchEnabled(false);
+
+###Event objects
+Event objects are the objects listener functions receive as an argument when called during the occurrence of an event. 
+
+The event objects received by listener method are always of the type Event but can also be a subclass of Event rather than specifically being an Event instance. Common subclasses include TouchEvent for events associated with the mouse. Each class also contains the event type constants used for listening to related events, e.g. TouchEvent::CLICK.
+
+###The stage
+The stage represents the topmost container of all actors within a application.
+
+Additionally, stage targeting for mouse events does not depend on stage contents as is the case with other objects. With the box example, you have the basic hierarchy of stage > root > box. To click on the box and have Oxygine target the box for the click event, you need to click on the shape that makes up the box. Similarly, to click on the root object, you need to click on its contents, or the box instance. Clicking anywhere else will not be clicking on root since root consists only of the box. For the stage, however, you can click on the stage by clicking anywhere on the movie because the stage exists everywhere as a persistent background for the application, even if there is no other content on the stage. 
+
+##Event properties
+
+Here is the basic rundown of common Event properties:
+
+	eventType type;
+	Phase phase;
+	bool bubbles;
+	spEventDispatcher target;
+	spEventDispatcher currentTarget;
+
+
+* **type**: The type of event being handled. This is the same as the first parameter used to add the function as a listener in addEventListener. Ex: TouchEvent::CLICK.
+
+* **eventPhase**: The current phase of the event. This is provided as a number that relates to the constants Event::phase_target, and Event::phase_bubbling, depending on which phase the listener is being called.
+
+* **bubbles**: Indicates whether or not the event is an event that bubbles. This does not mean that the event went through or is going through a bubbles phase, but rather it is a kind of event that can. When clicking just the stage in the previous example, the event did not bubble because stage was the only target. However, bubbles would still be true since the event was a mouse click.
+
+* **target**: The object which Oxygine targeted for the event. This is the object that would receive the event in the at target phase.
+
+* **currentTarget**: Refers to the object that is currently called by the listener when the event occurs. This is the same object on which addEventListener was called from when the listener was added.
+These properties can be useful in determining specific actions that need to be taken for various events.
+
+##Event methods
+
+There are also a few useful methods associated with Event objects. They include but are not limited to:
+
+	stopPropagation()
+	stopImmediatePropagation()
+	
+Here is a description of what some of these event methods can do:
+
+* **stopPropagation()**: When called within an event listener for an event that bubbles, it will stop the propagation of the event to the remaining objects which would otherwise receive the event within the current phase and any remaining phases.
+
+![](img/event_stopprop.jpg)
+
+* **stopImmediatePropagation()**: When called within an event listener for an event that bubbles, it will stop the propagation of the event within the current object as well as in remaining objects . This works much like stopPropagation except stopPropagation will not prevent additional events in the current object to be called (if there is more than one listener listening for the same event in the same object).
+
+![](img/event_stopimprop.jpg) 
+
+
+##Disable specific events within a container
+
+As I mentioned earlier, touch events are inherently enabled for all interactive objects in Oxygine. You can disable touch interaction by setting their **setTouchEnabled** property to false.
+
+Additionally, there's a similar property for actors that allow you to disable touch events for all children of that object - **setTouchChildrenEnabled**. By setting touchChildren to false, you can effectively prevent the mouse from being enabled for all instances within any actor.
+
+
+##Customizing events
+
+You can create your own events. This encompasses dispatching new or existing events, creating new types of events, and defining new event classes (based on the Event class) whose instances are to be passed to event handlers listening for that event.
+
+To dispatch events manually, you use the **dispatchEvent** method of EventDispatcher. When calling dispatchEvent you pass an event object that describes the event being dispatched. This event then makes its way through all valid targets (multiple if propagated) causing any event handlers assigned as listeners to those targets to be called (if they are listening for that particular type of event). When the handlers are called, they each receive the event object passed to dispatchEvent:
+
+	int type = 123;
+	Event event(type);
+	target->dispatchEvent(&event);
+
+New event instances are created with a type parameter and optional bubbles. By default, at least in the Event class, bubbles is false if not explicitly passed in as true. Subclasses of the Event class like TouchEvent accept even more parameters, and in the case of the TouchEvent class, the default setting for bubbles is true. 
+
+You can create your own event classes by extending the core Event class. These custom subclasses can be used in dispatching your own custom events and have properties of your own choosing. 
+
+
+###Custom event example
+
+Custom events are useful for indicating events which are not inherently recognized within Oxygine. By making your own Event classes, you can provide handlers for those events by specifying additional information relating to your custom event. 
+
+
+	class AchieveEarnedEvent: public Event
+	{
+	public:
+		enum {EVENT = makefourcc('A','c','E','r');}
+
+		string achievementID;
+
+		AchieveEarnedEvent(string id):Event(EVENT), achievementID(id){}
+	};
+
+
+**makefourcc** above is a preprocessor command to easy define unique integer value: 
+
+
+	#define makefourcc(a,b,c,d) ( ((unsigned int)a) | (((unsigned int)b)<< 8) | (((unsigned int)c)<<16) | (((unsigned int)d)<<24))
+
+Listen custom created event:
+
+	void SomeClass::achieveListener(Event *ev)
+	{
+		AchieveEarnedEvent* event = static_cast<AchieveEarnedEvent*>(ev);
+		log::messageln("achievement earned: %s", event->achievementID.c_str());
+	}
+
+	target->addEventListener(AchieveEarnedEvent::EVENT, CLOSURE(this, &SomeClass::achieveListener));
+
+
+Dispath event:	
+
+	AchieveEarnedEvent event("awesome");
+	target->dispatchEvent(&event);
+
+> examples/Game/Part4 has custom HiddenEvent in the class Scene

+ 2 - 2
doc/filesystem.md

@@ -84,7 +84,7 @@ Or you could check it with **oxygine::file::exists** function. It is slower than
 
 
 ##Mounting and zipped archieves to filesytem
 ##Mounting and zipped archieves to filesytem
 
 
-First step is mount ZipFileSystem. More than one archieve could be mounted at once:
+First step is mount ZipFileSystem. More than one archive could be mounted at once:
 
 
 	#include "core/ZipFileSystem.h"
 	#include "core/ZipFileSystem.h"
 
 
@@ -108,4 +108,4 @@ Read any data from file as usual:
 	}
 	}
 
 
 
 
-> ZipFileSystem is read only.
+> ZipFileSystem is read only.

+ 8 - 3
doc/fonts.md

@@ -1,5 +1,7 @@
 # Fonts
 # Fonts
-Oxygine supports image based fonts rendering.
+
+
+Oxygine supports image-based fonts rendering.
 Each font should be generated before running your application by *[BMFont](http://www.angelcode.com/products/bmfont/)* tool.
 Each font should be generated before running your application by *[BMFont](http://www.angelcode.com/products/bmfont/)* tool.
 Generated font consists of pair .png + .fnt file.
 Generated font consists of pair .png + .fnt file.
 ![font example](img/font.png)
 ![font example](img/font.png)
@@ -15,7 +17,9 @@ BMFont tool is located here:
 ![](img/bmfont.png)
 ![](img/bmfont.png)
 3. Select font, size and other settings
 3. Select font, size and other settings
 4. Export it *(Menu->Options->Save Bitmap Font As)* to folder with your app resources and add it to resources xml file	
 4. Export it *(Menu->Options->Save Bitmap Font As)* to folder with your app resources and add it to resources xml file	
+
 	`<font file="myfont.fnt" />`
 	`<font file="myfont.fnt" />`
+
 > see examples/HelloWorld/data/res.xml
 > see examples/HelloWorld/data/res.xml
 
 
 
 
@@ -24,7 +28,8 @@ Fonts could be automatically generated from BMFont configuration files (.bmfc) b
 
 
 Add this line to resources xml:
 Add this line to resources xml:
 
 
-    `<bmfc_font file="main.bmfc" chars="eng.txt"/>	`
+    <bmfc_font file="main.bmfc" chars="eng.txt"/>
+
 > see examples/Demo/data/demo/fonts.xml
 > see examples/Demo/data/demo/fonts.xml
 
 
 Where:
 Where:
@@ -33,4 +38,4 @@ Where:
 - chars="eng.txt" is text (TF-16 LE encoding) with symbols to export
 - chars="eng.txt" is text (TF-16 LE encoding) with symbols to export
 
 
 
 
-> read more about process_xml2.py tool
+> read more about process_xml2.py tool

BIN
doc/img/actor.png


BIN
doc/img/box.jpg


BIN
doc/img/colors.png


BIN
doc/img/event_phases.png


BIN
doc/img/event_stopimprop.jpg


BIN
doc/img/event_stopprop.jpg


BIN
doc/img/event_target.jpg


BIN
doc/img/eventpath.jpg


BIN
doc/img/eventphases.jpg


BIN
doc/img/events_begin.png


BIN
doc/img/image_cols.png


+ 143 - 0
doc/resources.md

@@ -0,0 +1,143 @@
+#Resources
+
+Oxygine has three common types of resources:
+ 
+* image
+* font
+* *atlas*
+
+ 
+All resources used in your application should be declared in special xml files.
+
+Here is simple xml example:
+
+	<resources>
+
+		<set path = "menu" />
+		<atlas>
+			<image file="close.png" />
+			<image file="button.png" />		
+			<image file="anim/run.png" />
+		</atlas>
+
+	</resources>
+
+It means: 
+
+* Generate atlas for group of images *menu/close.png, menu/anim/run.png, menu/button.png* into one atlas. 
+* Image "close.png" would be accessible "close"
+* Image "run.png" has 7 columns = 7 frames of single animation
+* Image "button.png" has 3 columns = 3 frames
+
+> You could have more than one *< atlas >* blocks.
+
+These resources would available in your application when you load xml. 
+You could access to them by id:
+
+	Resources menu;
+
+	void initMenu()
+	{
+		menu.loadXml("res.xml");
+		ResAnim *resClose = menu.getResAnim("close");
+		spSprite close = new Sprite;
+		close->setResAnim(resClose);
+	}
+
+
+> It is recommended to have many small xml files instead of the big one.
+	
+	
+##< Atlas >
+Atlas could have own id and format attribute:
+
+	<atlas format="565" id="some_id">
+
+Supported formats:
+
+* **8888** is set by default. Each channel has 8 bits
+* **565**, where R=5, G=6, B=5 bits, no alpha
+* **5551**, where R=5, G=5, B=5, A=1 bits
+* **4444**, where R=4, G=4, B=4, A=4 bits
+
+**format** option could be applied only to atlases generated in runtime or atlases without compression.
+
+By default, atlases are being generating in runtime. Oxygine has own tool to generate them before running application.   
+	
+
+##< Image >
+
+Each < image > should be declared only in **< atlas >**.
+
+###ID attribute
+ID's are **not** case sensitive.
+
+**ID** is optional attribute. By default, it would be set too value equal to filename without extension:
+
+	<image id="optional" file="path/to/filename.png" />
+
+> You could set custom id to any type of resource (not only image). 
+
+###Cols and Rows attributes
+
+**Cols** defines number of columns in image. 
+**Rows** defines number of rows in image.
+
+	<image .... cols = "3" rows = "2" />
+
+You could store multiple frames in one image.
+
+This pseudo code demonstrates usage of image with four columns and connecting it with game logic:
+
+	<image file="flags.png" cols="4" />
+![](img/image_cols.png)    
+
+	enum state
+	{
+		state_new = 0, 
+		state_fight = 1, 
+		state_refresh = 2,
+		state_pvp = 3
+	}
+	
+	state state = getLocationState();
+	int column = state; 
+	locationSprite->setResAnim(resources.getResAnim("flags"), column);
+
+###User data attributes
+Any type of resource could have custom user data associated with it. Custom attributes could have any name (except already reserved).
+
+	<image .... anim-delay = "123" offset-x = "200"/>
+
+Access to them:
+
+	ResAnim *rs = resources.getResAnim("anim");
+	int time = rs->getAttribute("anim-delay").as_int(0);
+	int offset = rs->getAttribute("offset-x").as_int(0);
+
+> You could set user data to any type of resource (not only image).
+
+
+##Paths
+Path to the current folder where resources should be found could be set in xml with:
+ 
+	<set path = "path/to/folder" />
+
+Path could be also set relative to the current xml. It should begin with **"./"**:
+
+	path = "./../images"
+
+
+
+##< Starling> / Sparrow atlas format
+
+Oxygine supports atlas format exported for Starling/Sparrow framework. 
+Declare it in the resources xml:
+ 
+	<starling file="atlas.xml" />
+
+
+Then use as usual resource:
+
+	ResAnim *rs = resources.getResAnim("image");
+

+ 48 - 0
doc/start.md

@@ -0,0 +1,48 @@
+#How To Start
+
+###Windows, MacOSX users
+[Download](http://oxygine.org/download.php) Oxygine. I recommend to download **All-In-One** version with SDL. It includes everything to fast and easy start and has prebuilt SDL binaries.
+
+Go to oxygine-framework/examples folder and open any of them. Each example has configuration folders for different platforms/OS:
+
+* **proj.win32** - solutions for VisualStudio
+* **proj.ios** - iOS xcode project
+* **proj.macosx** - MacOSX xcode project
+* *proj.android* - build folder for Android SDK/NDK
+* *proj.cmake* - CMake configuration folder
+* *proj.emscripten* - Emscripten configuration folder
+
+> to build for android, cmake, emscripten check **oxygine-framework/readme** folder
+
+###Advanced users 
+
+If you want to setup and build everything yourself then [download](http://oxygine.org/download.php) oxygine framework only.
+   
+Go to **oxygine-framework/readme** folder and follow instructions **readme.txt**
+
+###Marmalade SDK
+If you are *MarmaladeSDK* user then follow *Advanced users* in instructions.
+
+
+##Next Steps
+Oxygine has some tools written in Python and you need to install them for advanced usage.
+
+* [Download](https://www.python.org/downloads/) and install Python version 2.7.*
+* [Download](http://www.pythonware.com/products/pil/) and install PIL for Python
+
+
+##Generate own project 
+You could generate own project outside of oxygine-framework folder by **gen_template.py** tool. It is located in
+  
+	oxygine-framework/tools/
+
+Run **gen_template.py** script with Python, example:
+
+	python gen_template.py MyProjectName -t win32 -d path/to/MyProject/
+
+It would create empty solution *MyProject* for Visual Studio in the folder *path/to/MyProject*
+
+see for more info: 
+	
+	python gen_template.py --help
+

+ 2 - 0
examples/Demo/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

+ 4 - 0
examples/Demo/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 2 - 0
examples/Demo/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ndk-build NDK_MODULE_PATH=../../../../ $@

+ 3 - 0
examples/Demo/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+adb install -r bin/Demo-debug.apk
+adb shell am start -n org.oxygine.Demo/org.oxygine.Demo.MainActivity

+ 4 - 4
examples/Demo/proj.ios/demo_ios.xcodeproj/project.pbxproj

@@ -262,7 +262,7 @@
 		04998CE417F8A933003441C3 /* Project object */ = {
 		04998CE417F8A933003441C3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = Mac;
 				ORGANIZATIONNAME = Mac;
 			};
 			};
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "Demo_ios" */;
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "Demo_ios" */;
@@ -358,7 +358,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -388,7 +387,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
-				ONLY_ACTIVE_ARCH = YES;
+				ONLY_ACTIVE_ARCH = NO;
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
 				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
@@ -399,7 +398,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -446,6 +444,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../..//oxygine/third_party/ios/libraries",
 					"../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = YES;
 				PRODUCT_NAME = Demo_ios;
 				PRODUCT_NAME = Demo_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -469,6 +468,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../..//oxygine/third_party/ios/libraries",
 					"../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				PRODUCT_NAME = Demo_ios;
 				PRODUCT_NAME = Demo_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";

+ 3 - 5
examples/Demo/proj.macosx/demo_macosx.xcodeproj/project.pbxproj

@@ -282,7 +282,7 @@
 		049B57261871FBE900EF3C66 /* Project object */ = {
 		049B57261871FBE900EF3C66 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = oxygine;
 				ORGANIZATIONNAME = oxygine;
 			};
 			};
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "Demo_macosx" */;
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "Demo_macosx" */;
@@ -399,7 +399,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -439,7 +438,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -473,7 +471,7 @@
 		049B57601871FBE900EF3C66 /* Debug */ = {
 		049B57601871FBE900EF3C66 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -492,7 +490,7 @@
 		049B57611871FBE900EF3C66 /* Release */ = {
 		049B57611871FBE900EF3C66 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;

+ 2 - 0
examples/Demo/proj.win32/Demo_vs2010.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 2 - 0
examples/Demo/proj.win32/Demo_vs2013.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 9 - 0
examples/Demo/src/TestSliding.h

@@ -61,8 +61,17 @@ public:
 
 
 		toggle ts[] = {toggle("enable snap", 0), toggle("disable snap", 1)};
 		toggle ts[] = {toggle("enable snap", 0), toggle("disable snap", 1)};
 		addToggle("snap", ts, 2);
 		addToggle("snap", ts, 2);
+
+		addButton("stop", "stop");
 	}
 	}
 
 
+	void clicked(string id)
+	{
+		if (id == "stop")
+		{
+			_sliding->stop();
+		}
+	}
 
 
 	void toggleClicked(string id, const toggle *data)
 	void toggleClicked(string id, const toggle *data)
 	{
 	{

+ 0 - 5
examples/Demo/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 51 - 0
examples/DemoBox2D/proj.ios/DemoBox2D/DemoBox2D_ios-Info.plist

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIcons</key>
+	<dict/>
+	<key>CFBundleIcons~ipad</key>
+	<dict/>
+	<key>CFBundleIdentifier</key>
+	<string>oxygine.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UIStatusBarHidden</key>
+	<true/>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UIViewControllerBasedStatusBarAppearance</key>
+	<false/>
+</dict>
+</plist>

+ 16 - 0
examples/DemoBox2D/proj.ios/DemoBox2D/DemoBox2D_ios-Prefix.pch

@@ -0,0 +1,16 @@
+//
+//  Prefix header
+//
+//  The contents of this file are implicitly included at the beginning of every source file.
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <Foundation/Foundation.h>
+#endif

+ 53 - 0
examples/DemoBox2D/proj.ios/DemoBox2D/Images.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,53 @@
+{
+  "images" : [
+    {
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "size" : "60x60"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "76x76"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "76x76"
+    },
+    {
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "size" : "40x40"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "40x40"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "40x40"
+    },
+    {
+      "idiom" : "iphone",
+      "scale" : "2x",
+      "size" : "29x29"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "1x",
+      "size" : "29x29"
+    },
+    {
+      "idiom" : "ipad",
+      "scale" : "2x",
+      "size" : "29x29"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 49 - 0
examples/DemoBox2D/proj.ios/DemoBox2D/Images.xcassets/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,49 @@
+{
+  "images" : [
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "minimum-system-version" : "7.0",
+      "subtype" : "retina4",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "minimum-system-version" : "7.0",
+      "extent" : "full-screen",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 51 - 0
examples/DemoBox2D/proj.ios/DemoBox2D/LaunchImage.launchimage/Contents.json

@@ -0,0 +1,51 @@
+{
+  "images" : [
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "iphone",
+      "subtype" : "retina4",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "1x"
+    },
+    {
+      "orientation" : "portrait",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    },
+    {
+      "orientation" : "landscape",
+      "idiom" : "ipad",
+      "extent" : "full-screen",
+      "minimum-system-version" : "7.0",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 805 - 0
examples/DemoBox2D/proj.ios/DemoBox2D_ios.xcodeproj/project.pbxproj

@@ -0,0 +1,805 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		048AD0AE197D24AB001963EF /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 048AD0AD197D24AB001963EF /* CoreMotion.framework */; };
+		04998D3617F8A97D003441C3 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998D3517F8A96E003441C3 /* libSDL2.a */; };
+		04998EE617F8ADB4003441C3 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE117F8ADB4003441C3 /* libz.dylib */; };
+		04998EE717F8ADB4003441C3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE217F8ADB4003441C3 /* QuartzCore.framework */; };
+		04998EE817F8ADB4003441C3 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE317F8ADB4003441C3 /* AudioToolbox.framework */; };
+		04998EE917F8ADB4003441C3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE417F8ADB4003441C3 /* CoreAudio.framework */; };
+		04998EEA17F8ADB4003441C3 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EE517F8ADB4003441C3 /* OpenGLES.framework */; };
+		04998EEE17F8ADD4003441C3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EEB17F8ADD4003441C3 /* UIKit.framework */; };
+		04998EEF17F8ADD4003441C3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EEC17F8ADD4003441C3 /* Foundation.framework */; };
+		04998EF017F8ADD4003441C3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EED17F8ADD4003441C3 /* CoreGraphics.framework */; };
+		04998EF717F8B6F3003441C3 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EF517F8B6F3003441C3 /* libpng.a */; };
+		04998EF817F8B6F3003441C3 /* libjpeg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04998EF617F8B6F3003441C3 /* libjpeg.a */; };
+		049B52B11871EBFA00EF3C66 /* liboxygine_ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 049B52AD1871EBBA00EF3C66 /* liboxygine_ios.a */; };
+		04E9AD3F1876FE84006A7317 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 04E9AD3E1876FE84006A7317 /* Images.xcassets */; };
+		1E839D002B2BA83FC83A695A /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 04FE4D4FB640E0DF92DFB865 /* fonts */; };
+		2DC477AC10D6C07B3FE008F6 /* Box2DDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* Box2DDebugDraw.cpp */; };
+		3A631A475DE035FC53ADE5EA /* images in Resources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* images */; };
+		92908F4519C9EBFC0088BCA9 /* b2BroadPhase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EE519C9EBFB0088BCA9 /* b2BroadPhase.cpp */; };
+		92908F4619C9EBFC0088BCA9 /* b2CollideCircle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EE719C9EBFB0088BCA9 /* b2CollideCircle.cpp */; };
+		92908F4719C9EBFC0088BCA9 /* b2CollideEdge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EE819C9EBFB0088BCA9 /* b2CollideEdge.cpp */; };
+		92908F4819C9EBFC0088BCA9 /* b2CollidePolygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EE919C9EBFB0088BCA9 /* b2CollidePolygon.cpp */; };
+		92908F4919C9EBFC0088BCA9 /* b2Collision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EEA19C9EBFB0088BCA9 /* b2Collision.cpp */; };
+		92908F4A19C9EBFC0088BCA9 /* b2Distance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EEC19C9EBFB0088BCA9 /* b2Distance.cpp */; };
+		92908F4B19C9EBFC0088BCA9 /* b2DynamicTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EEE19C9EBFB0088BCA9 /* b2DynamicTree.cpp */; };
+		92908F4C19C9EBFC0088BCA9 /* b2TimeOfImpact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EF019C9EBFB0088BCA9 /* b2TimeOfImpact.cpp */; };
+		92908F4D19C9EBFC0088BCA9 /* b2CircleShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EF319C9EBFB0088BCA9 /* b2CircleShape.cpp */; };
+		92908F4E19C9EBFC0088BCA9 /* b2EdgeShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EF519C9EBFB0088BCA9 /* b2EdgeShape.cpp */; };
+		92908F4F19C9EBFC0088BCA9 /* b2LoopShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EF719C9EBFB0088BCA9 /* b2LoopShape.cpp */; };
+		92908F5019C9EBFC0088BCA9 /* b2PolygonShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EF919C9EBFB0088BCA9 /* b2PolygonShape.cpp */; };
+		92908F5119C9EBFC0088BCA9 /* b2BlockAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EFD19C9EBFB0088BCA9 /* b2BlockAllocator.cpp */; };
+		92908F5219C9EBFC0088BCA9 /* b2Draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908EFF19C9EBFB0088BCA9 /* b2Draw.cpp */; };
+		92908F5319C9EBFC0088BCA9 /* b2Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F0219C9EBFB0088BCA9 /* b2Math.cpp */; };
+		92908F5419C9EBFC0088BCA9 /* b2Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F0419C9EBFB0088BCA9 /* b2Settings.cpp */; };
+		92908F5519C9EBFC0088BCA9 /* b2StackAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F0619C9EBFB0088BCA9 /* b2StackAllocator.cpp */; };
+		92908F5619C9EBFC0088BCA9 /* b2Timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F0819C9EBFB0088BCA9 /* b2Timer.cpp */; };
+		92908F5719C9EBFC0088BCA9 /* b2Body.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F0B19C9EBFB0088BCA9 /* b2Body.cpp */; };
+		92908F5819C9EBFC0088BCA9 /* b2ContactManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F0D19C9EBFB0088BCA9 /* b2ContactManager.cpp */; };
+		92908F5919C9EBFC0088BCA9 /* b2Fixture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F0F19C9EBFB0088BCA9 /* b2Fixture.cpp */; };
+		92908F5A19C9EBFC0088BCA9 /* b2Island.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F1119C9EBFB0088BCA9 /* b2Island.cpp */; };
+		92908F5B19C9EBFC0088BCA9 /* b2World.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F1419C9EBFB0088BCA9 /* b2World.cpp */; };
+		92908F5C19C9EBFC0088BCA9 /* b2WorldCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F1619C9EBFB0088BCA9 /* b2WorldCallbacks.cpp */; };
+		92908F5D19C9EBFC0088BCA9 /* b2CircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F1919C9EBFB0088BCA9 /* b2CircleContact.cpp */; };
+		92908F5E19C9EBFC0088BCA9 /* b2Contact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F1B19C9EBFB0088BCA9 /* b2Contact.cpp */; };
+		92908F5F19C9EBFC0088BCA9 /* b2ContactSolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F1D19C9EBFC0088BCA9 /* b2ContactSolver.cpp */; };
+		92908F6019C9EBFC0088BCA9 /* b2EdgeAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F1F19C9EBFC0088BCA9 /* b2EdgeAndCircleContact.cpp */; };
+		92908F6119C9EBFC0088BCA9 /* b2EdgeAndPolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F2119C9EBFC0088BCA9 /* b2EdgeAndPolygonContact.cpp */; };
+		92908F6219C9EBFC0088BCA9 /* b2LoopAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F2319C9EBFC0088BCA9 /* b2LoopAndCircleContact.cpp */; };
+		92908F6319C9EBFC0088BCA9 /* b2LoopAndPolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F2519C9EBFC0088BCA9 /* b2LoopAndPolygonContact.cpp */; };
+		92908F6419C9EBFC0088BCA9 /* b2PolygonAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F2719C9EBFC0088BCA9 /* b2PolygonAndCircleContact.cpp */; };
+		92908F6519C9EBFC0088BCA9 /* b2PolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F2919C9EBFC0088BCA9 /* b2PolygonContact.cpp */; };
+		92908F6619C9EBFC0088BCA9 /* b2DistanceJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F2C19C9EBFC0088BCA9 /* b2DistanceJoint.cpp */; };
+		92908F6719C9EBFC0088BCA9 /* b2FrictionJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F2E19C9EBFC0088BCA9 /* b2FrictionJoint.cpp */; };
+		92908F6819C9EBFC0088BCA9 /* b2GearJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3019C9EBFC0088BCA9 /* b2GearJoint.cpp */; };
+		92908F6919C9EBFC0088BCA9 /* b2Joint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3219C9EBFC0088BCA9 /* b2Joint.cpp */; };
+		92908F6A19C9EBFC0088BCA9 /* b2MouseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3419C9EBFC0088BCA9 /* b2MouseJoint.cpp */; };
+		92908F6B19C9EBFC0088BCA9 /* b2PrismaticJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3619C9EBFC0088BCA9 /* b2PrismaticJoint.cpp */; };
+		92908F6C19C9EBFC0088BCA9 /* b2PulleyJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3819C9EBFC0088BCA9 /* b2PulleyJoint.cpp */; };
+		92908F6D19C9EBFC0088BCA9 /* b2RevoluteJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3A19C9EBFC0088BCA9 /* b2RevoluteJoint.cpp */; };
+		92908F6E19C9EBFC0088BCA9 /* b2RopeJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3C19C9EBFC0088BCA9 /* b2RopeJoint.cpp */; };
+		92908F6F19C9EBFC0088BCA9 /* b2WeldJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F3E19C9EBFC0088BCA9 /* b2WeldJoint.cpp */; };
+		92908F7019C9EBFC0088BCA9 /* b2WheelJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F4019C9EBFC0088BCA9 /* b2WheelJoint.cpp */; };
+		92908F7119C9EBFC0088BCA9 /* b2Rope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F4319C9EBFC0088BCA9 /* b2Rope.cpp */; };
+		C8860D93875589970329DCCD /* example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* example.cpp */; };
+		CD59C69314E9E74CD0A11E03 /* res.xml in Resources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* res.xml */; };
+		DA49ED8903C628BA578C8670 /* entry_point.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* entry_point.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		04998D3417F8A96E003441C3 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D2F17F8A96E003441C3 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = FD6526630DE8FCCB002AD96B;
+			remoteInfo = libSDL;
+		};
+		04998D3717F8A982003441C3 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D2F17F8A96E003441C3 /* SDL.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = FD6526620DE8FCCB002AD96B;
+			remoteInfo = libSDL;
+		};
+		049B52AC1871EBBA00EF3C66 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = C3E86F4C16EBC8A500052915;
+			remoteInfo = oxygine_ios;
+		};
+		049B52AF1871EBD100EF3C66 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = C3E86F4B16EBC8A500052915;
+			remoteInfo = oxygine_ios;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		048AD0AD197D24AB001963EF /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
+		04998CEC17F8A933003441C3 /* DemoBox2D_ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoBox2D_ios.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		04998D2F17F8A96E003441C3 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = "../../../..//SDL/Xcode-iOS/SDL/SDL.xcodeproj"; sourceTree = "<group>"; };
+		04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = oxygine_ios.xcodeproj; path = "../../..//oxygine/SDL/ios/oxygine/oxygine_ios.xcodeproj"; sourceTree = "<group>"; };
+		04998EE117F8ADB4003441C3 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+		04998EE217F8ADB4003441C3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+		04998EE317F8ADB4003441C3 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		04998EE417F8ADB4003441C3 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
+		04998EE517F8ADB4003441C3 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+		04998EEB17F8ADD4003441C3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		04998EEC17F8ADD4003441C3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		04998EED17F8ADD4003441C3 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		04998EF517F8B6F3003441C3 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../..//oxygine/third_party/ios/libraries/libpng.a"; sourceTree = "<group>"; };
+		04998EF617F8B6F3003441C3 /* libjpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjpeg.a; path = "../../..//oxygine/third_party/ios/libraries/libjpeg.a"; sourceTree = "<group>"; };
+		04E9AD3E1876FE84006A7317 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = DemoBox2D/Images.xcassets; sourceTree = "<group>"; };
+		04FE4D4FB640E0DF92DFB865 /* fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
+		0BF9628FC8D38F9748F0CDEB /* entry_point.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = entry_point.cpp; path = ../src/entry_point.cpp; sourceTree = "<group>"; };
+		360377333740D8A2FD15BBE6 /* Box2DDebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Box2DDebugDraw.cpp; path = ../src/Box2DDebugDraw.cpp; sourceTree = "<group>"; };
+		4DA100C319512824B7570663 /* example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
+		5DE458993031811A4C7D28C1 /* Box2DDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Box2DDebugDraw.h; path = ../src/Box2DDebugDraw.h; sourceTree = "<group>"; };
+		7F3B12E3C9D554D9FE28101D /* images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
+		92908EE319C9EBFB0088BCA9 /* Box2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Box2D.h; path = ../box2d/Box2D/Box2D.h; sourceTree = "<group>"; };
+		92908EE519C9EBFB0088BCA9 /* b2BroadPhase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BroadPhase.cpp; sourceTree = "<group>"; };
+		92908EE619C9EBFB0088BCA9 /* b2BroadPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BroadPhase.h; sourceTree = "<group>"; };
+		92908EE719C9EBFB0088BCA9 /* b2CollideCircle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollideCircle.cpp; sourceTree = "<group>"; };
+		92908EE819C9EBFB0088BCA9 /* b2CollideEdge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollideEdge.cpp; sourceTree = "<group>"; };
+		92908EE919C9EBFB0088BCA9 /* b2CollidePolygon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollidePolygon.cpp; sourceTree = "<group>"; };
+		92908EEA19C9EBFB0088BCA9 /* b2Collision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Collision.cpp; sourceTree = "<group>"; };
+		92908EEB19C9EBFB0088BCA9 /* b2Collision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Collision.h; sourceTree = "<group>"; };
+		92908EEC19C9EBFB0088BCA9 /* b2Distance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Distance.cpp; sourceTree = "<group>"; };
+		92908EED19C9EBFB0088BCA9 /* b2Distance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Distance.h; sourceTree = "<group>"; };
+		92908EEE19C9EBFB0088BCA9 /* b2DynamicTree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DynamicTree.cpp; sourceTree = "<group>"; };
+		92908EEF19C9EBFB0088BCA9 /* b2DynamicTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DynamicTree.h; sourceTree = "<group>"; };
+		92908EF019C9EBFB0088BCA9 /* b2TimeOfImpact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2TimeOfImpact.cpp; sourceTree = "<group>"; };
+		92908EF119C9EBFB0088BCA9 /* b2TimeOfImpact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeOfImpact.h; sourceTree = "<group>"; };
+		92908EF319C9EBFB0088BCA9 /* b2CircleShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleShape.cpp; sourceTree = "<group>"; };
+		92908EF419C9EBFB0088BCA9 /* b2CircleShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleShape.h; sourceTree = "<group>"; };
+		92908EF519C9EBFB0088BCA9 /* b2EdgeShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2EdgeShape.cpp; sourceTree = "<group>"; };
+		92908EF619C9EBFB0088BCA9 /* b2EdgeShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2EdgeShape.h; sourceTree = "<group>"; };
+		92908EF719C9EBFB0088BCA9 /* b2LoopShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LoopShape.cpp; sourceTree = "<group>"; };
+		92908EF819C9EBFB0088BCA9 /* b2LoopShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LoopShape.h; sourceTree = "<group>"; };
+		92908EF919C9EBFB0088BCA9 /* b2PolygonShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonShape.cpp; sourceTree = "<group>"; };
+		92908EFA19C9EBFB0088BCA9 /* b2PolygonShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonShape.h; sourceTree = "<group>"; };
+		92908EFB19C9EBFB0088BCA9 /* b2Shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Shape.h; sourceTree = "<group>"; };
+		92908EFD19C9EBFB0088BCA9 /* b2BlockAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BlockAllocator.cpp; sourceTree = "<group>"; };
+		92908EFE19C9EBFB0088BCA9 /* b2BlockAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BlockAllocator.h; sourceTree = "<group>"; };
+		92908EFF19C9EBFB0088BCA9 /* b2Draw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Draw.cpp; sourceTree = "<group>"; };
+		92908F0019C9EBFB0088BCA9 /* b2Draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Draw.h; sourceTree = "<group>"; };
+		92908F0119C9EBFB0088BCA9 /* b2GrowableStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2GrowableStack.h; sourceTree = "<group>"; };
+		92908F0219C9EBFB0088BCA9 /* b2Math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Math.cpp; sourceTree = "<group>"; };
+		92908F0319C9EBFB0088BCA9 /* b2Math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Math.h; sourceTree = "<group>"; };
+		92908F0419C9EBFB0088BCA9 /* b2Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Settings.cpp; sourceTree = "<group>"; };
+		92908F0519C9EBFB0088BCA9 /* b2Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Settings.h; sourceTree = "<group>"; };
+		92908F0619C9EBFB0088BCA9 /* b2StackAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2StackAllocator.cpp; sourceTree = "<group>"; };
+		92908F0719C9EBFB0088BCA9 /* b2StackAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2StackAllocator.h; sourceTree = "<group>"; };
+		92908F0819C9EBFB0088BCA9 /* b2Timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Timer.cpp; sourceTree = "<group>"; };
+		92908F0919C9EBFB0088BCA9 /* b2Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Timer.h; sourceTree = "<group>"; };
+		92908F0B19C9EBFB0088BCA9 /* b2Body.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Body.cpp; sourceTree = "<group>"; };
+		92908F0C19C9EBFB0088BCA9 /* b2Body.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Body.h; sourceTree = "<group>"; };
+		92908F0D19C9EBFB0088BCA9 /* b2ContactManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactManager.cpp; sourceTree = "<group>"; };
+		92908F0E19C9EBFB0088BCA9 /* b2ContactManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactManager.h; sourceTree = "<group>"; };
+		92908F0F19C9EBFB0088BCA9 /* b2Fixture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Fixture.cpp; sourceTree = "<group>"; };
+		92908F1019C9EBFB0088BCA9 /* b2Fixture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Fixture.h; sourceTree = "<group>"; };
+		92908F1119C9EBFB0088BCA9 /* b2Island.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Island.cpp; sourceTree = "<group>"; };
+		92908F1219C9EBFB0088BCA9 /* b2Island.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Island.h; sourceTree = "<group>"; };
+		92908F1319C9EBFB0088BCA9 /* b2TimeStep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeStep.h; sourceTree = "<group>"; };
+		92908F1419C9EBFB0088BCA9 /* b2World.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2World.cpp; sourceTree = "<group>"; };
+		92908F1519C9EBFB0088BCA9 /* b2World.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2World.h; sourceTree = "<group>"; };
+		92908F1619C9EBFB0088BCA9 /* b2WorldCallbacks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WorldCallbacks.cpp; sourceTree = "<group>"; };
+		92908F1719C9EBFB0088BCA9 /* b2WorldCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WorldCallbacks.h; sourceTree = "<group>"; };
+		92908F1919C9EBFB0088BCA9 /* b2CircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleContact.cpp; sourceTree = "<group>"; };
+		92908F1A19C9EBFB0088BCA9 /* b2CircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleContact.h; sourceTree = "<group>"; };
+		92908F1B19C9EBFB0088BCA9 /* b2Contact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Contact.cpp; sourceTree = "<group>"; };
+		92908F1C19C9EBFB0088BCA9 /* b2Contact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Contact.h; sourceTree = "<group>"; };
+		92908F1D19C9EBFC0088BCA9 /* b2ContactSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactSolver.cpp; sourceTree = "<group>"; };
+		92908F1E19C9EBFC0088BCA9 /* b2ContactSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactSolver.h; sourceTree = "<group>"; };
+		92908F1F19C9EBFC0088BCA9 /* b2EdgeAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2EdgeAndCircleContact.cpp; sourceTree = "<group>"; };
+		92908F2019C9EBFC0088BCA9 /* b2EdgeAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2EdgeAndCircleContact.h; sourceTree = "<group>"; };
+		92908F2119C9EBFC0088BCA9 /* b2EdgeAndPolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2EdgeAndPolygonContact.cpp; sourceTree = "<group>"; };
+		92908F2219C9EBFC0088BCA9 /* b2EdgeAndPolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2EdgeAndPolygonContact.h; sourceTree = "<group>"; };
+		92908F2319C9EBFC0088BCA9 /* b2LoopAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LoopAndCircleContact.cpp; sourceTree = "<group>"; };
+		92908F2419C9EBFC0088BCA9 /* b2LoopAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LoopAndCircleContact.h; sourceTree = "<group>"; };
+		92908F2519C9EBFC0088BCA9 /* b2LoopAndPolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LoopAndPolygonContact.cpp; sourceTree = "<group>"; };
+		92908F2619C9EBFC0088BCA9 /* b2LoopAndPolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LoopAndPolygonContact.h; sourceTree = "<group>"; };
+		92908F2719C9EBFC0088BCA9 /* b2PolygonAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonAndCircleContact.cpp; sourceTree = "<group>"; };
+		92908F2819C9EBFC0088BCA9 /* b2PolygonAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonAndCircleContact.h; sourceTree = "<group>"; };
+		92908F2919C9EBFC0088BCA9 /* b2PolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonContact.cpp; sourceTree = "<group>"; };
+		92908F2A19C9EBFC0088BCA9 /* b2PolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonContact.h; sourceTree = "<group>"; };
+		92908F2C19C9EBFC0088BCA9 /* b2DistanceJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DistanceJoint.cpp; sourceTree = "<group>"; };
+		92908F2D19C9EBFC0088BCA9 /* b2DistanceJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DistanceJoint.h; sourceTree = "<group>"; };
+		92908F2E19C9EBFC0088BCA9 /* b2FrictionJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2FrictionJoint.cpp; sourceTree = "<group>"; };
+		92908F2F19C9EBFC0088BCA9 /* b2FrictionJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2FrictionJoint.h; sourceTree = "<group>"; };
+		92908F3019C9EBFC0088BCA9 /* b2GearJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2GearJoint.cpp; sourceTree = "<group>"; };
+		92908F3119C9EBFC0088BCA9 /* b2GearJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2GearJoint.h; sourceTree = "<group>"; };
+		92908F3219C9EBFC0088BCA9 /* b2Joint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Joint.cpp; sourceTree = "<group>"; };
+		92908F3319C9EBFC0088BCA9 /* b2Joint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Joint.h; sourceTree = "<group>"; };
+		92908F3419C9EBFC0088BCA9 /* b2MouseJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2MouseJoint.cpp; sourceTree = "<group>"; };
+		92908F3519C9EBFC0088BCA9 /* b2MouseJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2MouseJoint.h; sourceTree = "<group>"; };
+		92908F3619C9EBFC0088BCA9 /* b2PrismaticJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PrismaticJoint.cpp; sourceTree = "<group>"; };
+		92908F3719C9EBFC0088BCA9 /* b2PrismaticJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PrismaticJoint.h; sourceTree = "<group>"; };
+		92908F3819C9EBFC0088BCA9 /* b2PulleyJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PulleyJoint.cpp; sourceTree = "<group>"; };
+		92908F3919C9EBFC0088BCA9 /* b2PulleyJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PulleyJoint.h; sourceTree = "<group>"; };
+		92908F3A19C9EBFC0088BCA9 /* b2RevoluteJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2RevoluteJoint.cpp; sourceTree = "<group>"; };
+		92908F3B19C9EBFC0088BCA9 /* b2RevoluteJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2RevoluteJoint.h; sourceTree = "<group>"; };
+		92908F3C19C9EBFC0088BCA9 /* b2RopeJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2RopeJoint.cpp; sourceTree = "<group>"; };
+		92908F3D19C9EBFC0088BCA9 /* b2RopeJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2RopeJoint.h; sourceTree = "<group>"; };
+		92908F3E19C9EBFC0088BCA9 /* b2WeldJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WeldJoint.cpp; sourceTree = "<group>"; };
+		92908F3F19C9EBFC0088BCA9 /* b2WeldJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WeldJoint.h; sourceTree = "<group>"; };
+		92908F4019C9EBFC0088BCA9 /* b2WheelJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WheelJoint.cpp; sourceTree = "<group>"; };
+		92908F4119C9EBFC0088BCA9 /* b2WheelJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WheelJoint.h; sourceTree = "<group>"; };
+		92908F4319C9EBFC0088BCA9 /* b2Rope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Rope.cpp; sourceTree = "<group>"; };
+		92908F4419C9EBFC0088BCA9 /* b2Rope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Rope.h; sourceTree = "<group>"; };
+		BA41FC88D76540A6905224D6 /* example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
+		F6123B1E6FE4471A00F49751 /* res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		04998CE917F8A933003441C3 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				049B52B11871EBFA00EF3C66 /* liboxygine_ios.a in Frameworks */,
+				04998D3617F8A97D003441C3 /* libSDL2.a in Frameworks */,
+				04998EF017F8ADD4003441C3 /* CoreGraphics.framework in Frameworks */,
+				048AD0AE197D24AB001963EF /* CoreMotion.framework in Frameworks */,
+				04998EEF17F8ADD4003441C3 /* Foundation.framework in Frameworks */,
+				04998EE617F8ADB4003441C3 /* libz.dylib in Frameworks */,
+				04998EE917F8ADB4003441C3 /* CoreAudio.framework in Frameworks */,
+				04998EF817F8B6F3003441C3 /* libjpeg.a in Frameworks */,
+				04998EEE17F8ADD4003441C3 /* UIKit.framework in Frameworks */,
+				04998EE817F8ADB4003441C3 /* AudioToolbox.framework in Frameworks */,
+				04998EE717F8ADB4003441C3 /* QuartzCore.framework in Frameworks */,
+				04998EEA17F8ADB4003441C3 /* OpenGLES.framework in Frameworks */,
+				04998EF717F8B6F3003441C3 /* libpng.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		045D531C17F8BD5E00CC2C64 /* dependencies */ = {
+			isa = PBXGroup;
+			children = (
+				04998EE117F8ADB4003441C3 /* libz.dylib */,
+				04998EF617F8B6F3003441C3 /* libjpeg.a */,
+				04998EF517F8B6F3003441C3 /* libpng.a */,
+			);
+			name = dependencies;
+			sourceTree = "<group>";
+		};
+		04998CE317F8A933003441C3 = {
+			isa = PBXGroup;
+			children = (
+				045D531C17F8BD5E00CC2C64 /* dependencies */,
+				04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */,
+				04998D2F17F8A96E003441C3 /* SDL.xcodeproj */,
+				04998D4417F8A9ED003441C3 /* src */,
+				04E9AD3E1876FE84006A7317 /* Images.xcassets */,
+				04998CF617F8A933003441C3 /* Supporting Files */,
+				04998CEE17F8A933003441C3 /* Frameworks */,
+				04998CED17F8A933003441C3 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		04998CED17F8A933003441C3 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04998CEC17F8A933003441C3 /* DemoBox2D_ios.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		04998CEE17F8A933003441C3 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				04998EEB17F8ADD4003441C3 /* UIKit.framework */,
+				048AD0AD197D24AB001963EF /* CoreMotion.framework */,
+				04998EEC17F8ADD4003441C3 /* Foundation.framework */,
+				04998EED17F8ADD4003441C3 /* CoreGraphics.framework */,
+				04998EE217F8ADB4003441C3 /* QuartzCore.framework */,
+				04998EE317F8ADB4003441C3 /* AudioToolbox.framework */,
+				04998EE417F8ADB4003441C3 /* CoreAudio.framework */,
+				04998EE517F8ADB4003441C3 /* OpenGLES.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		04998CF617F8A933003441C3 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				04FE4D4FB640E0DF92DFB865 /* fonts */,
+				7F3B12E3C9D554D9FE28101D /* images */,
+				F6123B1E6FE4471A00F49751 /* res.xml */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		04998D3017F8A96E003441C3 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04998D3517F8A96E003441C3 /* libSDL2.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		04998D4417F8A9ED003441C3 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				92908EE119C9EBE00088BCA9 /* box2d */,
+				360377333740D8A2FD15BBE6 /* Box2DDebugDraw.cpp */,
+				0BF9628FC8D38F9748F0CDEB /* entry_point.cpp */,
+				4DA100C319512824B7570663 /* example.cpp */,
+				5DE458993031811A4C7D28C1 /* Box2DDebugDraw.h */,
+				BA41FC88D76540A6905224D6 /* example.h */,
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		049B52A91871EBBA00EF3C66 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				049B52AD1871EBBA00EF3C66 /* liboxygine_ios.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		92908EE119C9EBE00088BCA9 /* box2d */ = {
+			isa = PBXGroup;
+			children = (
+				92908EE319C9EBFB0088BCA9 /* Box2D.h */,
+				92908EE419C9EBFB0088BCA9 /* Collision */,
+				92908EFC19C9EBFB0088BCA9 /* Common */,
+				92908F0A19C9EBFB0088BCA9 /* Dynamics */,
+				92908F4219C9EBFC0088BCA9 /* Rope */,
+			);
+			name = box2d;
+			sourceTree = "<group>";
+		};
+		92908EE419C9EBFB0088BCA9 /* Collision */ = {
+			isa = PBXGroup;
+			children = (
+				92908EE519C9EBFB0088BCA9 /* b2BroadPhase.cpp */,
+				92908EE619C9EBFB0088BCA9 /* b2BroadPhase.h */,
+				92908EE719C9EBFB0088BCA9 /* b2CollideCircle.cpp */,
+				92908EE819C9EBFB0088BCA9 /* b2CollideEdge.cpp */,
+				92908EE919C9EBFB0088BCA9 /* b2CollidePolygon.cpp */,
+				92908EEA19C9EBFB0088BCA9 /* b2Collision.cpp */,
+				92908EEB19C9EBFB0088BCA9 /* b2Collision.h */,
+				92908EEC19C9EBFB0088BCA9 /* b2Distance.cpp */,
+				92908EED19C9EBFB0088BCA9 /* b2Distance.h */,
+				92908EEE19C9EBFB0088BCA9 /* b2DynamicTree.cpp */,
+				92908EEF19C9EBFB0088BCA9 /* b2DynamicTree.h */,
+				92908EF019C9EBFB0088BCA9 /* b2TimeOfImpact.cpp */,
+				92908EF119C9EBFB0088BCA9 /* b2TimeOfImpact.h */,
+				92908EF219C9EBFB0088BCA9 /* Shapes */,
+			);
+			name = Collision;
+			path = ../box2d/Box2D/Collision;
+			sourceTree = "<group>";
+		};
+		92908EF219C9EBFB0088BCA9 /* Shapes */ = {
+			isa = PBXGroup;
+			children = (
+				92908EF319C9EBFB0088BCA9 /* b2CircleShape.cpp */,
+				92908EF419C9EBFB0088BCA9 /* b2CircleShape.h */,
+				92908EF519C9EBFB0088BCA9 /* b2EdgeShape.cpp */,
+				92908EF619C9EBFB0088BCA9 /* b2EdgeShape.h */,
+				92908EF719C9EBFB0088BCA9 /* b2LoopShape.cpp */,
+				92908EF819C9EBFB0088BCA9 /* b2LoopShape.h */,
+				92908EF919C9EBFB0088BCA9 /* b2PolygonShape.cpp */,
+				92908EFA19C9EBFB0088BCA9 /* b2PolygonShape.h */,
+				92908EFB19C9EBFB0088BCA9 /* b2Shape.h */,
+			);
+			path = Shapes;
+			sourceTree = "<group>";
+		};
+		92908EFC19C9EBFB0088BCA9 /* Common */ = {
+			isa = PBXGroup;
+			children = (
+				92908EFD19C9EBFB0088BCA9 /* b2BlockAllocator.cpp */,
+				92908EFE19C9EBFB0088BCA9 /* b2BlockAllocator.h */,
+				92908EFF19C9EBFB0088BCA9 /* b2Draw.cpp */,
+				92908F0019C9EBFB0088BCA9 /* b2Draw.h */,
+				92908F0119C9EBFB0088BCA9 /* b2GrowableStack.h */,
+				92908F0219C9EBFB0088BCA9 /* b2Math.cpp */,
+				92908F0319C9EBFB0088BCA9 /* b2Math.h */,
+				92908F0419C9EBFB0088BCA9 /* b2Settings.cpp */,
+				92908F0519C9EBFB0088BCA9 /* b2Settings.h */,
+				92908F0619C9EBFB0088BCA9 /* b2StackAllocator.cpp */,
+				92908F0719C9EBFB0088BCA9 /* b2StackAllocator.h */,
+				92908F0819C9EBFB0088BCA9 /* b2Timer.cpp */,
+				92908F0919C9EBFB0088BCA9 /* b2Timer.h */,
+			);
+			name = Common;
+			path = ../box2d/Box2D/Common;
+			sourceTree = "<group>";
+		};
+		92908F0A19C9EBFB0088BCA9 /* Dynamics */ = {
+			isa = PBXGroup;
+			children = (
+				92908F0B19C9EBFB0088BCA9 /* b2Body.cpp */,
+				92908F0C19C9EBFB0088BCA9 /* b2Body.h */,
+				92908F0D19C9EBFB0088BCA9 /* b2ContactManager.cpp */,
+				92908F0E19C9EBFB0088BCA9 /* b2ContactManager.h */,
+				92908F0F19C9EBFB0088BCA9 /* b2Fixture.cpp */,
+				92908F1019C9EBFB0088BCA9 /* b2Fixture.h */,
+				92908F1119C9EBFB0088BCA9 /* b2Island.cpp */,
+				92908F1219C9EBFB0088BCA9 /* b2Island.h */,
+				92908F1319C9EBFB0088BCA9 /* b2TimeStep.h */,
+				92908F1419C9EBFB0088BCA9 /* b2World.cpp */,
+				92908F1519C9EBFB0088BCA9 /* b2World.h */,
+				92908F1619C9EBFB0088BCA9 /* b2WorldCallbacks.cpp */,
+				92908F1719C9EBFB0088BCA9 /* b2WorldCallbacks.h */,
+				92908F1819C9EBFB0088BCA9 /* Contacts */,
+				92908F2B19C9EBFC0088BCA9 /* Joints */,
+			);
+			name = Dynamics;
+			path = ../box2d/Box2D/Dynamics;
+			sourceTree = "<group>";
+		};
+		92908F1819C9EBFB0088BCA9 /* Contacts */ = {
+			isa = PBXGroup;
+			children = (
+				92908F1919C9EBFB0088BCA9 /* b2CircleContact.cpp */,
+				92908F1A19C9EBFB0088BCA9 /* b2CircleContact.h */,
+				92908F1B19C9EBFB0088BCA9 /* b2Contact.cpp */,
+				92908F1C19C9EBFB0088BCA9 /* b2Contact.h */,
+				92908F1D19C9EBFC0088BCA9 /* b2ContactSolver.cpp */,
+				92908F1E19C9EBFC0088BCA9 /* b2ContactSolver.h */,
+				92908F1F19C9EBFC0088BCA9 /* b2EdgeAndCircleContact.cpp */,
+				92908F2019C9EBFC0088BCA9 /* b2EdgeAndCircleContact.h */,
+				92908F2119C9EBFC0088BCA9 /* b2EdgeAndPolygonContact.cpp */,
+				92908F2219C9EBFC0088BCA9 /* b2EdgeAndPolygonContact.h */,
+				92908F2319C9EBFC0088BCA9 /* b2LoopAndCircleContact.cpp */,
+				92908F2419C9EBFC0088BCA9 /* b2LoopAndCircleContact.h */,
+				92908F2519C9EBFC0088BCA9 /* b2LoopAndPolygonContact.cpp */,
+				92908F2619C9EBFC0088BCA9 /* b2LoopAndPolygonContact.h */,
+				92908F2719C9EBFC0088BCA9 /* b2PolygonAndCircleContact.cpp */,
+				92908F2819C9EBFC0088BCA9 /* b2PolygonAndCircleContact.h */,
+				92908F2919C9EBFC0088BCA9 /* b2PolygonContact.cpp */,
+				92908F2A19C9EBFC0088BCA9 /* b2PolygonContact.h */,
+			);
+			path = Contacts;
+			sourceTree = "<group>";
+		};
+		92908F2B19C9EBFC0088BCA9 /* Joints */ = {
+			isa = PBXGroup;
+			children = (
+				92908F2C19C9EBFC0088BCA9 /* b2DistanceJoint.cpp */,
+				92908F2D19C9EBFC0088BCA9 /* b2DistanceJoint.h */,
+				92908F2E19C9EBFC0088BCA9 /* b2FrictionJoint.cpp */,
+				92908F2F19C9EBFC0088BCA9 /* b2FrictionJoint.h */,
+				92908F3019C9EBFC0088BCA9 /* b2GearJoint.cpp */,
+				92908F3119C9EBFC0088BCA9 /* b2GearJoint.h */,
+				92908F3219C9EBFC0088BCA9 /* b2Joint.cpp */,
+				92908F3319C9EBFC0088BCA9 /* b2Joint.h */,
+				92908F3419C9EBFC0088BCA9 /* b2MouseJoint.cpp */,
+				92908F3519C9EBFC0088BCA9 /* b2MouseJoint.h */,
+				92908F3619C9EBFC0088BCA9 /* b2PrismaticJoint.cpp */,
+				92908F3719C9EBFC0088BCA9 /* b2PrismaticJoint.h */,
+				92908F3819C9EBFC0088BCA9 /* b2PulleyJoint.cpp */,
+				92908F3919C9EBFC0088BCA9 /* b2PulleyJoint.h */,
+				92908F3A19C9EBFC0088BCA9 /* b2RevoluteJoint.cpp */,
+				92908F3B19C9EBFC0088BCA9 /* b2RevoluteJoint.h */,
+				92908F3C19C9EBFC0088BCA9 /* b2RopeJoint.cpp */,
+				92908F3D19C9EBFC0088BCA9 /* b2RopeJoint.h */,
+				92908F3E19C9EBFC0088BCA9 /* b2WeldJoint.cpp */,
+				92908F3F19C9EBFC0088BCA9 /* b2WeldJoint.h */,
+				92908F4019C9EBFC0088BCA9 /* b2WheelJoint.cpp */,
+				92908F4119C9EBFC0088BCA9 /* b2WheelJoint.h */,
+			);
+			path = Joints;
+			sourceTree = "<group>";
+		};
+		92908F4219C9EBFC0088BCA9 /* Rope */ = {
+			isa = PBXGroup;
+			children = (
+				92908F4319C9EBFC0088BCA9 /* b2Rope.cpp */,
+				92908F4419C9EBFC0088BCA9 /* b2Rope.h */,
+			);
+			name = Rope;
+			path = ../box2d/Box2D/Rope;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		04998CEB17F8A933003441C3 /* DemoBox2D_ios */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 04998D2117F8A933003441C3 /* Build configuration list for PBXNativeTarget "DemoBox2D_ios" */;
+			buildPhases = (
+				04998CE817F8A933003441C3 /* Sources */,
+				04998CE917F8A933003441C3 /* Frameworks */,
+				04998CEA17F8A933003441C3 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				04998D3817F8A982003441C3 /* PBXTargetDependency */,
+				049B52B01871EBD100EF3C66 /* PBXTargetDependency */,
+			);
+			name = DemoBox2D_ios;
+			productName = DemoBox2D;
+			productReference = 04998CEC17F8A933003441C3 /* DemoBox2D_ios.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		04998CE417F8A933003441C3 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0510;
+				ORGANIZATIONNAME = Mac;
+			};
+			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "DemoBox2D_ios" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 04998CE317F8A933003441C3;
+			productRefGroup = 04998CED17F8A933003441C3 /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 049B52A91871EBBA00EF3C66 /* Products */;
+					ProjectRef = 04998D3917F8A9AA003441C3 /* oxygine_ios.xcodeproj */;
+				},
+				{
+					ProductGroup = 04998D3017F8A96E003441C3 /* Products */;
+					ProjectRef = 04998D2F17F8A96E003441C3 /* SDL.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				04998CEB17F8A933003441C3 /* DemoBox2D_ios */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		04998D3517F8A96E003441C3 /* libSDL2.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libSDL2.a;
+			remoteRef = 04998D3417F8A96E003441C3 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		049B52AD1871EBBA00EF3C66 /* liboxygine_ios.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = liboxygine_ios.a;
+			remoteRef = 049B52AC1871EBBA00EF3C66 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		04998CEA17F8A933003441C3 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				04E9AD3F1876FE84006A7317 /* Images.xcassets in Resources */,
+				1E839D002B2BA83FC83A695A /* fonts in Resources */,
+				3A631A475DE035FC53ADE5EA /* images in Resources */,
+				CD59C69314E9E74CD0A11E03 /* res.xml in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		04998CE817F8A933003441C3 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				92908F6A19C9EBFC0088BCA9 /* b2MouseJoint.cpp in Sources */,
+				92908F4919C9EBFC0088BCA9 /* b2Collision.cpp in Sources */,
+				92908F5F19C9EBFC0088BCA9 /* b2ContactSolver.cpp in Sources */,
+				92908F5319C9EBFC0088BCA9 /* b2Math.cpp in Sources */,
+				92908F6219C9EBFC0088BCA9 /* b2LoopAndCircleContact.cpp in Sources */,
+				92908F6919C9EBFC0088BCA9 /* b2Joint.cpp in Sources */,
+				92908F4F19C9EBFC0088BCA9 /* b2LoopShape.cpp in Sources */,
+				92908F6519C9EBFC0088BCA9 /* b2PolygonContact.cpp in Sources */,
+				92908F5819C9EBFC0088BCA9 /* b2ContactManager.cpp in Sources */,
+				92908F6019C9EBFC0088BCA9 /* b2EdgeAndCircleContact.cpp in Sources */,
+				92908F6D19C9EBFC0088BCA9 /* b2RevoluteJoint.cpp in Sources */,
+				2DC477AC10D6C07B3FE008F6 /* Box2DDebugDraw.cpp in Sources */,
+				92908F4A19C9EBFC0088BCA9 /* b2Distance.cpp in Sources */,
+				92908F5A19C9EBFC0088BCA9 /* b2Island.cpp in Sources */,
+				92908F5C19C9EBFC0088BCA9 /* b2WorldCallbacks.cpp in Sources */,
+				92908F4B19C9EBFC0088BCA9 /* b2DynamicTree.cpp in Sources */,
+				92908F5119C9EBFC0088BCA9 /* b2BlockAllocator.cpp in Sources */,
+				92908F5D19C9EBFC0088BCA9 /* b2CircleContact.cpp in Sources */,
+				92908F6E19C9EBFC0088BCA9 /* b2RopeJoint.cpp in Sources */,
+				92908F5219C9EBFC0088BCA9 /* b2Draw.cpp in Sources */,
+				92908F4E19C9EBFC0088BCA9 /* b2EdgeShape.cpp in Sources */,
+				92908F7119C9EBFC0088BCA9 /* b2Rope.cpp in Sources */,
+				92908F5019C9EBFC0088BCA9 /* b2PolygonShape.cpp in Sources */,
+				DA49ED8903C628BA578C8670 /* entry_point.cpp in Sources */,
+				92908F6B19C9EBFC0088BCA9 /* b2PrismaticJoint.cpp in Sources */,
+				92908F4D19C9EBFC0088BCA9 /* b2CircleShape.cpp in Sources */,
+				92908F5519C9EBFC0088BCA9 /* b2StackAllocator.cpp in Sources */,
+				92908F5719C9EBFC0088BCA9 /* b2Body.cpp in Sources */,
+				92908F6419C9EBFC0088BCA9 /* b2PolygonAndCircleContact.cpp in Sources */,
+				92908F5E19C9EBFC0088BCA9 /* b2Contact.cpp in Sources */,
+				92908F6719C9EBFC0088BCA9 /* b2FrictionJoint.cpp in Sources */,
+				92908F6F19C9EBFC0088BCA9 /* b2WeldJoint.cpp in Sources */,
+				92908F4C19C9EBFC0088BCA9 /* b2TimeOfImpact.cpp in Sources */,
+				92908F6819C9EBFC0088BCA9 /* b2GearJoint.cpp in Sources */,
+				92908F4619C9EBFC0088BCA9 /* b2CollideCircle.cpp in Sources */,
+				92908F5919C9EBFC0088BCA9 /* b2Fixture.cpp in Sources */,
+				92908F4519C9EBFC0088BCA9 /* b2BroadPhase.cpp in Sources */,
+				92908F5B19C9EBFC0088BCA9 /* b2World.cpp in Sources */,
+				92908F6319C9EBFC0088BCA9 /* b2LoopAndPolygonContact.cpp in Sources */,
+				C8860D93875589970329DCCD /* example.cpp in Sources */,
+				92908F5619C9EBFC0088BCA9 /* b2Timer.cpp in Sources */,
+				92908F6619C9EBFC0088BCA9 /* b2DistanceJoint.cpp in Sources */,
+				92908F6119C9EBFC0088BCA9 /* b2EdgeAndPolygonContact.cpp in Sources */,
+				92908F5419C9EBFC0088BCA9 /* b2Settings.cpp in Sources */,
+				92908F4819C9EBFC0088BCA9 /* b2CollidePolygon.cpp in Sources */,
+				92908F7019C9EBFC0088BCA9 /* b2WheelJoint.cpp in Sources */,
+				92908F4719C9EBFC0088BCA9 /* b2CollideEdge.cpp in Sources */,
+				92908F6C19C9EBFC0088BCA9 /* b2PulleyJoint.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		04998D3817F8A982003441C3 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = libSDL;
+			targetProxy = 04998D3717F8A982003441C3 /* PBXContainerItemProxy */;
+		};
+		049B52B01871EBD100EF3C66 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = oxygine_ios;
+			targetProxy = 049B52AF1871EBD100EF3C66 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		04998D1F17F8A933003441C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				ONLY_ACTIVE_ARCH = NO;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
+			};
+			name = Debug;
+		};
+		04998D2017F8A933003441C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = YES;
+				ENABLE_NS_ASSERTIONS = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		04998D2217F8A933003441C3 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "DemoBox2D/DemoBox2D_ios-Prefix.pch";
+				GCC_WARN_UNUSED_VALUE = YES;
+				GCC_WARN_UNUSED_VARIABLE = NO;
+				INFOPLIST_FILE = "DemoBox2D/DemoBox2D_ios-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../..//oxygine/third_party/ios/libraries",
+				);
+				ONLY_ACTIVE_ARCH = YES;
+				PRODUCT_NAME = DemoBox2D_ios;
+				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include ../box2d";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		04998D2317F8A933003441C3 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "DemoBox2D/DemoBox2D_ios-Prefix.pch";
+				GCC_WARN_UNUSED_VALUE = YES;
+				GCC_WARN_UNUSED_VARIABLE = NO;
+				INFOPLIST_FILE = "DemoBox2D/DemoBox2D_ios-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../..//oxygine/third_party/ios/libraries",
+				);
+				ONLY_ACTIVE_ARCH = NO;
+				PRODUCT_NAME = DemoBox2D_ios;
+				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include ../box2d";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		04998CE717F8A933003441C3 /* Build configuration list for PBXProject "DemoBox2D_ios" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				04998D1F17F8A933003441C3 /* Debug */,
+				04998D2017F8A933003441C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		04998D2117F8A933003441C3 /* Build configuration list for PBXNativeTarget "DemoBox2D_ios" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				04998D2217F8A933003441C3 /* Debug */,
+				04998D2317F8A933003441C3 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 04998CE417F8A933003441C3 /* Project object */;
+}

+ 9 - 0
examples/DemoBox2D/proj.macosx/DemoBox2D/DemoBox2D_macosx-Prefix.pch

@@ -0,0 +1,9 @@
+//
+//  Prefix header
+//
+//  The contents of this file are implicitly included at the beginning of every source file.
+//
+
+#ifdef __OBJC__
+    #import <Cocoa/Cocoa.h>
+#endif

+ 58 - 0
examples/DemoBox2D/proj.macosx/DemoBox2D/Images.xcassets/AppIcon.appiconset/Contents.json

@@ -0,0 +1,58 @@
+{
+  "images" : [
+    {
+      "idiom" : "mac",
+      "size" : "16x16",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "16x16",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "32x32",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "32x32",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "128x128",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "128x128",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "256x256",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "256x256",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "512x512",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "mac",
+      "size" : "512x512",
+      "scale" : "2x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}

+ 34 - 0
examples/DemoBox2D/proj.macosx/DemoBox2D_macosx-Info.plist

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>oxygine.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSMinimumSystemVersion</key>
+	<string>${MACOSX_DEPLOYMENT_TARGET}</string>
+	<key>NSHumanReadableCopyright</key>
+	<string>Copyright © 2013 oxygine. All rights reserved.</string>
+	<key>NSMainNibFile</key>
+	<string>MainMenu</string>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>

+ 830 - 0
examples/DemoBox2D/proj.macosx/DemoBox2D_macosx.xcodeproj/project.pbxproj

@@ -0,0 +1,830 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		04059FEA1872027500BA6557 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04A57D861872012D0068B1E5 /* SDL2.framework */; };
+		04059FEB1872027B00BA6557 /* liboxygine_macosx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FE41872026200BA6557 /* liboxygine_macosx.a */; };
+		04059FED187202A200BA6557 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FEC187202A200BA6557 /* libz.dylib */; };
+		04059FEF187202AC00BA6557 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FEE187202AC00BA6557 /* OpenGL.framework */; };
+		0405A00018720D2200BA6557 /* libjpeg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FF01872031A00BA6557 /* libjpeg.a */; };
+		0405A00118720D2200BA6557 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04059FF11872031A00BA6557 /* libpng.a */; };
+		049B57321871FBE900EF3C66 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 049B57311871FBE900EF3C66 /* Cocoa.framework */; };
+		049B574A1871FBE900EF3C66 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 049B57491871FBE900EF3C66 /* Images.xcassets */; };
+		1E839D002B2BA83FC83A695A /* fonts in Resources */ = {isa = PBXBuildFile; fileRef = 04FE4D4FB640E0DF92DFB865 /* fonts */; };
+		2DC477AC10D6C07B3FE008F6 /* Box2DDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* Box2DDebugDraw.cpp */; };
+		3A631A475DE035FC53ADE5EA /* images in Resources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* images */; };
+		92908FDB19C9ECC00088BCA9 /* b2BroadPhase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F7B19C9ECBF0088BCA9 /* b2BroadPhase.cpp */; };
+		92908FDC19C9ECC00088BCA9 /* b2CollideCircle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F7D19C9ECBF0088BCA9 /* b2CollideCircle.cpp */; };
+		92908FDD19C9ECC00088BCA9 /* b2CollideEdge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F7E19C9ECBF0088BCA9 /* b2CollideEdge.cpp */; };
+		92908FDE19C9ECC00088BCA9 /* b2CollidePolygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F7F19C9ECBF0088BCA9 /* b2CollidePolygon.cpp */; };
+		92908FDF19C9ECC00088BCA9 /* b2Collision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8019C9ECC00088BCA9 /* b2Collision.cpp */; };
+		92908FE019C9ECC00088BCA9 /* b2Distance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8219C9ECC00088BCA9 /* b2Distance.cpp */; };
+		92908FE119C9ECC00088BCA9 /* b2DynamicTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8419C9ECC00088BCA9 /* b2DynamicTree.cpp */; };
+		92908FE219C9ECC00088BCA9 /* b2TimeOfImpact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8619C9ECC00088BCA9 /* b2TimeOfImpact.cpp */; };
+		92908FE319C9ECC00088BCA9 /* b2CircleShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8919C9ECC00088BCA9 /* b2CircleShape.cpp */; };
+		92908FE419C9ECC00088BCA9 /* b2EdgeShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8B19C9ECC00088BCA9 /* b2EdgeShape.cpp */; };
+		92908FE519C9ECC00088BCA9 /* b2LoopShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8D19C9ECC00088BCA9 /* b2LoopShape.cpp */; };
+		92908FE619C9ECC00088BCA9 /* b2PolygonShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F8F19C9ECC00088BCA9 /* b2PolygonShape.cpp */; };
+		92908FE719C9ECC00088BCA9 /* b2BlockAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F9319C9ECC00088BCA9 /* b2BlockAllocator.cpp */; };
+		92908FE819C9ECC00088BCA9 /* b2Draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F9519C9ECC00088BCA9 /* b2Draw.cpp */; };
+		92908FE919C9ECC00088BCA9 /* b2Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F9819C9ECC00088BCA9 /* b2Math.cpp */; };
+		92908FEA19C9ECC00088BCA9 /* b2Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F9A19C9ECC00088BCA9 /* b2Settings.cpp */; };
+		92908FEB19C9ECC00088BCA9 /* b2StackAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F9C19C9ECC00088BCA9 /* b2StackAllocator.cpp */; };
+		92908FEC19C9ECC00088BCA9 /* b2Timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908F9E19C9ECC00088BCA9 /* b2Timer.cpp */; };
+		92908FED19C9ECC00088BCA9 /* b2Body.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FA119C9ECC00088BCA9 /* b2Body.cpp */; };
+		92908FEE19C9ECC00088BCA9 /* b2ContactManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FA319C9ECC00088BCA9 /* b2ContactManager.cpp */; };
+		92908FEF19C9ECC00088BCA9 /* b2Fixture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FA519C9ECC00088BCA9 /* b2Fixture.cpp */; };
+		92908FF019C9ECC00088BCA9 /* b2Island.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FA719C9ECC00088BCA9 /* b2Island.cpp */; };
+		92908FF119C9ECC00088BCA9 /* b2World.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FAA19C9ECC00088BCA9 /* b2World.cpp */; };
+		92908FF219C9ECC00088BCA9 /* b2WorldCallbacks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FAC19C9ECC00088BCA9 /* b2WorldCallbacks.cpp */; };
+		92908FF319C9ECC00088BCA9 /* b2CircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FAF19C9ECC00088BCA9 /* b2CircleContact.cpp */; };
+		92908FF419C9ECC00088BCA9 /* b2Contact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FB119C9ECC00088BCA9 /* b2Contact.cpp */; };
+		92908FF519C9ECC00088BCA9 /* b2ContactSolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FB319C9ECC00088BCA9 /* b2ContactSolver.cpp */; };
+		92908FF619C9ECC00088BCA9 /* b2EdgeAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FB519C9ECC00088BCA9 /* b2EdgeAndCircleContact.cpp */; };
+		92908FF719C9ECC00088BCA9 /* b2EdgeAndPolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FB719C9ECC00088BCA9 /* b2EdgeAndPolygonContact.cpp */; };
+		92908FF819C9ECC00088BCA9 /* b2LoopAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FB919C9ECC00088BCA9 /* b2LoopAndCircleContact.cpp */; };
+		92908FF919C9ECC00088BCA9 /* b2LoopAndPolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FBB19C9ECC00088BCA9 /* b2LoopAndPolygonContact.cpp */; };
+		92908FFA19C9ECC00088BCA9 /* b2PolygonAndCircleContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FBD19C9ECC00088BCA9 /* b2PolygonAndCircleContact.cpp */; };
+		92908FFB19C9ECC00088BCA9 /* b2PolygonContact.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FBF19C9ECC00088BCA9 /* b2PolygonContact.cpp */; };
+		92908FFC19C9ECC00088BCA9 /* b2DistanceJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FC219C9ECC00088BCA9 /* b2DistanceJoint.cpp */; };
+		92908FFD19C9ECC00088BCA9 /* b2FrictionJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FC419C9ECC00088BCA9 /* b2FrictionJoint.cpp */; };
+		92908FFE19C9ECC00088BCA9 /* b2GearJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FC619C9ECC00088BCA9 /* b2GearJoint.cpp */; };
+		92908FFF19C9ECC00088BCA9 /* b2Joint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FC819C9ECC00088BCA9 /* b2Joint.cpp */; };
+		9290900019C9ECC00088BCA9 /* b2MouseJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FCA19C9ECC00088BCA9 /* b2MouseJoint.cpp */; };
+		9290900119C9ECC00088BCA9 /* b2PrismaticJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FCC19C9ECC00088BCA9 /* b2PrismaticJoint.cpp */; };
+		9290900219C9ECC00088BCA9 /* b2PulleyJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FCE19C9ECC00088BCA9 /* b2PulleyJoint.cpp */; };
+		9290900319C9ECC00088BCA9 /* b2RevoluteJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FD019C9ECC00088BCA9 /* b2RevoluteJoint.cpp */; };
+		9290900419C9ECC00088BCA9 /* b2RopeJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FD219C9ECC00088BCA9 /* b2RopeJoint.cpp */; };
+		9290900519C9ECC00088BCA9 /* b2WeldJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FD419C9ECC00088BCA9 /* b2WeldJoint.cpp */; };
+		9290900619C9ECC00088BCA9 /* b2WheelJoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FD619C9ECC00088BCA9 /* b2WheelJoint.cpp */; };
+		9290900719C9ECC00088BCA9 /* b2Rope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 92908FD919C9ECC00088BCA9 /* b2Rope.cpp */; };
+		C8860D93875589970329DCCD /* example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* example.cpp */; };
+		CD59C69314E9E74CD0A11E03 /* res.xml in Resources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* res.xml */; };
+		DA49ED8903C628BA578C8670 /* entry_point.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* entry_point.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		04059FE31872026200BA6557 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = 049B52BB1871EDE900EF3C66;
+			remoteInfo = oxygine_macosx;
+		};
+		04059FE81872027200BA6557 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = 049B52BA1871EDE900EF3C66;
+			remoteInfo = oxygine_macosx;
+		};
+		04A57D851872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BECDF66C0761BA81005FE872;
+			remoteInfo = Framework;
+		};
+		04A57D871872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BECDF6B30761BA81005FE872;
+			remoteInfo = "Static Library";
+		};
+		04A57D891872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = DB31407717554B71006C0E22;
+			remoteInfo = "Shared Library";
+		};
+		04A57D8B1872012D0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = BECDF6BE0761BA81005FE872;
+			remoteInfo = "Standard DMG";
+		};
+		04A57D8E187201EF0068B1E5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = BECDF5FE0761BA81005FE872;
+			remoteInfo = Framework;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		04059FEC187202A200BA6557 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+		04059FEE187202AC00BA6557 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
+		04059FF01872031A00BA6557 /* libjpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjpeg.a; path = "../../..//oxygine/third_party/macosx/libraries/libjpeg.a"; sourceTree = "<group>"; };
+		04059FF11872031A00BA6557 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../..//oxygine/third_party/macosx/libraries/libpng.a"; sourceTree = "<group>"; };
+		04059FF4187203A600BA6557 /* libjpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjpeg.a; path = "../../..//oxygine/third_party/ios/libraries/libjpeg.a"; sourceTree = "<group>"; };
+		04059FF5187203A600BA6557 /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../..//oxygine/third_party/ios/libraries/libpng.a"; sourceTree = "<group>"; };
+		049B572E1871FBE900EF3C66 /* DemoBox2D_macosx.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoBox2D_macosx.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		049B57311871FBE900EF3C66 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		049B57341871FBE900EF3C66 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
+		049B57351871FBE900EF3C66 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
+		049B57361871FBE900EF3C66 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		049B57391871FBE900EF3C66 /* DemoBox2D_macosx-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "DemoBox2D_macosx-Info.plist"; sourceTree = "<group>"; };
+		049B57491871FBE900EF3C66 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = DemoBox2D/Images.xcassets; sourceTree = "<group>"; };
+		049B57501871FBE900EF3C66 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
+		04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = oxygine_macosx.xcodeproj; path = "../../..//oxygine/SDL/macosx/oxygine_macosx/oxygine_macosx.xcodeproj"; sourceTree = "<group>"; };
+		04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = "../../../..//SDL/Xcode/SDL/SDL.xcodeproj"; sourceTree = "<group>"; };
+		04FE4D4FB640E0DF92DFB865 /* fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
+		0BF9628FC8D38F9748F0CDEB /* entry_point.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = entry_point.cpp; path = ../src/entry_point.cpp; sourceTree = "<group>"; };
+		360377333740D8A2FD15BBE6 /* Box2DDebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Box2DDebugDraw.cpp; path = ../src/Box2DDebugDraw.cpp; sourceTree = "<group>"; };
+		4DA100C319512824B7570663 /* example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
+		5DE458993031811A4C7D28C1 /* Box2DDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Box2DDebugDraw.h; path = ../src/Box2DDebugDraw.h; sourceTree = "<group>"; };
+		7F3B12E3C9D554D9FE28101D /* images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
+		92908F7919C9ECBF0088BCA9 /* Box2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Box2D.h; sourceTree = "<group>"; };
+		92908F7B19C9ECBF0088BCA9 /* b2BroadPhase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BroadPhase.cpp; sourceTree = "<group>"; };
+		92908F7C19C9ECBF0088BCA9 /* b2BroadPhase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BroadPhase.h; sourceTree = "<group>"; };
+		92908F7D19C9ECBF0088BCA9 /* b2CollideCircle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollideCircle.cpp; sourceTree = "<group>"; };
+		92908F7E19C9ECBF0088BCA9 /* b2CollideEdge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollideEdge.cpp; sourceTree = "<group>"; };
+		92908F7F19C9ECBF0088BCA9 /* b2CollidePolygon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CollidePolygon.cpp; sourceTree = "<group>"; };
+		92908F8019C9ECC00088BCA9 /* b2Collision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Collision.cpp; sourceTree = "<group>"; };
+		92908F8119C9ECC00088BCA9 /* b2Collision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Collision.h; sourceTree = "<group>"; };
+		92908F8219C9ECC00088BCA9 /* b2Distance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Distance.cpp; sourceTree = "<group>"; };
+		92908F8319C9ECC00088BCA9 /* b2Distance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Distance.h; sourceTree = "<group>"; };
+		92908F8419C9ECC00088BCA9 /* b2DynamicTree.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DynamicTree.cpp; sourceTree = "<group>"; };
+		92908F8519C9ECC00088BCA9 /* b2DynamicTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DynamicTree.h; sourceTree = "<group>"; };
+		92908F8619C9ECC00088BCA9 /* b2TimeOfImpact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2TimeOfImpact.cpp; sourceTree = "<group>"; };
+		92908F8719C9ECC00088BCA9 /* b2TimeOfImpact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeOfImpact.h; sourceTree = "<group>"; };
+		92908F8919C9ECC00088BCA9 /* b2CircleShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleShape.cpp; sourceTree = "<group>"; };
+		92908F8A19C9ECC00088BCA9 /* b2CircleShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleShape.h; sourceTree = "<group>"; };
+		92908F8B19C9ECC00088BCA9 /* b2EdgeShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2EdgeShape.cpp; sourceTree = "<group>"; };
+		92908F8C19C9ECC00088BCA9 /* b2EdgeShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2EdgeShape.h; sourceTree = "<group>"; };
+		92908F8D19C9ECC00088BCA9 /* b2LoopShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LoopShape.cpp; sourceTree = "<group>"; };
+		92908F8E19C9ECC00088BCA9 /* b2LoopShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LoopShape.h; sourceTree = "<group>"; };
+		92908F8F19C9ECC00088BCA9 /* b2PolygonShape.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonShape.cpp; sourceTree = "<group>"; };
+		92908F9019C9ECC00088BCA9 /* b2PolygonShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonShape.h; sourceTree = "<group>"; };
+		92908F9119C9ECC00088BCA9 /* b2Shape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Shape.h; sourceTree = "<group>"; };
+		92908F9319C9ECC00088BCA9 /* b2BlockAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2BlockAllocator.cpp; sourceTree = "<group>"; };
+		92908F9419C9ECC00088BCA9 /* b2BlockAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2BlockAllocator.h; sourceTree = "<group>"; };
+		92908F9519C9ECC00088BCA9 /* b2Draw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Draw.cpp; sourceTree = "<group>"; };
+		92908F9619C9ECC00088BCA9 /* b2Draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Draw.h; sourceTree = "<group>"; };
+		92908F9719C9ECC00088BCA9 /* b2GrowableStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2GrowableStack.h; sourceTree = "<group>"; };
+		92908F9819C9ECC00088BCA9 /* b2Math.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Math.cpp; sourceTree = "<group>"; };
+		92908F9919C9ECC00088BCA9 /* b2Math.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Math.h; sourceTree = "<group>"; };
+		92908F9A19C9ECC00088BCA9 /* b2Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Settings.cpp; sourceTree = "<group>"; };
+		92908F9B19C9ECC00088BCA9 /* b2Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Settings.h; sourceTree = "<group>"; };
+		92908F9C19C9ECC00088BCA9 /* b2StackAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2StackAllocator.cpp; sourceTree = "<group>"; };
+		92908F9D19C9ECC00088BCA9 /* b2StackAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2StackAllocator.h; sourceTree = "<group>"; };
+		92908F9E19C9ECC00088BCA9 /* b2Timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Timer.cpp; sourceTree = "<group>"; };
+		92908F9F19C9ECC00088BCA9 /* b2Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Timer.h; sourceTree = "<group>"; };
+		92908FA119C9ECC00088BCA9 /* b2Body.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Body.cpp; sourceTree = "<group>"; };
+		92908FA219C9ECC00088BCA9 /* b2Body.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Body.h; sourceTree = "<group>"; };
+		92908FA319C9ECC00088BCA9 /* b2ContactManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactManager.cpp; sourceTree = "<group>"; };
+		92908FA419C9ECC00088BCA9 /* b2ContactManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactManager.h; sourceTree = "<group>"; };
+		92908FA519C9ECC00088BCA9 /* b2Fixture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Fixture.cpp; sourceTree = "<group>"; };
+		92908FA619C9ECC00088BCA9 /* b2Fixture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Fixture.h; sourceTree = "<group>"; };
+		92908FA719C9ECC00088BCA9 /* b2Island.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Island.cpp; sourceTree = "<group>"; };
+		92908FA819C9ECC00088BCA9 /* b2Island.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Island.h; sourceTree = "<group>"; };
+		92908FA919C9ECC00088BCA9 /* b2TimeStep.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2TimeStep.h; sourceTree = "<group>"; };
+		92908FAA19C9ECC00088BCA9 /* b2World.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2World.cpp; sourceTree = "<group>"; };
+		92908FAB19C9ECC00088BCA9 /* b2World.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2World.h; sourceTree = "<group>"; };
+		92908FAC19C9ECC00088BCA9 /* b2WorldCallbacks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WorldCallbacks.cpp; sourceTree = "<group>"; };
+		92908FAD19C9ECC00088BCA9 /* b2WorldCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WorldCallbacks.h; sourceTree = "<group>"; };
+		92908FAF19C9ECC00088BCA9 /* b2CircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2CircleContact.cpp; sourceTree = "<group>"; };
+		92908FB019C9ECC00088BCA9 /* b2CircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2CircleContact.h; sourceTree = "<group>"; };
+		92908FB119C9ECC00088BCA9 /* b2Contact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Contact.cpp; sourceTree = "<group>"; };
+		92908FB219C9ECC00088BCA9 /* b2Contact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Contact.h; sourceTree = "<group>"; };
+		92908FB319C9ECC00088BCA9 /* b2ContactSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2ContactSolver.cpp; sourceTree = "<group>"; };
+		92908FB419C9ECC00088BCA9 /* b2ContactSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2ContactSolver.h; sourceTree = "<group>"; };
+		92908FB519C9ECC00088BCA9 /* b2EdgeAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2EdgeAndCircleContact.cpp; sourceTree = "<group>"; };
+		92908FB619C9ECC00088BCA9 /* b2EdgeAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2EdgeAndCircleContact.h; sourceTree = "<group>"; };
+		92908FB719C9ECC00088BCA9 /* b2EdgeAndPolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2EdgeAndPolygonContact.cpp; sourceTree = "<group>"; };
+		92908FB819C9ECC00088BCA9 /* b2EdgeAndPolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2EdgeAndPolygonContact.h; sourceTree = "<group>"; };
+		92908FB919C9ECC00088BCA9 /* b2LoopAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LoopAndCircleContact.cpp; sourceTree = "<group>"; };
+		92908FBA19C9ECC00088BCA9 /* b2LoopAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LoopAndCircleContact.h; sourceTree = "<group>"; };
+		92908FBB19C9ECC00088BCA9 /* b2LoopAndPolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2LoopAndPolygonContact.cpp; sourceTree = "<group>"; };
+		92908FBC19C9ECC00088BCA9 /* b2LoopAndPolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2LoopAndPolygonContact.h; sourceTree = "<group>"; };
+		92908FBD19C9ECC00088BCA9 /* b2PolygonAndCircleContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonAndCircleContact.cpp; sourceTree = "<group>"; };
+		92908FBE19C9ECC00088BCA9 /* b2PolygonAndCircleContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonAndCircleContact.h; sourceTree = "<group>"; };
+		92908FBF19C9ECC00088BCA9 /* b2PolygonContact.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PolygonContact.cpp; sourceTree = "<group>"; };
+		92908FC019C9ECC00088BCA9 /* b2PolygonContact.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PolygonContact.h; sourceTree = "<group>"; };
+		92908FC219C9ECC00088BCA9 /* b2DistanceJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2DistanceJoint.cpp; sourceTree = "<group>"; };
+		92908FC319C9ECC00088BCA9 /* b2DistanceJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2DistanceJoint.h; sourceTree = "<group>"; };
+		92908FC419C9ECC00088BCA9 /* b2FrictionJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2FrictionJoint.cpp; sourceTree = "<group>"; };
+		92908FC519C9ECC00088BCA9 /* b2FrictionJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2FrictionJoint.h; sourceTree = "<group>"; };
+		92908FC619C9ECC00088BCA9 /* b2GearJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2GearJoint.cpp; sourceTree = "<group>"; };
+		92908FC719C9ECC00088BCA9 /* b2GearJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2GearJoint.h; sourceTree = "<group>"; };
+		92908FC819C9ECC00088BCA9 /* b2Joint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Joint.cpp; sourceTree = "<group>"; };
+		92908FC919C9ECC00088BCA9 /* b2Joint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Joint.h; sourceTree = "<group>"; };
+		92908FCA19C9ECC00088BCA9 /* b2MouseJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2MouseJoint.cpp; sourceTree = "<group>"; };
+		92908FCB19C9ECC00088BCA9 /* b2MouseJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2MouseJoint.h; sourceTree = "<group>"; };
+		92908FCC19C9ECC00088BCA9 /* b2PrismaticJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PrismaticJoint.cpp; sourceTree = "<group>"; };
+		92908FCD19C9ECC00088BCA9 /* b2PrismaticJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PrismaticJoint.h; sourceTree = "<group>"; };
+		92908FCE19C9ECC00088BCA9 /* b2PulleyJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2PulleyJoint.cpp; sourceTree = "<group>"; };
+		92908FCF19C9ECC00088BCA9 /* b2PulleyJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2PulleyJoint.h; sourceTree = "<group>"; };
+		92908FD019C9ECC00088BCA9 /* b2RevoluteJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2RevoluteJoint.cpp; sourceTree = "<group>"; };
+		92908FD119C9ECC00088BCA9 /* b2RevoluteJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2RevoluteJoint.h; sourceTree = "<group>"; };
+		92908FD219C9ECC00088BCA9 /* b2RopeJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2RopeJoint.cpp; sourceTree = "<group>"; };
+		92908FD319C9ECC00088BCA9 /* b2RopeJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2RopeJoint.h; sourceTree = "<group>"; };
+		92908FD419C9ECC00088BCA9 /* b2WeldJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WeldJoint.cpp; sourceTree = "<group>"; };
+		92908FD519C9ECC00088BCA9 /* b2WeldJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WeldJoint.h; sourceTree = "<group>"; };
+		92908FD619C9ECC00088BCA9 /* b2WheelJoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2WheelJoint.cpp; sourceTree = "<group>"; };
+		92908FD719C9ECC00088BCA9 /* b2WheelJoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2WheelJoint.h; sourceTree = "<group>"; };
+		92908FD919C9ECC00088BCA9 /* b2Rope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b2Rope.cpp; sourceTree = "<group>"; };
+		92908FDA19C9ECC00088BCA9 /* b2Rope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b2Rope.h; sourceTree = "<group>"; };
+		BA41FC88D76540A6905224D6 /* example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
+		F6123B1E6FE4471A00F49751 /* res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		049B572B1871FBE900EF3C66 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				0405A00018720D2200BA6557 /* libjpeg.a in Frameworks */,
+				0405A00118720D2200BA6557 /* libpng.a in Frameworks */,
+				04059FEF187202AC00BA6557 /* OpenGL.framework in Frameworks */,
+				04059FED187202A200BA6557 /* libz.dylib in Frameworks */,
+				04059FEB1872027B00BA6557 /* liboxygine_macosx.a in Frameworks */,
+				04059FEA1872027500BA6557 /* SDL2.framework in Frameworks */,
+				049B57321871FBE900EF3C66 /* Cocoa.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		04059FE01872026200BA6557 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04059FE41872026200BA6557 /* liboxygine_macosx.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		049B57251871FBE900EF3C66 = {
+			isa = PBXGroup;
+			children = (
+				049B57491871FBE900EF3C66 /* Images.xcassets */,
+				049B57381871FBE900EF3C66 /* Supporting Files */,
+				04A57D391871FF8B0068B1E5 /* src */,
+				04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */,
+				04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */,
+				049B57301871FBE900EF3C66 /* Frameworks */,
+				049B572F1871FBE900EF3C66 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		049B572F1871FBE900EF3C66 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				049B572E1871FBE900EF3C66 /* DemoBox2D_macosx.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		049B57301871FBE900EF3C66 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				04059FF4187203A600BA6557 /* libjpeg.a */,
+				04059FF5187203A600BA6557 /* libpng.a */,
+				04059FF01872031A00BA6557 /* libjpeg.a */,
+				04059FF11872031A00BA6557 /* libpng.a */,
+				04059FEE187202AC00BA6557 /* OpenGL.framework */,
+				04059FEC187202A200BA6557 /* libz.dylib */,
+				049B57311871FBE900EF3C66 /* Cocoa.framework */,
+				049B57501871FBE900EF3C66 /* XCTest.framework */,
+				049B57331871FBE900EF3C66 /* Other Frameworks */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		049B57331871FBE900EF3C66 /* Other Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				049B57341871FBE900EF3C66 /* AppKit.framework */,
+				049B57351871FBE900EF3C66 /* CoreData.framework */,
+				049B57361871FBE900EF3C66 /* Foundation.framework */,
+			);
+			name = "Other Frameworks";
+			sourceTree = "<group>";
+		};
+		049B57381871FBE900EF3C66 /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				04FE4D4FB640E0DF92DFB865 /* fonts */,
+				7F3B12E3C9D554D9FE28101D /* images */,
+				F6123B1E6FE4471A00F49751 /* res.xml */,
+				049B57391871FBE900EF3C66 /* DemoBox2D_macosx-Info.plist */,
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		04A57D391871FF8B0068B1E5 /* src */ = {
+			isa = PBXGroup;
+			children = (
+				92908F7419C9ECAC0088BCA9 /* box2d */,
+				360377333740D8A2FD15BBE6 /* Box2DDebugDraw.cpp */,
+				0BF9628FC8D38F9748F0CDEB /* entry_point.cpp */,
+				4DA100C319512824B7570663 /* example.cpp */,
+				5DE458993031811A4C7D28C1 /* Box2DDebugDraw.h */,
+				BA41FC88D76540A6905224D6 /* example.h */,
+			);
+			name = src;
+			sourceTree = "<group>";
+		};
+		04A57D7F1872012A0068B1E5 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				04A57D861872012D0068B1E5 /* SDL2.framework */,
+				04A57D881872012D0068B1E5 /* libSDL2.a */,
+				04A57D8A1872012D0068B1E5 /* libSDL2.dylib */,
+				04A57D8C1872012D0068B1E5 /* Standard DMG */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		92908F7419C9ECAC0088BCA9 /* box2d */ = {
+			isa = PBXGroup;
+			children = (
+				92908F7819C9ECBF0088BCA9 /* Box2D */,
+			);
+			name = box2d;
+			sourceTree = "<group>";
+		};
+		92908F7819C9ECBF0088BCA9 /* Box2D */ = {
+			isa = PBXGroup;
+			children = (
+				92908F7919C9ECBF0088BCA9 /* Box2D.h */,
+				92908F7A19C9ECBF0088BCA9 /* Collision */,
+				92908F9219C9ECC00088BCA9 /* Common */,
+				92908FA019C9ECC00088BCA9 /* Dynamics */,
+				92908FD819C9ECC00088BCA9 /* Rope */,
+			);
+			name = Box2D;
+			path = ../box2d/Box2D;
+			sourceTree = "<group>";
+		};
+		92908F7A19C9ECBF0088BCA9 /* Collision */ = {
+			isa = PBXGroup;
+			children = (
+				92908F7B19C9ECBF0088BCA9 /* b2BroadPhase.cpp */,
+				92908F7C19C9ECBF0088BCA9 /* b2BroadPhase.h */,
+				92908F7D19C9ECBF0088BCA9 /* b2CollideCircle.cpp */,
+				92908F7E19C9ECBF0088BCA9 /* b2CollideEdge.cpp */,
+				92908F7F19C9ECBF0088BCA9 /* b2CollidePolygon.cpp */,
+				92908F8019C9ECC00088BCA9 /* b2Collision.cpp */,
+				92908F8119C9ECC00088BCA9 /* b2Collision.h */,
+				92908F8219C9ECC00088BCA9 /* b2Distance.cpp */,
+				92908F8319C9ECC00088BCA9 /* b2Distance.h */,
+				92908F8419C9ECC00088BCA9 /* b2DynamicTree.cpp */,
+				92908F8519C9ECC00088BCA9 /* b2DynamicTree.h */,
+				92908F8619C9ECC00088BCA9 /* b2TimeOfImpact.cpp */,
+				92908F8719C9ECC00088BCA9 /* b2TimeOfImpact.h */,
+				92908F8819C9ECC00088BCA9 /* Shapes */,
+			);
+			path = Collision;
+			sourceTree = "<group>";
+		};
+		92908F8819C9ECC00088BCA9 /* Shapes */ = {
+			isa = PBXGroup;
+			children = (
+				92908F8919C9ECC00088BCA9 /* b2CircleShape.cpp */,
+				92908F8A19C9ECC00088BCA9 /* b2CircleShape.h */,
+				92908F8B19C9ECC00088BCA9 /* b2EdgeShape.cpp */,
+				92908F8C19C9ECC00088BCA9 /* b2EdgeShape.h */,
+				92908F8D19C9ECC00088BCA9 /* b2LoopShape.cpp */,
+				92908F8E19C9ECC00088BCA9 /* b2LoopShape.h */,
+				92908F8F19C9ECC00088BCA9 /* b2PolygonShape.cpp */,
+				92908F9019C9ECC00088BCA9 /* b2PolygonShape.h */,
+				92908F9119C9ECC00088BCA9 /* b2Shape.h */,
+			);
+			path = Shapes;
+			sourceTree = "<group>";
+		};
+		92908F9219C9ECC00088BCA9 /* Common */ = {
+			isa = PBXGroup;
+			children = (
+				92908F9319C9ECC00088BCA9 /* b2BlockAllocator.cpp */,
+				92908F9419C9ECC00088BCA9 /* b2BlockAllocator.h */,
+				92908F9519C9ECC00088BCA9 /* b2Draw.cpp */,
+				92908F9619C9ECC00088BCA9 /* b2Draw.h */,
+				92908F9719C9ECC00088BCA9 /* b2GrowableStack.h */,
+				92908F9819C9ECC00088BCA9 /* b2Math.cpp */,
+				92908F9919C9ECC00088BCA9 /* b2Math.h */,
+				92908F9A19C9ECC00088BCA9 /* b2Settings.cpp */,
+				92908F9B19C9ECC00088BCA9 /* b2Settings.h */,
+				92908F9C19C9ECC00088BCA9 /* b2StackAllocator.cpp */,
+				92908F9D19C9ECC00088BCA9 /* b2StackAllocator.h */,
+				92908F9E19C9ECC00088BCA9 /* b2Timer.cpp */,
+				92908F9F19C9ECC00088BCA9 /* b2Timer.h */,
+			);
+			path = Common;
+			sourceTree = "<group>";
+		};
+		92908FA019C9ECC00088BCA9 /* Dynamics */ = {
+			isa = PBXGroup;
+			children = (
+				92908FA119C9ECC00088BCA9 /* b2Body.cpp */,
+				92908FA219C9ECC00088BCA9 /* b2Body.h */,
+				92908FA319C9ECC00088BCA9 /* b2ContactManager.cpp */,
+				92908FA419C9ECC00088BCA9 /* b2ContactManager.h */,
+				92908FA519C9ECC00088BCA9 /* b2Fixture.cpp */,
+				92908FA619C9ECC00088BCA9 /* b2Fixture.h */,
+				92908FA719C9ECC00088BCA9 /* b2Island.cpp */,
+				92908FA819C9ECC00088BCA9 /* b2Island.h */,
+				92908FA919C9ECC00088BCA9 /* b2TimeStep.h */,
+				92908FAA19C9ECC00088BCA9 /* b2World.cpp */,
+				92908FAB19C9ECC00088BCA9 /* b2World.h */,
+				92908FAC19C9ECC00088BCA9 /* b2WorldCallbacks.cpp */,
+				92908FAD19C9ECC00088BCA9 /* b2WorldCallbacks.h */,
+				92908FAE19C9ECC00088BCA9 /* Contacts */,
+				92908FC119C9ECC00088BCA9 /* Joints */,
+			);
+			path = Dynamics;
+			sourceTree = "<group>";
+		};
+		92908FAE19C9ECC00088BCA9 /* Contacts */ = {
+			isa = PBXGroup;
+			children = (
+				92908FAF19C9ECC00088BCA9 /* b2CircleContact.cpp */,
+				92908FB019C9ECC00088BCA9 /* b2CircleContact.h */,
+				92908FB119C9ECC00088BCA9 /* b2Contact.cpp */,
+				92908FB219C9ECC00088BCA9 /* b2Contact.h */,
+				92908FB319C9ECC00088BCA9 /* b2ContactSolver.cpp */,
+				92908FB419C9ECC00088BCA9 /* b2ContactSolver.h */,
+				92908FB519C9ECC00088BCA9 /* b2EdgeAndCircleContact.cpp */,
+				92908FB619C9ECC00088BCA9 /* b2EdgeAndCircleContact.h */,
+				92908FB719C9ECC00088BCA9 /* b2EdgeAndPolygonContact.cpp */,
+				92908FB819C9ECC00088BCA9 /* b2EdgeAndPolygonContact.h */,
+				92908FB919C9ECC00088BCA9 /* b2LoopAndCircleContact.cpp */,
+				92908FBA19C9ECC00088BCA9 /* b2LoopAndCircleContact.h */,
+				92908FBB19C9ECC00088BCA9 /* b2LoopAndPolygonContact.cpp */,
+				92908FBC19C9ECC00088BCA9 /* b2LoopAndPolygonContact.h */,
+				92908FBD19C9ECC00088BCA9 /* b2PolygonAndCircleContact.cpp */,
+				92908FBE19C9ECC00088BCA9 /* b2PolygonAndCircleContact.h */,
+				92908FBF19C9ECC00088BCA9 /* b2PolygonContact.cpp */,
+				92908FC019C9ECC00088BCA9 /* b2PolygonContact.h */,
+			);
+			path = Contacts;
+			sourceTree = "<group>";
+		};
+		92908FC119C9ECC00088BCA9 /* Joints */ = {
+			isa = PBXGroup;
+			children = (
+				92908FC219C9ECC00088BCA9 /* b2DistanceJoint.cpp */,
+				92908FC319C9ECC00088BCA9 /* b2DistanceJoint.h */,
+				92908FC419C9ECC00088BCA9 /* b2FrictionJoint.cpp */,
+				92908FC519C9ECC00088BCA9 /* b2FrictionJoint.h */,
+				92908FC619C9ECC00088BCA9 /* b2GearJoint.cpp */,
+				92908FC719C9ECC00088BCA9 /* b2GearJoint.h */,
+				92908FC819C9ECC00088BCA9 /* b2Joint.cpp */,
+				92908FC919C9ECC00088BCA9 /* b2Joint.h */,
+				92908FCA19C9ECC00088BCA9 /* b2MouseJoint.cpp */,
+				92908FCB19C9ECC00088BCA9 /* b2MouseJoint.h */,
+				92908FCC19C9ECC00088BCA9 /* b2PrismaticJoint.cpp */,
+				92908FCD19C9ECC00088BCA9 /* b2PrismaticJoint.h */,
+				92908FCE19C9ECC00088BCA9 /* b2PulleyJoint.cpp */,
+				92908FCF19C9ECC00088BCA9 /* b2PulleyJoint.h */,
+				92908FD019C9ECC00088BCA9 /* b2RevoluteJoint.cpp */,
+				92908FD119C9ECC00088BCA9 /* b2RevoluteJoint.h */,
+				92908FD219C9ECC00088BCA9 /* b2RopeJoint.cpp */,
+				92908FD319C9ECC00088BCA9 /* b2RopeJoint.h */,
+				92908FD419C9ECC00088BCA9 /* b2WeldJoint.cpp */,
+				92908FD519C9ECC00088BCA9 /* b2WeldJoint.h */,
+				92908FD619C9ECC00088BCA9 /* b2WheelJoint.cpp */,
+				92908FD719C9ECC00088BCA9 /* b2WheelJoint.h */,
+			);
+			path = Joints;
+			sourceTree = "<group>";
+		};
+		92908FD819C9ECC00088BCA9 /* Rope */ = {
+			isa = PBXGroup;
+			children = (
+				92908FD919C9ECC00088BCA9 /* b2Rope.cpp */,
+				92908FDA19C9ECC00088BCA9 /* b2Rope.h */,
+			);
+			path = Rope;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		049B572D1871FBE900EF3C66 /* DemoBox2D_macosx */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 049B575F1871FBE900EF3C66 /* Build configuration list for PBXNativeTarget "DemoBox2D_macosx" */;
+			buildPhases = (
+				049B572A1871FBE900EF3C66 /* Sources */,
+				049B572B1871FBE900EF3C66 /* Frameworks */,
+				049B572C1871FBE900EF3C66 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				04059FE91872027200BA6557 /* PBXTargetDependency */,
+				04A57D8F187201EF0068B1E5 /* PBXTargetDependency */,
+			);
+			name = DemoBox2D_macosx;
+			productName = DemoBox2D;
+			productReference = 049B572E1871FBE900EF3C66 /* DemoBox2D_macosx.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		049B57261871FBE900EF3C66 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0510;
+				ORGANIZATIONNAME = oxygine;
+			};
+			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "DemoBox2D_macosx" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 049B57251871FBE900EF3C66;
+			productRefGroup = 049B572F1871FBE900EF3C66 /* Products */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 04059FE01872026200BA6557 /* Products */;
+					ProjectRef = 04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */;
+				},
+				{
+					ProductGroup = 04A57D7F1872012A0068B1E5 /* Products */;
+					ProjectRef = 04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				049B572D1871FBE900EF3C66 /* DemoBox2D_macosx */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		04059FE41872026200BA6557 /* liboxygine_macosx.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = liboxygine_macosx.a;
+			remoteRef = 04059FE31872026200BA6557 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D861872012D0068B1E5 /* SDL2.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = SDL2.framework;
+			remoteRef = 04A57D851872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D881872012D0068B1E5 /* libSDL2.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libSDL2.a;
+			remoteRef = 04A57D871872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D8A1872012D0068B1E5 /* libSDL2.dylib */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.dylib";
+			path = libSDL2.dylib;
+			remoteRef = 04A57D891872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		04A57D8C1872012D0068B1E5 /* Standard DMG */ = {
+			isa = PBXReferenceProxy;
+			fileType = "compiled.mach-o.executable";
+			path = "Standard DMG";
+			remoteRef = 04A57D8B1872012D0068B1E5 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		049B572C1871FBE900EF3C66 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				1E839D002B2BA83FC83A695A /* fonts in Resources */,
+				3A631A475DE035FC53ADE5EA /* images in Resources */,
+				CD59C69314E9E74CD0A11E03 /* res.xml in Resources */,
+				049B574A1871FBE900EF3C66 /* Images.xcassets in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		049B572A1871FBE900EF3C66 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9290900019C9ECC00088BCA9 /* b2MouseJoint.cpp in Sources */,
+				92908FDF19C9ECC00088BCA9 /* b2Collision.cpp in Sources */,
+				92908FF519C9ECC00088BCA9 /* b2ContactSolver.cpp in Sources */,
+				92908FE919C9ECC00088BCA9 /* b2Math.cpp in Sources */,
+				92908FF819C9ECC00088BCA9 /* b2LoopAndCircleContact.cpp in Sources */,
+				92908FFF19C9ECC00088BCA9 /* b2Joint.cpp in Sources */,
+				92908FE519C9ECC00088BCA9 /* b2LoopShape.cpp in Sources */,
+				92908FFB19C9ECC00088BCA9 /* b2PolygonContact.cpp in Sources */,
+				92908FEE19C9ECC00088BCA9 /* b2ContactManager.cpp in Sources */,
+				92908FF619C9ECC00088BCA9 /* b2EdgeAndCircleContact.cpp in Sources */,
+				9290900319C9ECC00088BCA9 /* b2RevoluteJoint.cpp in Sources */,
+				2DC477AC10D6C07B3FE008F6 /* Box2DDebugDraw.cpp in Sources */,
+				92908FE019C9ECC00088BCA9 /* b2Distance.cpp in Sources */,
+				92908FF019C9ECC00088BCA9 /* b2Island.cpp in Sources */,
+				92908FF219C9ECC00088BCA9 /* b2WorldCallbacks.cpp in Sources */,
+				92908FE119C9ECC00088BCA9 /* b2DynamicTree.cpp in Sources */,
+				92908FE719C9ECC00088BCA9 /* b2BlockAllocator.cpp in Sources */,
+				92908FF319C9ECC00088BCA9 /* b2CircleContact.cpp in Sources */,
+				9290900419C9ECC00088BCA9 /* b2RopeJoint.cpp in Sources */,
+				92908FE819C9ECC00088BCA9 /* b2Draw.cpp in Sources */,
+				92908FE419C9ECC00088BCA9 /* b2EdgeShape.cpp in Sources */,
+				9290900719C9ECC00088BCA9 /* b2Rope.cpp in Sources */,
+				92908FE619C9ECC00088BCA9 /* b2PolygonShape.cpp in Sources */,
+				DA49ED8903C628BA578C8670 /* entry_point.cpp in Sources */,
+				9290900119C9ECC00088BCA9 /* b2PrismaticJoint.cpp in Sources */,
+				92908FE319C9ECC00088BCA9 /* b2CircleShape.cpp in Sources */,
+				92908FEB19C9ECC00088BCA9 /* b2StackAllocator.cpp in Sources */,
+				92908FED19C9ECC00088BCA9 /* b2Body.cpp in Sources */,
+				92908FFA19C9ECC00088BCA9 /* b2PolygonAndCircleContact.cpp in Sources */,
+				92908FF419C9ECC00088BCA9 /* b2Contact.cpp in Sources */,
+				92908FFD19C9ECC00088BCA9 /* b2FrictionJoint.cpp in Sources */,
+				9290900519C9ECC00088BCA9 /* b2WeldJoint.cpp in Sources */,
+				92908FE219C9ECC00088BCA9 /* b2TimeOfImpact.cpp in Sources */,
+				92908FFE19C9ECC00088BCA9 /* b2GearJoint.cpp in Sources */,
+				92908FDC19C9ECC00088BCA9 /* b2CollideCircle.cpp in Sources */,
+				92908FEF19C9ECC00088BCA9 /* b2Fixture.cpp in Sources */,
+				92908FDB19C9ECC00088BCA9 /* b2BroadPhase.cpp in Sources */,
+				92908FF119C9ECC00088BCA9 /* b2World.cpp in Sources */,
+				92908FF919C9ECC00088BCA9 /* b2LoopAndPolygonContact.cpp in Sources */,
+				C8860D93875589970329DCCD /* example.cpp in Sources */,
+				92908FEC19C9ECC00088BCA9 /* b2Timer.cpp in Sources */,
+				92908FFC19C9ECC00088BCA9 /* b2DistanceJoint.cpp in Sources */,
+				92908FF719C9ECC00088BCA9 /* b2EdgeAndPolygonContact.cpp in Sources */,
+				92908FEA19C9ECC00088BCA9 /* b2Settings.cpp in Sources */,
+				92908FDE19C9ECC00088BCA9 /* b2CollidePolygon.cpp in Sources */,
+				9290900619C9ECC00088BCA9 /* b2WheelJoint.cpp in Sources */,
+				92908FDD19C9ECC00088BCA9 /* b2CollideEdge.cpp in Sources */,
+				9290900219C9ECC00088BCA9 /* b2PulleyJoint.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		04059FE91872027200BA6557 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = oxygine_macosx;
+			targetProxy = 04059FE81872027200BA6557 /* PBXContainerItemProxy */;
+		};
+		04A57D8F187201EF0068B1E5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = Framework;
+			targetProxy = 04A57D8E187201EF0068B1E5 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+		049B575D1871FBE900EF3C66 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_OBJC_ARC = NO;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = macosx;
+				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include ../box2d";
+				VALID_ARCHS = i386;
+			};
+			name = Debug;
+		};
+		049B575E1871FBE900EF3C66 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_OBJC_ARC = NO;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				MACOSX_DEPLOYMENT_TARGET = 10.8;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = macosx;
+				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include ../box2d";
+				VALID_ARCHS = i386;
+			};
+			name = Release;
+		};
+		049B57601871FBE900EF3C66 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				COMBINE_HIDPI_IMAGES = YES;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "DemoBox2D/DemoBox2D_macosx-Prefix.pch";
+				INFOPLIST_FILE = "DemoBox2D_macosx-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../..//oxygine/third_party/macosx/libraries",
+					"../../..//oxygine/third_party/ios/libraries",
+				);
+				PRODUCT_NAME = DemoBox2D_macosx;
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		049B57611871FBE900EF3C66 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				COMBINE_HIDPI_IMAGES = YES;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "DemoBox2D/DemoBox2D_macosx-Prefix.pch";
+				INFOPLIST_FILE = "DemoBox2D_macosx-Info.plist";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"../../..//oxygine/third_party/macosx/libraries",
+					"../../..//oxygine/third_party/ios/libraries",
+				);
+				PRODUCT_NAME = DemoBox2D_macosx;
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "DemoBox2D_macosx" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				049B575D1871FBE900EF3C66 /* Debug */,
+				049B575E1871FBE900EF3C66 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		049B575F1871FBE900EF3C66 /* Build configuration list for PBXNativeTarget "DemoBox2D_macosx" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				049B57601871FBE900EF3C66 /* Debug */,
+				049B57611871FBE900EF3C66 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 049B57261871FBE900EF3C66 /* Project object */;
+}

+ 0 - 5
examples/DemoBox2D/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 2 - 0
examples/Game/part1/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

+ 4 - 0
examples/Game/part1/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 2 - 0
examples/Game/part1/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ndk-build NDK_MODULE_PATH=../../../../../ $@

+ 3 - 0
examples/Game/part1/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+adb install -r bin/GamePart1-debug.apk
+adb shell am start -n org.oxygine.GamePart1/org.oxygine.GamePart1.MainActivity

+ 4 - 4
examples/Game/part1/proj.ios/GamePart1_ios.xcodeproj/project.pbxproj

@@ -246,7 +246,7 @@
 		04998CE417F8A933003441C3 /* Project object */ = {
 		04998CE417F8A933003441C3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = Mac;
 				ORGANIZATIONNAME = Mac;
 			};
 			};
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart1_ios" */;
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart1_ios" */;
@@ -344,7 +344,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -374,7 +373,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
-				ONLY_ACTIVE_ARCH = YES;
+				ONLY_ACTIVE_ARCH = NO;
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
@@ -385,7 +384,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -432,6 +430,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = YES;
 				PRODUCT_NAME = GamePart1_ios;
 				PRODUCT_NAME = GamePart1_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -455,6 +454,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				PRODUCT_NAME = GamePart1_ios;
 				PRODUCT_NAME = GamePart1_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";

+ 3 - 5
examples/Game/part1/proj.macosx/GamePart1_macosx.xcodeproj/project.pbxproj

@@ -266,7 +266,7 @@
 		049B57261871FBE900EF3C66 /* Project object */ = {
 		049B57261871FBE900EF3C66 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = oxygine;
 				ORGANIZATIONNAME = oxygine;
 			};
 			};
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart1_macosx" */;
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart1_macosx" */;
@@ -385,7 +385,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -425,7 +424,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -459,7 +457,7 @@
 		049B57601871FBE900EF3C66 /* Debug */ = {
 		049B57601871FBE900EF3C66 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -478,7 +476,7 @@
 		049B57611871FBE900EF3C66 /* Release */ = {
 		049B57611871FBE900EF3C66 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;

+ 2 - 0
examples/Game/part1/proj.win32/GamePart1_vs2010.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 2 - 0
examples/Game/part1/proj.win32/GamePart1_vs2013.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 0 - 5
examples/Game/part1/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 2 - 0
examples/Game/part2/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

+ 4 - 0
examples/Game/part2/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 2 - 0
examples/Game/part2/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ndk-build NDK_MODULE_PATH=../../../../../ $@

+ 3 - 0
examples/Game/part2/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+adb install -r bin/GamePart2-debug.apk
+adb shell am start -n org.oxygine.GamePart2/org.oxygine.GamePart2.MainActivity

+ 4 - 4
examples/Game/part2/proj.ios/GamePart2_ios.xcodeproj/project.pbxproj

@@ -256,7 +256,7 @@
 		04998CE417F8A933003441C3 /* Project object */ = {
 		04998CE417F8A933003441C3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = Mac;
 				ORGANIZATIONNAME = Mac;
 			};
 			};
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart2_ios" */;
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart2_ios" */;
@@ -356,7 +356,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -386,7 +385,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
-				ONLY_ACTIVE_ARCH = YES;
+				ONLY_ACTIVE_ARCH = NO;
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
@@ -397,7 +396,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -444,6 +442,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = YES;
 				PRODUCT_NAME = GamePart2_ios;
 				PRODUCT_NAME = GamePart2_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -467,6 +466,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				PRODUCT_NAME = GamePart2_ios;
 				PRODUCT_NAME = GamePart2_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";

+ 3 - 5
examples/Game/part2/proj.macosx/GamePart2_macosx.xcodeproj/project.pbxproj

@@ -276,7 +276,7 @@
 		049B57261871FBE900EF3C66 /* Project object */ = {
 		049B57261871FBE900EF3C66 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = oxygine;
 				ORGANIZATIONNAME = oxygine;
 			};
 			};
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart2_macosx" */;
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart2_macosx" */;
@@ -397,7 +397,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -437,7 +436,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -471,7 +469,7 @@
 		049B57601871FBE900EF3C66 /* Debug */ = {
 		049B57601871FBE900EF3C66 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -490,7 +488,7 @@
 		049B57611871FBE900EF3C66 /* Release */ = {
 		049B57611871FBE900EF3C66 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;

+ 2 - 0
examples/Game/part2/proj.win32/GamePart2_vs2010.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 2 - 0
examples/Game/part2/proj.win32/GamePart2_vs2013.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 0 - 5
examples/Game/part2/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 2 - 0
examples/Game/part3/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

+ 4 - 0
examples/Game/part3/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 2 - 0
examples/Game/part3/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ndk-build NDK_MODULE_PATH=../../../../../ $@

+ 3 - 0
examples/Game/part3/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+adb install -r bin/GamePart3-debug.apk
+adb shell am start -n org.oxygine.GamePart3/org.oxygine.GamePart3.MainActivity

+ 4 - 4
examples/Game/part3/proj.ios/GamePart3_ios.xcodeproj/project.pbxproj

@@ -276,7 +276,7 @@
 		04998CE417F8A933003441C3 /* Project object */ = {
 		04998CE417F8A933003441C3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = Mac;
 				ORGANIZATIONNAME = Mac;
 			};
 			};
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart3_ios" */;
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart3_ios" */;
@@ -380,7 +380,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -410,7 +409,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
-				ONLY_ACTIVE_ARCH = YES;
+				ONLY_ACTIVE_ARCH = NO;
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
@@ -421,7 +420,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -468,6 +466,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = YES;
 				PRODUCT_NAME = GamePart3_ios;
 				PRODUCT_NAME = GamePart3_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -491,6 +490,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				PRODUCT_NAME = GamePart3_ios;
 				PRODUCT_NAME = GamePart3_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";

+ 3 - 5
examples/Game/part3/proj.macosx/GamePart3_macosx.xcodeproj/project.pbxproj

@@ -296,7 +296,7 @@
 		049B57261871FBE900EF3C66 /* Project object */ = {
 		049B57261871FBE900EF3C66 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = oxygine;
 				ORGANIZATIONNAME = oxygine;
 			};
 			};
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart3_macosx" */;
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart3_macosx" */;
@@ -421,7 +421,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -461,7 +460,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -495,7 +493,7 @@
 		049B57601871FBE900EF3C66 /* Debug */ = {
 		049B57601871FBE900EF3C66 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -514,7 +512,7 @@
 		049B57611871FBE900EF3C66 /* Release */ = {
 		049B57611871FBE900EF3C66 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;

+ 2 - 0
examples/Game/part3/proj.win32/GamePart3_vs2010.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 2 - 0
examples/Game/part3/proj.win32/GamePart3_vs2013.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 0 - 5
examples/Game/part3/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 2 - 0
examples/Game/part4/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

+ 4 - 0
examples/Game/part4/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 2 - 0
examples/Game/part4/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ndk-build NDK_MODULE_PATH=../../../../../ $@

+ 3 - 0
examples/Game/part4/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+adb install -r bin/GamePart4-debug.apk
+adb shell am start -n org.oxygine.GamePart4/org.oxygine.GamePart4.MainActivity

+ 4 - 4
examples/Game/part4/proj.ios/GamePart4_ios.xcodeproj/project.pbxproj

@@ -284,7 +284,7 @@
 		04998CE417F8A933003441C3 /* Project object */ = {
 		04998CE417F8A933003441C3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = Mac;
 				ORGANIZATIONNAME = Mac;
 			};
 			};
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart4_ios" */;
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "GamePart4_ios" */;
@@ -390,7 +390,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -420,7 +419,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
-				ONLY_ACTIVE_ARCH = YES;
+				ONLY_ACTIVE_ARCH = NO;
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
 				USER_HEADER_SEARCH_PATHS = "../../../..//oxygine/src ../../../../..//SDL/include";
@@ -431,7 +430,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -478,6 +476,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = YES;
 				PRODUCT_NAME = GamePart4_ios;
 				PRODUCT_NAME = GamePart4_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -501,6 +500,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../../..//oxygine/third_party/ios/libraries",
 					"../../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				PRODUCT_NAME = GamePart4_ios;
 				PRODUCT_NAME = GamePart4_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";

+ 3 - 5
examples/Game/part4/proj.macosx/GamePart4_macosx.xcodeproj/project.pbxproj

@@ -304,7 +304,7 @@
 		049B57261871FBE900EF3C66 /* Project object */ = {
 		049B57261871FBE900EF3C66 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = oxygine;
 				ORGANIZATIONNAME = oxygine;
 			};
 			};
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart4_macosx" */;
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "GamePart4_macosx" */;
@@ -431,7 +431,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -471,7 +470,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -505,7 +503,7 @@
 		049B57601871FBE900EF3C66 /* Debug */ = {
 		049B57601871FBE900EF3C66 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -524,7 +522,7 @@
 		049B57611871FBE900EF3C66 /* Release */ = {
 		049B57611871FBE900EF3C66 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;

+ 2 - 0
examples/Game/part4/proj.win32/GamePart4_vs2010.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 2 - 0
examples/Game/part4/proj.win32/GamePart4_vs2013.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 0 - 5
examples/Game/part4/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 2 - 0
examples/HelloWorld/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

+ 4 - 0
examples/HelloWorld/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 2 - 0
examples/HelloWorld/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ndk-build NDK_MODULE_PATH=../../../../ $@

+ 3 - 0
examples/HelloWorld/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+adb install -r bin/HelloWorld-debug.apk
+adb shell am start -n org.oxygine.HelloWorld/org.oxygine.HelloWorld.MainActivity

+ 26 - 22
examples/HelloWorld/proj.ios/HelloWorld_ios.xcodeproj/project.pbxproj

@@ -25,10 +25,11 @@
 		2DC477AC10D6C07B3FE008F6 /* ../src/entry_point.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */; };
 		2DC477AC10D6C07B3FE008F6 /* ../src/entry_point.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */; };
 		DA49ED8903C628BA578C8670 /* ../src/example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */; };
 		DA49ED8903C628BA578C8670 /* ../src/example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */; };
 		C8860D93875589970329DCCD /* ../data/data.js in Sources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* ../data/data.js */; };
 		C8860D93875589970329DCCD /* ../data/data.js in Sources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* ../data/data.js */; };
-		1E839D002B2BA83FC83A695A /* ../data/fonts in Sources */ = {isa = PBXBuildFile; fileRef = 04FE4D4FB640E0DF92DFB865 /* ../data/fonts */; };
-		3A631A475DE035FC53ADE5EA /* ../data/images in Sources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* ../data/images */; };
-		CD59C69314E9E74CD0A11E03 /* ../data/pack.py in Sources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* ../data/pack.py */; };
-		EFF139F8BA484314F7AAF645 /* ../data/res.xml in Sources */ = {isa = PBXBuildFile; fileRef = 5DE458993031811A4C7D28C1 /* ../data/res.xml */; };
+		1E839D002B2BA83FC83A695A /* ../data/fld in Sources */ = {isa = PBXBuildFile; fileRef = 04FE4D4FB640E0DF92DFB865 /* ../data/fld */; };
+		3A631A475DE035FC53ADE5EA /* ../data/fonts in Sources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* ../data/fonts */; };
+		CD59C69314E9E74CD0A11E03 /* ../data/images in Sources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* ../data/images */; };
+		EFF139F8BA484314F7AAF645 /* ../data/pack.py in Sources */ = {isa = PBXBuildFile; fileRef = 5DE458993031811A4C7D28C1 /* ../data/pack.py */; };
+		F2CFD518E4E2E05ECEDBB262 /* ../data/res.xml in Sources */ = {isa = PBXBuildFile; fileRef = BA41FC88D76540A6905224D6 /* ../data/res.xml */; };
 
 
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
 
 
@@ -81,12 +82,13 @@
 		04E9AD3E1876FE84006A7317 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name =Images.xcassets; path = HelloWorld/Images.xcassets; sourceTree = "<group>"; };
 		04E9AD3E1876FE84006A7317 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name =Images.xcassets; path = HelloWorld/Images.xcassets; sourceTree = "<group>"; };
 		360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = entry_point.cpp; path = ../src/entry_point.cpp; sourceTree = "<group>"; };
 		360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = entry_point.cpp; path = ../src/entry_point.cpp; sourceTree = "<group>"; };
 		0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
 		0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
-		BA41FC88D76540A6905224D6 /* ../src/example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
+		2CE4BD5BB9DEF92439C0AB58 /* ../src/example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
 		4DA100C319512824B7570663 /* ../data/data.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = data.js; path = ../data/data.js; sourceTree = "<group>"; };
 		4DA100C319512824B7570663 /* ../data/data.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = data.js; path = ../data/data.js; sourceTree = "<group>"; };
-		04FE4D4FB640E0DF92DFB865 /* ../data/fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
-		7F3B12E3C9D554D9FE28101D /* ../data/images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
-		F6123B1E6FE4471A00F49751 /* ../data/pack.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = pack.py; path = ../data/pack.py; sourceTree = "<group>"; };
-		5DE458993031811A4C7D28C1 /* ../data/res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
+		04FE4D4FB640E0DF92DFB865 /* ../data/fld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fld; path = ../data/fld; sourceTree = "<group>"; };
+		7F3B12E3C9D554D9FE28101D /* ../data/fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
+		F6123B1E6FE4471A00F49751 /* ../data/images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
+		5DE458993031811A4C7D28C1 /* ../data/pack.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = pack.py; path = ../data/pack.py; sourceTree = "<group>"; };
+		BA41FC88D76540A6905224D6 /* ../data/res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
 
 
 /* End PBXFileReference section */
 /* End PBXFileReference section */
 
 
@@ -166,10 +168,11 @@
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
 				4DA100C319512824B7570663 /* data.js */, 
 				4DA100C319512824B7570663 /* data.js */, 
-				04FE4D4FB640E0DF92DFB865 /* fonts */, 
-				7F3B12E3C9D554D9FE28101D /* images */, 
-				F6123B1E6FE4471A00F49751 /* pack.py */, 
-				5DE458993031811A4C7D28C1 /* res.xml */, 
+				04FE4D4FB640E0DF92DFB865 /* fld */, 
+				7F3B12E3C9D554D9FE28101D /* fonts */, 
+				F6123B1E6FE4471A00F49751 /* images */, 
+				5DE458993031811A4C7D28C1 /* pack.py */, 
+				BA41FC88D76540A6905224D6 /* res.xml */, 
 
 
 			);
 			);
 			name = "Supporting Files";
 			name = "Supporting Files";
@@ -188,7 +191,7 @@
 			children = (
 			children = (
 				360377333740D8A2FD15BBE6 /* entry_point.cpp */, 
 				360377333740D8A2FD15BBE6 /* entry_point.cpp */, 
 				0BF9628FC8D38F9748F0CDEB /* example.cpp */, 
 				0BF9628FC8D38F9748F0CDEB /* example.cpp */, 
-				BA41FC88D76540A6905224D6 /* example.h */, 
+				2CE4BD5BB9DEF92439C0AB58 /* example.h */, 
 
 
 			);
 			);
 			name = src;
 			name = src;
@@ -230,7 +233,7 @@
 		04998CE417F8A933003441C3 /* Project object */ = {
 		04998CE417F8A933003441C3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = Mac;
 				ORGANIZATIONNAME = Mac;
 			};
 			};
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "HelloWorld_ios" */;
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "HelloWorld_ios" */;
@@ -285,10 +288,11 @@
 			files = (
 			files = (
 				04E9AD3F1876FE84006A7317 /* Images.xcassets in Resources */,
 				04E9AD3F1876FE84006A7317 /* Images.xcassets in Resources */,
 				C8860D93875589970329DCCD /* data.js */, 
 				C8860D93875589970329DCCD /* data.js */, 
-				1E839D002B2BA83FC83A695A /* fonts */, 
-				3A631A475DE035FC53ADE5EA /* images */, 
-				CD59C69314E9E74CD0A11E03 /* pack.py */, 
-				EFF139F8BA484314F7AAF645 /* res.xml */, 
+				1E839D002B2BA83FC83A695A /* fld */, 
+				3A631A475DE035FC53ADE5EA /* fonts */, 
+				CD59C69314E9E74CD0A11E03 /* images */, 
+				EFF139F8BA484314F7AAF645 /* pack.py */, 
+				F2CFD518E4E2E05ECEDBB262 /* res.xml */, 
 
 
 			);
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -326,7 +330,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -356,7 +359,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
-				ONLY_ACTIVE_ARCH = YES;
+				ONLY_ACTIVE_ARCH = NO;
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
 				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
@@ -367,7 +370,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -414,6 +416,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../..//oxygine/third_party/ios/libraries",
 					"../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = YES;
 				PRODUCT_NAME = HelloWorld_ios;
 				PRODUCT_NAME = HelloWorld_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -437,6 +440,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../..//oxygine/third_party/ios/libraries",
 					"../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				PRODUCT_NAME = HelloWorld_ios;
 				PRODUCT_NAME = HelloWorld_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";

+ 25 - 23
examples/HelloWorld/proj.macosx/HelloWorld_macosx.xcodeproj/project.pbxproj

@@ -18,10 +18,11 @@
 		2DC477AC10D6C07B3FE008F6 /* ../src/entry_point.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */; };
 		2DC477AC10D6C07B3FE008F6 /* ../src/entry_point.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */; };
 		DA49ED8903C628BA578C8670 /* ../src/example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */; };
 		DA49ED8903C628BA578C8670 /* ../src/example.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */; };
 		C8860D93875589970329DCCD /* ../data/data.js in Sources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* ../data/data.js */; };
 		C8860D93875589970329DCCD /* ../data/data.js in Sources */ = {isa = PBXBuildFile; fileRef = 4DA100C319512824B7570663 /* ../data/data.js */; };
-		1E839D002B2BA83FC83A695A /* ../data/fonts in Sources */ = {isa = PBXBuildFile; fileRef = 04FE4D4FB640E0DF92DFB865 /* ../data/fonts */; };
-		3A631A475DE035FC53ADE5EA /* ../data/images in Sources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* ../data/images */; };
-		CD59C69314E9E74CD0A11E03 /* ../data/pack.py in Sources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* ../data/pack.py */; };
-		EFF139F8BA484314F7AAF645 /* ../data/res.xml in Sources */ = {isa = PBXBuildFile; fileRef = 5DE458993031811A4C7D28C1 /* ../data/res.xml */; };
+		1E839D002B2BA83FC83A695A /* ../data/fld in Sources */ = {isa = PBXBuildFile; fileRef = 04FE4D4FB640E0DF92DFB865 /* ../data/fld */; };
+		3A631A475DE035FC53ADE5EA /* ../data/fonts in Sources */ = {isa = PBXBuildFile; fileRef = 7F3B12E3C9D554D9FE28101D /* ../data/fonts */; };
+		CD59C69314E9E74CD0A11E03 /* ../data/images in Sources */ = {isa = PBXBuildFile; fileRef = F6123B1E6FE4471A00F49751 /* ../data/images */; };
+		EFF139F8BA484314F7AAF645 /* ../data/pack.py in Sources */ = {isa = PBXBuildFile; fileRef = 5DE458993031811A4C7D28C1 /* ../data/pack.py */; };
+		F2CFD518E4E2E05ECEDBB262 /* ../data/res.xml in Sources */ = {isa = PBXBuildFile; fileRef = BA41FC88D76540A6905224D6 /* ../data/res.xml */; };
 
 
 		
 		
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
@@ -95,12 +96,13 @@
 		049B57501871FBE900EF3C66 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
 		049B57501871FBE900EF3C66 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
 		360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = entry_point.cpp; path = ../src/entry_point.cpp; sourceTree = "<group>"; };
 		360377333740D8A2FD15BBE6 /* ../src/entry_point.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = entry_point.cpp; path = ../src/entry_point.cpp; sourceTree = "<group>"; };
 		0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
 		0BF9628FC8D38F9748F0CDEB /* ../src/example.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = example.cpp; path = ../src/example.cpp; sourceTree = "<group>"; };
-		BA41FC88D76540A6905224D6 /* ../src/example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
+		2CE4BD5BB9DEF92439C0AB58 /* ../src/example.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = example.h; path = ../src/example.h; sourceTree = "<group>"; };
 		4DA100C319512824B7570663 /* ../data/data.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = data.js; path = ../data/data.js; sourceTree = "<group>"; };
 		4DA100C319512824B7570663 /* ../data/data.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = data.js; path = ../data/data.js; sourceTree = "<group>"; };
-		04FE4D4FB640E0DF92DFB865 /* ../data/fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
-		7F3B12E3C9D554D9FE28101D /* ../data/images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
-		F6123B1E6FE4471A00F49751 /* ../data/pack.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = pack.py; path = ../data/pack.py; sourceTree = "<group>"; };
-		5DE458993031811A4C7D28C1 /* ../data/res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
+		04FE4D4FB640E0DF92DFB865 /* ../data/fld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fld; path = ../data/fld; sourceTree = "<group>"; };
+		7F3B12E3C9D554D9FE28101D /* ../data/fonts */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = fonts; path = ../data/fonts; sourceTree = "<group>"; };
+		F6123B1E6FE4471A00F49751 /* ../data/images */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = folder; name = images; path = ../data/images; sourceTree = "<group>"; };
+		5DE458993031811A4C7D28C1 /* ../data/pack.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = pack.py; path = ../data/pack.py; sourceTree = "<group>"; };
+		BA41FC88D76540A6905224D6 /* ../data/res.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wtf; name = res.xml; path = ../data/res.xml; sourceTree = "<group>"; };
 
 
 		04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = oxygine_macosx.xcodeproj; path = ../../..//oxygine/SDL/macosx/oxygine_macosx/oxygine_macosx.xcodeproj; sourceTree = "<group>"; };
 		04A57D761871FFEB0068B1E5 /* oxygine_macosx.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = oxygine_macosx.xcodeproj; path = ../../..//oxygine/SDL/macosx/oxygine_macosx/oxygine_macosx.xcodeproj; sourceTree = "<group>"; };
 		04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../../..//SDL/Xcode/SDL/SDL.xcodeproj; sourceTree = "<group>"; };
 		04A57D7E1872012A0068B1E5 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../../..//SDL/Xcode/SDL/SDL.xcodeproj; sourceTree = "<group>"; };
@@ -190,10 +192,11 @@
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
 				4DA100C319512824B7570663 /* data.js */, 
 				4DA100C319512824B7570663 /* data.js */, 
-				04FE4D4FB640E0DF92DFB865 /* fonts */, 
-				7F3B12E3C9D554D9FE28101D /* images */, 
-				F6123B1E6FE4471A00F49751 /* pack.py */, 
-				5DE458993031811A4C7D28C1 /* res.xml */, 
+				04FE4D4FB640E0DF92DFB865 /* fld */, 
+				7F3B12E3C9D554D9FE28101D /* fonts */, 
+				F6123B1E6FE4471A00F49751 /* images */, 
+				5DE458993031811A4C7D28C1 /* pack.py */, 
+				BA41FC88D76540A6905224D6 /* res.xml */, 
 
 
 				049B57391871FBE900EF3C66 /* HelloWorld_macosx-Info.plist */,
 				049B57391871FBE900EF3C66 /* HelloWorld_macosx-Info.plist */,
 			);
 			);
@@ -205,7 +208,7 @@
 			children = (
 			children = (
 				360377333740D8A2FD15BBE6 /* entry_point.cpp */, 
 				360377333740D8A2FD15BBE6 /* entry_point.cpp */, 
 				0BF9628FC8D38F9748F0CDEB /* example.cpp */, 
 				0BF9628FC8D38F9748F0CDEB /* example.cpp */, 
-				BA41FC88D76540A6905224D6 /* example.h */, 
+				2CE4BD5BB9DEF92439C0AB58 /* example.h */, 
 
 
 			);
 			);
 			name = src;
 			name = src;
@@ -250,7 +253,7 @@
 		049B57261871FBE900EF3C66 /* Project object */ = {
 		049B57261871FBE900EF3C66 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = oxygine;
 				ORGANIZATIONNAME = oxygine;
 			};
 			};
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "HelloWorld_macosx" */;
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "HelloWorld_macosx" */;
@@ -325,10 +328,11 @@
 			buildActionMask = 2147483647;
 			buildActionMask = 2147483647;
 			files = (
 			files = (
 				C8860D93875589970329DCCD /* data.js */, 
 				C8860D93875589970329DCCD /* data.js */, 
-				1E839D002B2BA83FC83A695A /* fonts */, 
-				3A631A475DE035FC53ADE5EA /* images */, 
-				CD59C69314E9E74CD0A11E03 /* pack.py */, 
-				EFF139F8BA484314F7AAF645 /* res.xml */, 
+				1E839D002B2BA83FC83A695A /* fld */, 
+				3A631A475DE035FC53ADE5EA /* fonts */, 
+				CD59C69314E9E74CD0A11E03 /* images */, 
+				EFF139F8BA484314F7AAF645 /* pack.py */, 
+				F2CFD518E4E2E05ECEDBB262 /* res.xml */, 
 
 
 				049B574A1871FBE900EF3C66 /* Images.xcassets in Resources */,
 				049B574A1871FBE900EF3C66 /* Images.xcassets in Resources */,
 			);
 			);
@@ -367,7 +371,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -407,7 +410,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -441,7 +443,7 @@
 		049B57601871FBE900EF3C66 /* Debug */ = {
 		049B57601871FBE900EF3C66 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -460,7 +462,7 @@
 		049B57611871FBE900EF3C66 /* Release */ = {
 		049B57611871FBE900EF3C66 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;

+ 2 - 0
examples/HelloWorld/proj.win32/HelloWorld_vs2010.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 2 - 0
examples/HelloWorld/proj.win32/HelloWorld_vs2013.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 0 - 5
examples/HelloWorld/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 2 - 0
examples/Match3/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

+ 4 - 0
examples/Match3/proj.android/build-run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+sh build.sh
+sh ant_debug.sh
+sh install.sh

+ 2 - 0
examples/Match3/proj.android/build.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ndk-build NDK_MODULE_PATH=../../../../ $@

+ 3 - 0
examples/Match3/proj.android/install.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+adb install -r bin/Match3-debug.apk
+adb shell am start -n org.oxygine.Match3/org.oxygine.Match3.MainActivity

+ 4 - 4
examples/Match3/proj.ios/Match3_ios.xcodeproj/project.pbxproj

@@ -239,7 +239,7 @@
 		04998CE417F8A933003441C3 /* Project object */ = {
 		04998CE417F8A933003441C3 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = Mac;
 				ORGANIZATIONNAME = Mac;
 			};
 			};
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "Match3_ios" */;
 			buildConfigurationList = 04998CE717F8A933003441C3 /* Build configuration list for PBXProject "Match3_ios" */;
@@ -336,7 +336,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -366,7 +365,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
-				ONLY_ACTIVE_ARCH = YES;
+				ONLY_ACTIVE_ARCH = NO;
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
 				USER_HEADER_SEARCH_PATHS = "../../..//oxygine/src ../../../..//SDL/include";
@@ -377,7 +376,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
@@ -424,6 +422,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../..//oxygine/third_party/ios/libraries",
 					"../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = YES;
 				PRODUCT_NAME = Match3_ios;
 				PRODUCT_NAME = Match3_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -447,6 +446,7 @@
 					"$(inherited)",
 					"$(inherited)",
 					"../../..//oxygine/third_party/ios/libraries",
 					"../../..//oxygine/third_party/ios/libraries",
 				);
 				);
+				ONLY_ACTIVE_ARCH = NO;
 				PRODUCT_NAME = Match3_ios;
 				PRODUCT_NAME = Match3_ios;
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				PROVISIONING_PROFILE = "A34F5D84-E1EB-47B5-AD4B-67D0FA4A5BE6";
 				TARGETED_DEVICE_FAMILY = "1,2";
 				TARGETED_DEVICE_FAMILY = "1,2";

+ 3 - 5
examples/Match3/proj.macosx/Match3_macosx.xcodeproj/project.pbxproj

@@ -259,7 +259,7 @@
 		049B57261871FBE900EF3C66 /* Project object */ = {
 		049B57261871FBE900EF3C66 /* Project object */ = {
 			isa = PBXProject;
 			isa = PBXProject;
 			attributes = {
 			attributes = {
-				LastUpgradeCheck = 0500;
+				LastUpgradeCheck = 0510;
 				ORGANIZATIONNAME = oxygine;
 				ORGANIZATIONNAME = oxygine;
 			};
 			};
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "Match3_macosx" */;
 			buildConfigurationList = 049B57291871FBE900EF3C66 /* Build configuration list for PBXProject "Match3_macosx" */;
@@ -377,7 +377,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -417,7 +416,6 @@
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_CXX_LIBRARY = "libc++";
 				CLANG_ENABLE_OBJC_ARC = NO;
 				CLANG_ENABLE_OBJC_ARC = NO;
@@ -451,7 +449,7 @@
 		049B57601871FBE900EF3C66 /* Debug */ = {
 		049B57601871FBE900EF3C66 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -470,7 +468,7 @@
 		049B57611871FBE900EF3C66 /* Release */ = {
 		049B57611871FBE900EF3C66 /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				COMBINE_HIDPI_IMAGES = YES;
 				COMBINE_HIDPI_IMAGES = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;

+ 2 - 0
examples/Match3/proj.win32/Match3_vs2010.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 2 - 0
examples/Match3/proj.win32/Match3_vs2013.vcxproj.user

@@ -2,10 +2,12 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
     <LocalDebuggerWorkingDirectory>../data</LocalDebuggerWorkingDirectory>
+    <LocalDebuggerEnvironment>PATH=../data;%PATH%;</LocalDebuggerEnvironment>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
     <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
    </PropertyGroup>
    </PropertyGroup>
 </Project>
 </Project>

+ 0 - 5
examples/Match3/src/entry_point.cpp

@@ -101,10 +101,6 @@ void run()
 	//create and add new DebugActor to stage as child
 	//create and add new DebugActor to stage as child
 	getStage()->addChild(new DebugActor());
 	getStage()->addChild(new DebugActor());
 
 
-
-
-	Matrix view = makeViewMatrix(size.x, size.y);
-
 	viewport = Rect(0, 0, size.x, size.y);
 	viewport = Rect(0, 0, size.x, size.y);
 
 
 	Matrix proj;
 	Matrix proj;
@@ -130,7 +126,6 @@ void run()
 	return;
 	return;
 #endif
 #endif
 
 
-	bool done = false;
 
 
 	//here is main game loop
 	//here is main game loop
 	while (1)
 	while (1)

+ 2 - 0
examples/TutorialResources/proj.android/ant_debug.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+ant debug

Some files were not shown because too many files changed in this diff