Просмотр исходного кода

Merge remote-tracking branch 'upstream/next'

Joilnen Leite 13 лет назад
Родитель
Сommit
f40ef0426f
48 измененных файлов с 746 добавлено и 1376 удалено
  1. 25 7
      CHANGES.md
  2. 1 1
      README.md
  3. 3 3
      gameplay-newproject.sh
  4. 2 2
      gameplay/CMakeLists.txt
  5. 0 605
      gameplay/gameplay.cbp
  6. 317 317
      gameplay/gameplay.vcxproj.filters
  7. 4 56
      gameplay/gameplay.xcodeproj/project.pbxproj
  8. 9 9
      gameplay/res/shaders/colored-unlit.frag
  9. 12 12
      gameplay/res/shaders/colored-unlit.vert
  10. 24 21
      gameplay/res/shaders/colored.frag
  11. 10 9
      gameplay/res/shaders/colored.vert
  12. 17 0
      gameplay/res/shaders/font.frag
  13. 19 0
      gameplay/res/shaders/font.vert
  14. 15 0
      gameplay/res/shaders/form.frag
  15. 16 0
      gameplay/res/shaders/form.vert
  16. 0 0
      gameplay/res/shaders/lighting-directional.frag
  17. 0 1
      gameplay/res/shaders/lighting-directional.vert
  18. 0 0
      gameplay/res/shaders/lighting-point.frag
  19. 0 0
      gameplay/res/shaders/lighting-point.vert
  20. 0 0
      gameplay/res/shaders/lighting-spot.frag
  21. 0 0
      gameplay/res/shaders/lighting-spot.vert
  22. 0 0
      gameplay/res/shaders/lighting.frag
  23. 0 0
      gameplay/res/shaders/skinning-none.vert
  24. 0 0
      gameplay/res/shaders/skinning.vert
  25. 16 0
      gameplay/res/shaders/sprite.frag
  26. 19 0
      gameplay/res/shaders/sprite.vert
  27. 16 17
      gameplay/res/shaders/terrain.frag
  28. 3 4
      gameplay/res/shaders/terrain.vert
  29. 27 23
      gameplay/res/shaders/textured-bumped.frag
  30. 9 10
      gameplay/res/shaders/textured-bumped.vert
  31. 2 2
      gameplay/res/shaders/textured-unlit.frag
  32. 6 6
      gameplay/res/shaders/textured-unlit.vert
  33. 21 22
      gameplay/res/shaders/textured.frag
  34. 12 14
      gameplay/res/shaders/textured.vert
  35. 0 1
      gameplay/src/CheckBox.cpp
  36. 9 6
      gameplay/src/Container.cpp
  37. 38 40
      gameplay/src/Control.cpp
  38. 15 16
      gameplay/src/Control.h
  39. 4 29
      gameplay/src/Font.cpp
  40. 4 22
      gameplay/src/Form.cpp
  41. 2 2
      gameplay/src/Gamepad.cpp
  42. 1 0
      gameplay/src/Gamepad.h
  43. 1 1
      gameplay/src/Label.cpp
  44. 39 88
      gameplay/src/PlatformLinux.cpp
  45. 19 0
      gameplay/src/PlatformiOS.mm
  46. 0 1
      gameplay/src/Slider.cpp
  47. 4 28
      gameplay/src/SpriteBatch.cpp
  48. 5 1
      gameplay/src/TerrainPatch.cpp

+ 25 - 7
CHANGES.md

@@ -1,25 +1,43 @@
 ## v1.6.0
 - Adds file Stream interface for reading/writing files instead of using fread/fwrite. 
-- Adds additional gameplay-tests for billboards and forms.
+- Adds Terrain class to support for heightmap based terrains featuring LOD, multiple surface layers, loading from PNG, RAW8/16, full transform, physics, patch culling and verticle skirt for cracks.
+- Adds object-space normal map generation to gameplay-encoder for terrain normal map generation.
+- Adds scene support for loading .terrain files in .scene files.
+- Adds scene support for inline cameras to .scene files.
+- Adds suppoft for defining .scene files without 'path' to gpb. New node can not be create in .scene file.
+- Adds static Scene::getScene(const char*) to query currently active scenes in a game, helpful for script access.
+- Adds support for multiple translate, rotate and scale commands in a single node entity within .scene files, processed in-order they are defined.
+- Adds scene support for material auto binding scene ambient color, light color and light direction.
+- Adds support for setting the depth compare function on materials.
+- Adds support for texture/sampler arrays being passed to materials.
+- Adds support for loading uncompressed DDS textures for the following formats: R8G8B8, A8R8G8B8, A8B8G8R8, X8R8G8B8, X8B8G8R8
+- Adds improvments to prefer higher quality mipmap generation.
+- Adds improved Gamepad API support for button enumeration, triggers and some mobile Gamepad support on BlackBerry.
+- Adds additional gameplay-tests for billboards, forms, gamepads and lights.
 - Adds support for launching the browser via launchURL(const char*).
 - Adds physics support for setLinearFactor and setAngularFactor  on rigid bodies.
+- Adds methods to PhysicsCollisionObject to allow conversion to subclass types (i.e. PhysicsRigidBody, PhysicsCharacter, etc) from script.
 - Adds option for fullscreen without width/height config to use native desktop resolution.
 - Adds Linux support for OpenAL PulseAudio back-end.
 - Adds support for latest Bullet Physics 2.81 with NEON optimizations for mobile targets.
+- Adds support for preprocessor directive NO_LUA_BINDINGS in the gameplay project to omit inclusion of generated lua bindings in compilation for developer mode value. 
+- Adds optimizations to Lua generator to only write generated files if they differ from existing files, reducing both build times and committing of unchanged script binding files.
 - Adds Windows 7 64-bit support.
 - Fixes to external-deps to reduce the size of the libraries on Windows.
 - Fixes for Android to no longer need to copy files to the SD card before reading them. None of the Android samples require an SD card.
 - Fixes for animation of opacity on UI and fonts.
-- Fixes in UI for removing controls and also setVisible(bool)
+- Fixes in UI for removing controls and also setVisible(bool).
 - Fixes for UI controls missing on MacOSX.
 - Fixes for setting UI alignment programmatically.
-- Fixes for directional and spotlight shaders.
+- Fixes for lighting shaders.
+- Fixes to the texture minification mode from GL_LINEAR_MIPMAP_LINEAR to GL_NEAREST_MIPMAP_LINEAR for newly created textures with mipmaps.
+- Fixes minor memory leaks and possible access violations when calling Game::exit() from script.
+- Fixes physics debug drawing for large scenes causing the internal MeshBatch to grow to an enormous size.
 
 ## v1.5.0
 
 - Linux support. (tested on Ubuntu 12)
 - CMake support for makefile generation for Linux.
-- CodeBlocks 10 IDE support for Linux.
 - Gamepad API support for desktops.
 - Touch gesture support for tap, swipe and pinch.
 - Vehicle physics support via new PhysicsVehicle and PhysicsVehicleWheel classes.
@@ -33,7 +51,7 @@
 - Adds Game/Platform::canExit for testing device capabilities to quit. (only ios)
 - Web community forums at http://www.gameplay3d.org/forums.
 - Changed keyTimes from unsigned long[]  to unsigned int[]. (breaks compat. in AnimationTarget and Animation::Channel)
-- Fixed inconsistencies from Bundle::getObjectID() to Bundle::getObjectId() (breaks compat. in Bundle)
+- Fixes inconsistencies from Bundle::getObjectID() to Bundle::getObjectId() (breaks compat. in Bundle)
 - Fixes the texture coordinates of Mesh::createQuad(float x, float y, float width, float height).
 - Fixes line-wise distortion when loading RGB png's into textures that are non-power of two.
 - Fixes inconsistencies in createXXXX methods.  (breaks compat. in Scene)
@@ -41,7 +59,7 @@
 - Fixes Lua print logging.
 - Fixes Lua errors to be treated as runtime warnings.
 - Fixes setVertexData to pointers instead of constant data.
-- Fixed AudioSource so that it doesn't loop by default.
+- Fixes AudioSource so that it doesn't loop by default.
 - Fixes minor UI scrolling issues.
 
 ## v1.4.0
@@ -64,7 +82,7 @@
 - Fixes to FrameBuffer, RenderTarget and DepthStencilTarget.
 - Fixes user switching in MacOSX to other applications with Apple-Tab.
 - Fixes measureText with empty string to be proper size.
-- Fixed for aliased text by applying linear filtering by default on Fonts.
+- Fixes for aliased text by applying linear filtering by default on Fonts.
 - Fixes RenderState::StateBlock::bindNoRestore() issue where blend function was not restored to the proper defaults.
 - Fixes some inconsistencies in Game event method names for menuEvent. (breaks compat. in Game)
 - Fixes some inconsistencies with AnimationClip::getID() to be same as Node::getId() and other classes. (breaks compat. in AnimationClip)

+ 1 - 1
README.md

@@ -18,7 +18,7 @@ GamePlay3D is an open-source, cross-platform 3D native C++ game framework making
 ## Supported Desktop Platforms
 - Microsoft Windows 7 (using Microsoft Visual Studio 2010)
 - Apple MacOS X (using Apple XCode 4)
-- Linux (using CMake or CodeBlocks 10)
+- Linux (using CMake)
 
 ## Roadmap for 'next' branch
 - [Version 1.7.0 Milestone](https://github.com/blackberry/GamePlay/issues?milestone=4)

+ 3 - 3
gameplay-newproject.sh

@@ -159,7 +159,7 @@ gpPathAbs=`pwd`
 common_path=$projPath
 back=
 while [ "${gpPathAbs#$common_path}" = "${gpPathAbs}" ]; do
-	common_path=$(dirname $common_path)
+	common_path=$(dirname "$common_path")
 	if [ -z "$back" ]; then
 		back=".."
 	else
@@ -280,9 +280,9 @@ aliassedinplace "s*TEMPLATE_TITLE*$title*g" "$projPath/game.config"
 
 # Open the new project folder, use xdg-open on Linux
 if [[ "$unamestr" == "Linux" ]]; then
-	xdg-open $projPath
+	xdg-open "$projPath"
 else
-	open $projPath
+	open "$projPath"
 fi
 
 exit 0

+ 2 - 2
gameplay/CMakeLists.txt

@@ -333,8 +333,8 @@ set(GAMEPLAY_LUA
     src/lua/lua_GameClearFlags.h
     src/lua/lua_Gamepad.cpp
     src/lua/lua_Gamepad.h
-    src/lua/lua_GamepadButtonState.cpp
-    src/lua/lua_GamepadButtonState.h
+    src/lua/lua_GamepadButtonMapping.cpp
+    src/lua/lua_GamepadButtonMapping.h
     src/lua/lua_GamepadGamepadEvent.cpp
     src/lua/lua_GamepadGamepadEvent.h
     src/lua/lua_GameState.cpp

+ 0 - 605
gameplay/gameplay.cbp

@@ -1,605 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<CodeBlocks_project_file>
-	<FileVersion major="1" minor="6" />
-	<Project>
-		<Option title="gameplay" />
-		<Option pch_mode="2" />
-		<Option compiler="gcc" />
-		<Build>
-			<Target title="Debug">
-				<Option output="Debug/libgameplay" prefix_auto="1" extension_auto="1" />
-				<Option working_dir="" />
-				<Option object_output="Debug/" />
-				<Option type="2" />
-				<Option compiler="gcc" />
-				<Option createDefFile="1" />
-				<Compiler>
-					<Add option="-g" />
-				</Compiler>
-			</Target>
-			<Target title="Release">
-				<Option output="Release/libgameplay" prefix_auto="1" extension_auto="1" />
-				<Option working_dir="" />
-				<Option object_output="Release/" />
-				<Option type="2" />
-				<Option compiler="gcc" />
-				<Option createDefFile="1" />
-				<Compiler>
-					<Add option="-O2" />
-				</Compiler>
-				<Linker>
-					<Add option="-s" />
-				</Linker>
-			</Target>
-		</Build>
-		<Compiler>
-			<Add option="-pedantic" />
-			<Add option="-Wswitch" />
-			<Add option="-Wunused-variable" />
-			<Add directory="../external-deps/zlib/include" />
-			<Add directory="../external-deps/lua/include" />
-			<Add directory="../external-deps/libpng/include" />
-			<Add directory="../external-deps/bullet/include" />
-			<Add directory="../external-deps/oggvorbis/include" />
-			<Add directory="../gameplay/src" />
-		</Compiler>
-		<Linker>
-			<Add directory="../external-deps/lua/lib/linux" />
-			<Add directory="../external-deps/libpng/lib/linux" />
-			<Add directory="../external-deps/bullet/lib/linux" />
-			<Add directory="../external-deps/oggvorbis/lib/linux" />
-		</Linker>
-		<Unit filename="src/AIAgent.cpp" />
-		<Unit filename="src/AIAgent.h" />
-		<Unit filename="src/AIController.cpp" />
-		<Unit filename="src/AIController.h" />
-		<Unit filename="src/AIMessage.cpp" />
-		<Unit filename="src/AIMessage.h" />
-		<Unit filename="src/AIState.cpp" />
-		<Unit filename="src/AIState.h" />
-		<Unit filename="src/AIStateMachine.cpp" />
-		<Unit filename="src/AIStateMachine.h" />
-		<Unit filename="src/AbsoluteLayout.cpp" />
-		<Unit filename="src/AbsoluteLayout.h" />
-		<Unit filename="src/Animation.cpp" />
-		<Unit filename="src/Animation.h" />
-		<Unit filename="src/AnimationClip.cpp" />
-		<Unit filename="src/AnimationClip.h" />
-		<Unit filename="src/AnimationController.cpp" />
-		<Unit filename="src/AnimationController.h" />
-		<Unit filename="src/AnimationTarget.cpp" />
-		<Unit filename="src/AnimationTarget.h" />
-		<Unit filename="src/AnimationValue.cpp" />
-		<Unit filename="src/AnimationValue.h" />
-		<Unit filename="src/AudioBuffer.cpp" />
-		<Unit filename="src/AudioBuffer.h" />
-		<Unit filename="src/AudioController.cpp" />
-		<Unit filename="src/AudioController.h" />
-		<Unit filename="src/AudioListener.cpp" />
-		<Unit filename="src/AudioListener.h" />
-		<Unit filename="src/AudioSource.cpp" />
-		<Unit filename="src/AudioSource.h" />
-		<Unit filename="src/Base.h" />
-		<Unit filename="src/BoundingBox.cpp" />
-		<Unit filename="src/BoundingBox.h" />
-		<Unit filename="src/BoundingSphere.cpp" />
-		<Unit filename="src/BoundingSphere.h" />
-		<Unit filename="src/Bundle.cpp" />
-		<Unit filename="src/Bundle.h" />
-		<Unit filename="src/Button.cpp" />
-		<Unit filename="src/Button.h" />
-		<Unit filename="src/Camera.cpp" />
-		<Unit filename="src/Camera.h" />
-		<Unit filename="src/CheckBox.cpp" />
-		<Unit filename="src/CheckBox.h" />
-		<Unit filename="src/Container.cpp" />
-		<Unit filename="src/Container.h" />
-		<Unit filename="src/Control.cpp" />
-		<Unit filename="src/Control.h" />
-		<Unit filename="src/Curve.cpp" />
-		<Unit filename="src/Curve.h" />
-		<Unit filename="src/DebugNew.cpp" />
-		<Unit filename="src/DebugNew.h" />
-		<Unit filename="src/DepthStencilTarget.cpp" />
-		<Unit filename="src/DepthStencilTarget.h" />
-		<Unit filename="src/Effect.cpp" />
-		<Unit filename="src/Effect.h" />
-		<Unit filename="src/FileSystem.cpp" />
-		<Unit filename="src/FileSystem.h" />
-		<Unit filename="src/FlowLayout.cpp" />
-		<Unit filename="src/FlowLayout.h" />
-		<Unit filename="src/Font.cpp" />
-		<Unit filename="src/Font.h" />
-		<Unit filename="src/Form.cpp" />
-		<Unit filename="src/Form.h" />
-		<Unit filename="src/FrameBuffer.cpp" />
-		<Unit filename="src/FrameBuffer.h" />
-		<Unit filename="src/Frustum.cpp" />
-		<Unit filename="src/Frustum.h" />
-		<Unit filename="src/Game.cpp" />
-		<Unit filename="src/Game.h" />
-		<Unit filename="src/Gamepad.cpp" />
-		<Unit filename="src/Gamepad.h" />
-		<Unit filename="src/gameplay.h" />
-		<Unit filename="src/gameplay-main-android.cpp" />
-		<Unit filename="src/gameplay-main-blackberry.cpp" />
-		<Unit filename="src/gameplay-main-linux.cpp" />
-		<Unit filename="src/gameplay-main-windows.cpp" />
-		<Unit filename="src/Gesture.h" />
-		<Unit filename="src/HeightField.cpp" />
-		<Unit filename="src/HeightField.h" />
-		<Unit filename="src/Image.cpp" />
-		<Unit filename="src/Image.h" />
-		<Unit filename="src/Joint.cpp" />
-		<Unit filename="src/Joint.h" />
-		<Unit filename="src/Joystick.cpp" />
-		<Unit filename="src/Joystick.h" />
-		<Unit filename="src/Keyboard.h" />
-		<Unit filename="src/Label.cpp" />
-		<Unit filename="src/Label.h" />
-		<Unit filename="src/Layout.cpp" />
-		<Unit filename="src/Layout.h" />
-		<Unit filename="src/Light.cpp" />
-		<Unit filename="src/Light.h" />
-		<Unit filename="src/Logger.cpp" />
-		<Unit filename="src/Logger.h" />
-		<Unit filename="src/Material.cpp" />
-		<Unit filename="src/Material.h" />
-		<Unit filename="src/MaterialParameter.cpp" />
-		<Unit filename="src/MaterialParameter.h" />
-		<Unit filename="src/MathUtil.cpp" />
-		<Unit filename="src/MathUtil.h" />
-		<Unit filename="src/Matrix.cpp" />
-		<Unit filename="src/Matrix.h" />
-		<Unit filename="src/Mesh.cpp" />
-		<Unit filename="src/Mesh.h" />
-		<Unit filename="src/MeshBatch.cpp" />
-		<Unit filename="src/MeshBatch.h" />
-		<Unit filename="src/MeshPart.cpp" />
-		<Unit filename="src/MeshPart.h" />
-		<Unit filename="src/MeshSkin.cpp" />
-		<Unit filename="src/MeshSkin.h" />
-		<Unit filename="src/Model.cpp" />
-		<Unit filename="src/Model.h" />
-		<Unit filename="src/Mouse.h" />
-		<Unit filename="src/Node.cpp" />
-		<Unit filename="src/Node.h" />
-		<Unit filename="src/ParticleEmitter.cpp" />
-		<Unit filename="src/ParticleEmitter.h" />
-		<Unit filename="src/Pass.cpp" />
-		<Unit filename="src/Pass.h" />
-		<Unit filename="src/PhysicsCharacter.cpp" />
-		<Unit filename="src/PhysicsCharacter.h" />
-		<Unit filename="src/PhysicsCollisionObject.cpp" />
-		<Unit filename="src/PhysicsCollisionObject.h" />
-		<Unit filename="src/PhysicsCollisionShape.cpp" />
-		<Unit filename="src/PhysicsCollisionShape.h" />
-		<Unit filename="src/PhysicsConstraint.cpp" />
-		<Unit filename="src/PhysicsConstraint.h" />
-		<Unit filename="src/PhysicsController.cpp" />
-		<Unit filename="src/PhysicsController.h" />
-		<Unit filename="src/PhysicsFixedConstraint.cpp" />
-		<Unit filename="src/PhysicsFixedConstraint.h" />
-		<Unit filename="src/PhysicsGenericConstraint.cpp" />
-		<Unit filename="src/PhysicsGenericConstraint.h" />
-		<Unit filename="src/PhysicsGhostObject.cpp" />
-		<Unit filename="src/PhysicsGhostObject.h" />
-		<Unit filename="src/PhysicsHingeConstraint.cpp" />
-		<Unit filename="src/PhysicsHingeConstraint.h" />
-		<Unit filename="src/PhysicsRigidBody.cpp" />
-		<Unit filename="src/PhysicsRigidBody.h" />
-		<Unit filename="src/PhysicsSocketConstraint.cpp" />
-		<Unit filename="src/PhysicsSocketConstraint.h" />
-		<Unit filename="src/PhysicsSpringConstraint.cpp" />
-		<Unit filename="src/PhysicsSpringConstraint.h" />
-		<Unit filename="src/PhysicsVehicle.cpp" />
-		<Unit filename="src/PhysicsVehicle.h" />
-		<Unit filename="src/PhysicsVehicleWheel.cpp" />
-		<Unit filename="src/PhysicsVehicleWheel.h" />
-		<Unit filename="src/Plane.cpp" />
-		<Unit filename="src/Plane.h" />
-		<Unit filename="src/Platform.h" />
-		<Unit filename="src/PlatformAndroid.cpp" />
-		<Unit filename="src/PlatformBlackBerry.cpp" />
-		<Unit filename="src/PlatformLinux.cpp" />
-		<Unit filename="src/PlatformWindows.cpp" />
-		<Unit filename="src/Properties.cpp" />
-		<Unit filename="src/Properties.h" />
-		<Unit filename="src/Quaternion.cpp" />
-		<Unit filename="src/Quaternion.h" />
-		<Unit filename="src/RadioButton.cpp" />
-		<Unit filename="src/RadioButton.h" />
-		<Unit filename="src/Ray.cpp" />
-		<Unit filename="src/Ray.h" />
-		<Unit filename="src/Rectangle.cpp" />
-		<Unit filename="src/Rectangle.h" />
-		<Unit filename="src/Ref.cpp" />
-		<Unit filename="src/Ref.h" />
-		<Unit filename="src/RenderState.cpp" />
-		<Unit filename="src/RenderState.h" />
-		<Unit filename="src/RenderTarget.cpp" />
-		<Unit filename="src/RenderTarget.h" />
-		<Unit filename="src/Scene.cpp" />
-		<Unit filename="src/Scene.h" />
-		<Unit filename="src/SceneLoader.cpp" />
-		<Unit filename="src/SceneLoader.h" />
-		<Unit filename="src/ScreenDisplayer.cpp" />
-		<Unit filename="src/ScreenDisplayer.h" />
-		<Unit filename="src/ScriptController.cpp" />
-		<Unit filename="src/ScriptController.h" />
-		<Unit filename="src/ScriptTarget.cpp" />
-		<Unit filename="src/ScriptTarget.h" />
-		<Unit filename="src/Slider.cpp" />
-		<Unit filename="src/Slider.h" />
-		<Unit filename="src/SpriteBatch.cpp" />
-		<Unit filename="src/SpriteBatch.h" />
-		<Unit filename="src/Technique.cpp" />
-		<Unit filename="src/Technique.h" />
-		<Unit filename="src/Terrain.cpp" />
-		<Unit filename="src/Terrain.h" />
-		<Unit filename="src/TerrainPatch.cpp" />
-		<Unit filename="src/TerrainPatch.h" />
-		<Unit filename="src/TextBox.cpp" />
-		<Unit filename="src/TextBox.h" />
-		<Unit filename="src/Texture.cpp" />
-		<Unit filename="src/Texture.h" />
-		<Unit filename="src/Theme.cpp" />
-		<Unit filename="src/Theme.h" />
-		<Unit filename="src/ThemeStyle.cpp" />
-		<Unit filename="src/ThemeStyle.h" />
-		<Unit filename="src/TimeListener.h" />
-		<Unit filename="src/Touch.h" />
-		<Unit filename="src/Transform.cpp" />
-		<Unit filename="src/Transform.h" />
-		<Unit filename="src/Vector2.cpp" />
-		<Unit filename="src/Vector2.h" />
-		<Unit filename="src/Vector3.cpp" />
-		<Unit filename="src/Vector3.h" />
-		<Unit filename="src/Vector4.cpp" />
-		<Unit filename="src/Vector4.h" />
-		<Unit filename="src/VertexAttributeBinding.cpp" />
-		<Unit filename="src/VertexAttributeBinding.h" />
-		<Unit filename="src/VertexFormat.cpp" />
-		<Unit filename="src/VertexFormat.h" />
-		<Unit filename="src/VerticalLayout.cpp" />
-		<Unit filename="src/VerticalLayout.h" />
-		<Unit filename="src/lua/lua_AIAgent.cpp" />
-		<Unit filename="src/lua/lua_AIAgent.h" />
-		<Unit filename="src/lua/lua_AIAgentListener.cpp" />
-		<Unit filename="src/lua/lua_AIAgentListener.h" />
-		<Unit filename="src/lua/lua_AIController.cpp" />
-		<Unit filename="src/lua/lua_AIController.h" />
-		<Unit filename="src/lua/lua_AIMessage.cpp" />
-		<Unit filename="src/lua/lua_AIMessage.h" />
-		<Unit filename="src/lua/lua_AIMessageParameterType.cpp" />
-		<Unit filename="src/lua/lua_AIMessageParameterType.h" />
-		<Unit filename="src/lua/lua_AIState.cpp" />
-		<Unit filename="src/lua/lua_AIState.h" />
-		<Unit filename="src/lua/lua_AIStateListener.cpp" />
-		<Unit filename="src/lua/lua_AIStateListener.h" />
-		<Unit filename="src/lua/lua_AIStateMachine.cpp" />
-		<Unit filename="src/lua/lua_AIStateMachine.h" />
-		<Unit filename="src/lua/lua_AbsoluteLayout.cpp" />
-		<Unit filename="src/lua/lua_AbsoluteLayout.h" />
-		<Unit filename="src/lua/lua_Animation.cpp" />
-		<Unit filename="src/lua/lua_Animation.h" />
-		<Unit filename="src/lua/lua_AnimationClip.cpp" />
-		<Unit filename="src/lua/lua_AnimationClip.h" />
-		<Unit filename="src/lua/lua_AnimationClipListener.cpp" />
-		<Unit filename="src/lua/lua_AnimationClipListener.h" />
-		<Unit filename="src/lua/lua_AnimationClipListenerEventType.cpp" />
-		<Unit filename="src/lua/lua_AnimationClipListenerEventType.h" />
-		<Unit filename="src/lua/lua_AnimationController.cpp" />
-		<Unit filename="src/lua/lua_AnimationController.h" />
-		<Unit filename="src/lua/lua_AnimationTarget.cpp" />
-		<Unit filename="src/lua/lua_AnimationTarget.h" />
-		<Unit filename="src/lua/lua_AnimationValue.cpp" />
-		<Unit filename="src/lua/lua_AnimationValue.h" />
-		<Unit filename="src/lua/lua_AudioBuffer.cpp" />
-		<Unit filename="src/lua/lua_AudioBuffer.h" />
-		<Unit filename="src/lua/lua_AudioController.cpp" />
-		<Unit filename="src/lua/lua_AudioController.h" />
-		<Unit filename="src/lua/lua_AudioListener.cpp" />
-		<Unit filename="src/lua/lua_AudioListener.h" />
-		<Unit filename="src/lua/lua_AudioSource.cpp" />
-		<Unit filename="src/lua/lua_AudioSource.h" />
-		<Unit filename="src/lua/lua_AudioSourceState.cpp" />
-		<Unit filename="src/lua/lua_AudioSourceState.h" />
-		<Unit filename="src/lua/lua_BoundingBox.cpp" />
-		<Unit filename="src/lua/lua_BoundingBox.h" />
-		<Unit filename="src/lua/lua_BoundingSphere.cpp" />
-		<Unit filename="src/lua/lua_BoundingSphere.h" />
-		<Unit filename="src/lua/lua_Bundle.cpp" />
-		<Unit filename="src/lua/lua_Bundle.h" />
-		<Unit filename="src/lua/lua_Button.cpp" />
-		<Unit filename="src/lua/lua_Button.h" />
-		<Unit filename="src/lua/lua_Camera.cpp" />
-		<Unit filename="src/lua/lua_Camera.h" />
-		<Unit filename="src/lua/lua_CameraType.cpp" />
-		<Unit filename="src/lua/lua_CameraType.h" />
-		<Unit filename="src/lua/lua_CheckBox.cpp" />
-		<Unit filename="src/lua/lua_CheckBox.h" />
-		<Unit filename="src/lua/lua_Container.cpp" />
-		<Unit filename="src/lua/lua_Container.h" />
-		<Unit filename="src/lua/lua_ContainerScroll.cpp" />
-		<Unit filename="src/lua/lua_ContainerScroll.h" />
-		<Unit filename="src/lua/lua_Control.cpp" />
-		<Unit filename="src/lua/lua_Control.h" />
-		<Unit filename="src/lua/lua_ControlAlignment.cpp" />
-		<Unit filename="src/lua/lua_ControlAlignment.h" />
-		<Unit filename="src/lua/lua_ControlListener.cpp" />
-		<Unit filename="src/lua/lua_ControlListener.h" />
-		<Unit filename="src/lua/lua_ControlListenerEventType.cpp" />
-		<Unit filename="src/lua/lua_ControlListenerEventType.h" />
-		<Unit filename="src/lua/lua_ControlState.cpp" />
-		<Unit filename="src/lua/lua_ControlState.h" />
-		<Unit filename="src/lua/lua_Curve.cpp" />
-		<Unit filename="src/lua/lua_Curve.h" />
-		<Unit filename="src/lua/lua_CurveInterpolationType.cpp" />
-		<Unit filename="src/lua/lua_CurveInterpolationType.h" />
-		<Unit filename="src/lua/lua_DepthStencilTarget.cpp" />
-		<Unit filename="src/lua/lua_DepthStencilTarget.h" />
-		<Unit filename="src/lua/lua_DepthStencilTargetFormat.cpp" />
-		<Unit filename="src/lua/lua_DepthStencilTargetFormat.h" />
-		<Unit filename="src/lua/lua_Effect.cpp" />
-		<Unit filename="src/lua/lua_Effect.h" />
-		<Unit filename="src/lua/lua_FileSystem.cpp" />
-		<Unit filename="src/lua/lua_FileSystem.h" />
-		<Unit filename="src/lua/lua_FlowLayout.cpp" />
-		<Unit filename="src/lua/lua_FlowLayout.h" />
-		<Unit filename="src/lua/lua_Font.cpp" />
-		<Unit filename="src/lua/lua_Font.h" />
-		<Unit filename="src/lua/lua_FontJustify.cpp" />
-		<Unit filename="src/lua/lua_FontJustify.h" />
-		<Unit filename="src/lua/lua_FontStyle.cpp" />
-		<Unit filename="src/lua/lua_FontStyle.h" />
-		<Unit filename="src/lua/lua_FontText.cpp" />
-		<Unit filename="src/lua/lua_FontText.h" />
-		<Unit filename="src/lua/lua_Form.cpp" />
-		<Unit filename="src/lua/lua_Form.h" />
-		<Unit filename="src/lua/lua_FrameBuffer.cpp" />
-		<Unit filename="src/lua/lua_FrameBuffer.h" />
-		<Unit filename="src/lua/lua_Frustum.cpp" />
-		<Unit filename="src/lua/lua_Frustum.h" />
-		<Unit filename="src/lua/lua_Game.cpp" />
-		<Unit filename="src/lua/lua_Game.h" />
-		<Unit filename="src/lua/lua_GameClearFlags.cpp" />
-		<Unit filename="src/lua/lua_GameClearFlags.h" />
-		<Unit filename="src/lua/lua_GameState.cpp" />
-		<Unit filename="src/lua/lua_GameState.h" />
-		<Unit filename="src/lua/lua_Gamepad.cpp" />
-		<Unit filename="src/lua/lua_Gamepad.h" />
-		<Unit filename="src/lua/lua_GamepadButtonState.cpp" />
-		<Unit filename="src/lua/lua_GamepadButtonState.h" />
-		<Unit filename="src/lua/lua_GamepadGamepadEvent.cpp" />
-		<Unit filename="src/lua/lua_GamepadGamepadEvent.h" />
-		<Unit filename="src/lua/lua_Gesture.cpp" />
-		<Unit filename="src/lua/lua_Gesture.h" />
-		<Unit filename="src/lua/lua_GestureGestureEvent.cpp" />
-		<Unit filename="src/lua/lua_GestureGestureEvent.h" />
-		<Unit filename="src/lua/lua_Global.cpp" />
-		<Unit filename="src/lua/lua_Global.h" />
-		<Unit filename="src/lua/lua_HeightField.cpp" />
-		<Unit filename="src/lua/lua_HeightField.h" />
-		<Unit filename="src/lua/lua_Image.cpp" />
-		<Unit filename="src/lua/lua_Image.h" />
-		<Unit filename="src/lua/lua_ImageFormat.cpp" />
-		<Unit filename="src/lua/lua_ImageFormat.h" />
-		<Unit filename="src/lua/lua_Joint.cpp" />
-		<Unit filename="src/lua/lua_Joint.h" />
-		<Unit filename="src/lua/lua_Joystick.cpp" />
-		<Unit filename="src/lua/lua_Joystick.h" />
-		<Unit filename="src/lua/lua_Keyboard.cpp" />
-		<Unit filename="src/lua/lua_Keyboard.h" />
-		<Unit filename="src/lua/lua_KeyboardKey.cpp" />
-		<Unit filename="src/lua/lua_KeyboardKey.h" />
-		<Unit filename="src/lua/lua_KeyboardKeyEvent.cpp" />
-		<Unit filename="src/lua/lua_KeyboardKeyEvent.h" />
-		<Unit filename="src/lua/lua_Label.cpp" />
-		<Unit filename="src/lua/lua_Label.h" />
-		<Unit filename="src/lua/lua_Layout.cpp" />
-		<Unit filename="src/lua/lua_Layout.h" />
-		<Unit filename="src/lua/lua_LayoutType.cpp" />
-		<Unit filename="src/lua/lua_LayoutType.h" />
-		<Unit filename="src/lua/lua_Light.cpp" />
-		<Unit filename="src/lua/lua_Light.h" />
-		<Unit filename="src/lua/lua_LightType.cpp" />
-		<Unit filename="src/lua/lua_LightType.h" />
-		<Unit filename="src/lua/lua_Logger.cpp" />
-		<Unit filename="src/lua/lua_Logger.h" />
-		<Unit filename="src/lua/lua_LoggerLevel.cpp" />
-		<Unit filename="src/lua/lua_LoggerLevel.h" />
-		<Unit filename="src/lua/lua_Material.cpp" />
-		<Unit filename="src/lua/lua_Material.h" />
-		<Unit filename="src/lua/lua_MaterialParameter.cpp" />
-		<Unit filename="src/lua/lua_MaterialParameter.h" />
-		<Unit filename="src/lua/lua_MathUtil.cpp" />
-		<Unit filename="src/lua/lua_MathUtil.h" />
-		<Unit filename="src/lua/lua_Matrix.cpp" />
-		<Unit filename="src/lua/lua_Matrix.h" />
-		<Unit filename="src/lua/lua_Mesh.cpp" />
-		<Unit filename="src/lua/lua_Mesh.h" />
-		<Unit filename="src/lua/lua_MeshBatch.cpp" />
-		<Unit filename="src/lua/lua_MeshBatch.h" />
-		<Unit filename="src/lua/lua_MeshIndexFormat.cpp" />
-		<Unit filename="src/lua/lua_MeshIndexFormat.h" />
-		<Unit filename="src/lua/lua_MeshPart.cpp" />
-		<Unit filename="src/lua/lua_MeshPart.h" />
-		<Unit filename="src/lua/lua_MeshPrimitiveType.cpp" />
-		<Unit filename="src/lua/lua_MeshPrimitiveType.h" />
-		<Unit filename="src/lua/lua_MeshSkin.cpp" />
-		<Unit filename="src/lua/lua_MeshSkin.h" />
-		<Unit filename="src/lua/lua_Model.cpp" />
-		<Unit filename="src/lua/lua_Model.h" />
-		<Unit filename="src/lua/lua_Mouse.cpp" />
-		<Unit filename="src/lua/lua_Mouse.h" />
-		<Unit filename="src/lua/lua_MouseMouseEvent.cpp" />
-		<Unit filename="src/lua/lua_MouseMouseEvent.h" />
-		<Unit filename="src/lua/lua_Node.cpp" />
-		<Unit filename="src/lua/lua_Node.h" />
-		<Unit filename="src/lua/lua_NodeCloneContext.cpp" />
-		<Unit filename="src/lua/lua_NodeCloneContext.h" />
-		<Unit filename="src/lua/lua_NodeType.cpp" />
-		<Unit filename="src/lua/lua_NodeType.h" />
-		<Unit filename="src/lua/lua_ParticleEmitter.cpp" />
-		<Unit filename="src/lua/lua_ParticleEmitter.h" />
-		<Unit filename="src/lua/lua_ParticleEmitterTextureBlending.cpp" />
-		<Unit filename="src/lua/lua_ParticleEmitterTextureBlending.h" />
-		<Unit filename="src/lua/lua_Pass.cpp" />
-		<Unit filename="src/lua/lua_Pass.h" />
-		<Unit filename="src/lua/lua_PhysicsCharacter.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCharacter.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObject.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObject.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectCollisionListener.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectCollisionListener.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectCollisionListenerEventType.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectCollisionListenerEventType.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectCollisionPair.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectCollisionPair.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectType.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionObjectType.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionShape.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionShape.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionShapeDefinition.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionShapeDefinition.h" />
-		<Unit filename="src/lua/lua_PhysicsCollisionShapeType.cpp" />
-		<Unit filename="src/lua/lua_PhysicsCollisionShapeType.h" />
-		<Unit filename="src/lua/lua_PhysicsConstraint.cpp" />
-		<Unit filename="src/lua/lua_PhysicsConstraint.h" />
-		<Unit filename="src/lua/lua_PhysicsController.cpp" />
-		<Unit filename="src/lua/lua_PhysicsController.h" />
-		<Unit filename="src/lua/lua_PhysicsControllerHitFilter.cpp" />
-		<Unit filename="src/lua/lua_PhysicsControllerHitFilter.h" />
-		<Unit filename="src/lua/lua_PhysicsControllerHitResult.cpp" />
-		<Unit filename="src/lua/lua_PhysicsControllerHitResult.h" />
-		<Unit filename="src/lua/lua_PhysicsControllerListener.cpp" />
-		<Unit filename="src/lua/lua_PhysicsControllerListener.h" />
-		<Unit filename="src/lua/lua_PhysicsControllerListenerEventType.cpp" />
-		<Unit filename="src/lua/lua_PhysicsControllerListenerEventType.h" />
-		<Unit filename="src/lua/lua_PhysicsFixedConstraint.cpp" />
-		<Unit filename="src/lua/lua_PhysicsFixedConstraint.h" />
-		<Unit filename="src/lua/lua_PhysicsGenericConstraint.cpp" />
-		<Unit filename="src/lua/lua_PhysicsGenericConstraint.h" />
-		<Unit filename="src/lua/lua_PhysicsGhostObject.cpp" />
-		<Unit filename="src/lua/lua_PhysicsGhostObject.h" />
-		<Unit filename="src/lua/lua_PhysicsHingeConstraint.cpp" />
-		<Unit filename="src/lua/lua_PhysicsHingeConstraint.h" />
-		<Unit filename="src/lua/lua_PhysicsRigidBody.cpp" />
-		<Unit filename="src/lua/lua_PhysicsRigidBody.h" />
-		<Unit filename="src/lua/lua_PhysicsRigidBodyParameters.cpp" />
-		<Unit filename="src/lua/lua_PhysicsRigidBodyParameters.h" />
-		<Unit filename="src/lua/lua_PhysicsSocketConstraint.cpp" />
-		<Unit filename="src/lua/lua_PhysicsSocketConstraint.h" />
-		<Unit filename="src/lua/lua_PhysicsSpringConstraint.cpp" />
-		<Unit filename="src/lua/lua_PhysicsSpringConstraint.h" />
-		<Unit filename="src/lua/lua_PhysicsVehicle.cpp" />
-		<Unit filename="src/lua/lua_PhysicsVehicle.h" />
-		<Unit filename="src/lua/lua_PhysicsVehicleWheel.cpp" />
-		<Unit filename="src/lua/lua_PhysicsVehicleWheel.h" />
-		<Unit filename="src/lua/lua_Plane.cpp" />
-		<Unit filename="src/lua/lua_Plane.h" />
-		<Unit filename="src/lua/lua_Platform.cpp" />
-		<Unit filename="src/lua/lua_Platform.h" />
-		<Unit filename="src/lua/lua_Properties.cpp" />
-		<Unit filename="src/lua/lua_Properties.h" />
-		<Unit filename="src/lua/lua_PropertiesType.cpp" />
-		<Unit filename="src/lua/lua_PropertiesType.h" />
-		<Unit filename="src/lua/lua_Quaternion.cpp" />
-		<Unit filename="src/lua/lua_Quaternion.h" />
-		<Unit filename="src/lua/lua_RadioButton.cpp" />
-		<Unit filename="src/lua/lua_RadioButton.h" />
-		<Unit filename="src/lua/lua_Ray.cpp" />
-		<Unit filename="src/lua/lua_Ray.h" />
-		<Unit filename="src/lua/lua_Rectangle.cpp" />
-		<Unit filename="src/lua/lua_Rectangle.h" />
-		<Unit filename="src/lua/lua_Ref.cpp" />
-		<Unit filename="src/lua/lua_Ref.h" />
-		<Unit filename="src/lua/lua_RenderState.cpp" />
-		<Unit filename="src/lua/lua_RenderState.h" />
-		<Unit filename="src/lua/lua_RenderStateAutoBinding.cpp" />
-		<Unit filename="src/lua/lua_RenderStateAutoBinding.h" />
-		<Unit filename="src/lua/lua_RenderStateBlend.cpp" />
-		<Unit filename="src/lua/lua_RenderStateBlend.h" />
-		<Unit filename="src/lua/lua_RenderStateDepthFunction.cpp" />
-		<Unit filename="src/lua/lua_RenderStateDepthFunction.h" />
-		<Unit filename="src/lua/lua_RenderStateStateBlock.cpp" />
-		<Unit filename="src/lua/lua_RenderStateStateBlock.h" />
-		<Unit filename="src/lua/lua_RenderTarget.cpp" />
-		<Unit filename="src/lua/lua_RenderTarget.h" />
-		<Unit filename="src/lua/lua_Scene.cpp" />
-		<Unit filename="src/lua/lua_Scene.h" />
-		<Unit filename="src/lua/lua_SceneDebugFlags.cpp" />
-		<Unit filename="src/lua/lua_SceneDebugFlags.h" />
-		<Unit filename="src/lua/lua_ScreenDisplayer.cpp" />
-		<Unit filename="src/lua/lua_ScreenDisplayer.h" />
-		<Unit filename="src/lua/lua_ScriptController.cpp" />
-		<Unit filename="src/lua/lua_ScriptController.h" />
-		<Unit filename="src/lua/lua_ScriptTarget.cpp" />
-		<Unit filename="src/lua/lua_ScriptTarget.h" />
-		<Unit filename="src/lua/lua_Slider.cpp" />
-		<Unit filename="src/lua/lua_Slider.h" />
-		<Unit filename="src/lua/lua_SpriteBatch.cpp" />
-		<Unit filename="src/lua/lua_SpriteBatch.h" />
-		<Unit filename="src/lua/lua_Technique.cpp" />
-		<Unit filename="src/lua/lua_Technique.h" />
-		<Unit filename="src/lua/lua_Terrain.cpp" />
-		<Unit filename="src/lua/lua_Terrain.h" />
-		<Unit filename="src/lua/lua_TerrainFlags.cpp" />
-		<Unit filename="src/lua/lua_TerrainFlags.h" />
-		<Unit filename="src/lua/lua_TextBox.cpp" />
-		<Unit filename="src/lua/lua_TextBox.h" />
-		<Unit filename="src/lua/lua_Texture.cpp" />
-		<Unit filename="src/lua/lua_Texture.h" />
-		<Unit filename="src/lua/lua_TextureFilter.cpp" />
-		<Unit filename="src/lua/lua_TextureFilter.h" />
-		<Unit filename="src/lua/lua_TextureFormat.cpp" />
-		<Unit filename="src/lua/lua_TextureFormat.h" />
-		<Unit filename="src/lua/lua_TextureSampler.cpp" />
-		<Unit filename="src/lua/lua_TextureSampler.h" />
-		<Unit filename="src/lua/lua_TextureWrap.cpp" />
-		<Unit filename="src/lua/lua_TextureWrap.h" />
-		<Unit filename="src/lua/lua_Theme.cpp" />
-		<Unit filename="src/lua/lua_Theme.h" />
-		<Unit filename="src/lua/lua_ThemeSideRegions.cpp" />
-		<Unit filename="src/lua/lua_ThemeSideRegions.h" />
-		<Unit filename="src/lua/lua_ThemeStyle.cpp" />
-		<Unit filename="src/lua/lua_ThemeStyle.h" />
-		<Unit filename="src/lua/lua_ThemeThemeImage.cpp" />
-		<Unit filename="src/lua/lua_ThemeThemeImage.h" />
-		<Unit filename="src/lua/lua_ThemeUVs.cpp" />
-		<Unit filename="src/lua/lua_ThemeUVs.h" />
-		<Unit filename="src/lua/lua_Touch.cpp" />
-		<Unit filename="src/lua/lua_Touch.h" />
-		<Unit filename="src/lua/lua_TouchTouchEvent.cpp" />
-		<Unit filename="src/lua/lua_TouchTouchEvent.h" />
-		<Unit filename="src/lua/lua_Transform.cpp" />
-		<Unit filename="src/lua/lua_Transform.h" />
-		<Unit filename="src/lua/lua_TransformListener.cpp" />
-		<Unit filename="src/lua/lua_TransformListener.h" />
-		<Unit filename="src/lua/lua_Uniform.cpp" />
-		<Unit filename="src/lua/lua_Uniform.h" />
-		<Unit filename="src/lua/lua_Vector2.cpp" />
-		<Unit filename="src/lua/lua_Vector2.h" />
-		<Unit filename="src/lua/lua_Vector3.cpp" />
-		<Unit filename="src/lua/lua_Vector3.h" />
-		<Unit filename="src/lua/lua_Vector4.cpp" />
-		<Unit filename="src/lua/lua_Vector4.h" />
-		<Unit filename="src/lua/lua_VertexAttributeBinding.cpp" />
-		<Unit filename="src/lua/lua_VertexAttributeBinding.h" />
-		<Unit filename="src/lua/lua_VertexFormat.cpp" />
-		<Unit filename="src/lua/lua_VertexFormat.h" />
-		<Unit filename="src/lua/lua_VertexFormatElement.cpp" />
-		<Unit filename="src/lua/lua_VertexFormatElement.h" />
-		<Unit filename="src/lua/lua_VertexFormatUsage.cpp" />
-		<Unit filename="src/lua/lua_VertexFormatUsage.h" />
-		<Unit filename="src/lua/lua_VerticalLayout.cpp" />
-		<Unit filename="src/lua/lua_VerticalLayout.h" />
-		<Unit filename="src/lua/lua_all_bindings.cpp" />
-		<Unit filename="src/lua/lua_all_bindings.h" />
-		<Extensions>
-			<code_completion />
-			<debugger />
-		</Extensions>
-	</Project>
-</CodeBlocks_project_file>

Разница между файлами не показана из-за своего большого размера
+ 317 - 317
gameplay/gameplay.vcxproj.filters


+ 4 - 56
gameplay/gameplay.xcodeproj/project.pbxproj

@@ -82,8 +82,6 @@
 		42789FDF15B0E83700866F5B /* AIStateMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 42789FCB15B0E83700866F5B /* AIStateMachine.h */; };
 		428390991489D6E800E2B2F5 /* SceneLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 428390971489D6E800E2B2F5 /* SceneLoader.cpp */; };
 		4283909A1489D6E800E2B2F5 /* SceneLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 428390981489D6E800E2B2F5 /* SceneLoader.h */; };
-		42B701F715B08177002BB8C3 /* liblua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42B701F615B08177002BB8C3 /* liblua.a */; };
-		42B701F915B081B7002BB8C3 /* liblua.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42B701F815B081B6002BB8C3 /* liblua.a */; };
 		42B7FAE315B08049002BB8C3 /* ScreenDisplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42B7FADD15B08049002BB8C3 /* ScreenDisplayer.cpp */; };
 		42B7FAE415B08049002BB8C3 /* ScreenDisplayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42B7FADD15B08049002BB8C3 /* ScreenDisplayer.cpp */; };
 		42B7FAE515B08049002BB8C3 /* ScriptController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42B7FADE15B08049002BB8C3 /* ScriptController.cpp */; };
@@ -716,12 +714,6 @@
 		42BCD6CD15EFD0F300C0E076 /* lua_VerticalLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42BCD45715EFD0F300C0E076 /* lua_VerticalLayout.cpp */; };
 		42BCD6CE15EFD0F300C0E076 /* lua_VerticalLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 42BCD45815EFD0F300C0E076 /* lua_VerticalLayout.h */; };
 		42BCD6CF15EFD0F300C0E076 /* lua_VerticalLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 42BCD45815EFD0F300C0E076 /* lua_VerticalLayout.h */; };
-		42CCD556146EC1EB00353661 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CCD555146EC1EB00353661 /* libpng.a */; };
-		42CD0DAB147D8EA80000361E /* libbullet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA6147D8EA80000361E /* libbullet.a */; };
-		42CD0DAC147D8EA80000361E /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA7147D8EA80000361E /* libogg.a */; };
-		42CD0DAD147D8EA80000361E /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA8147D8EA80000361E /* libvorbis.a */; };
-		42CD0DAE147D8EA80000361E /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA9147D8EA80000361E /* libvorbisenc.a */; };
-		42CD0DAF147D8EA80000361E /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DAA147D8EA80000361E /* libvorbisfile.a */; };
 		42CD0E46147D8FF60000361E /* Animation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42CD0DB1147D8FF50000361E /* Animation.cpp */; };
 		42CD0E47147D8FF60000361E /* Animation.h in Headers */ = {isa = PBXBuildFile; fileRef = 42CD0DB2147D8FF50000361E /* Animation.h */; };
 		42CD0E48147D8FF60000361E /* AnimationClip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42CD0DB3147D8FF50000361E /* AnimationClip.cpp */; };
@@ -910,12 +902,6 @@
 		5B04C57114BFCFE100EB0071 /* SceneLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 428390971489D6E800E2B2F5 /* SceneLoader.cpp */; };
 		5B04C57214BFCFE100EB0071 /* Image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4208DEE614A4079F00D3C511 /* Image.cpp */; };
 		5B04C57314BFCFE100EB0071 /* MeshBatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4201818D14A41B18008C3F56 /* MeshBatch.cpp */; };
-		5B04C57514BFCFE100EB0071 /* libbullet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA6147D8EA80000361E /* libbullet.a */; };
-		5B04C57614BFCFE100EB0071 /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA7147D8EA80000361E /* libogg.a */; };
-		5B04C57714BFCFE100EB0071 /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA8147D8EA80000361E /* libvorbis.a */; };
-		5B04C57814BFCFE100EB0071 /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DA9147D8EA80000361E /* libvorbisenc.a */; };
-		5B04C57914BFCFE100EB0071 /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CD0DAA147D8EA80000361E /* libvorbisfile.a */; };
-		5B04C57A14BFCFE100EB0071 /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 42CCD555146EC1EB00353661 /* libpng.a */; };
 		5B04C58114BFCFE100EB0071 /* Animation.h in Headers */ = {isa = PBXBuildFile; fileRef = 42CD0DB2147D8FF50000361E /* Animation.h */; };
 		5B04C58214BFCFE100EB0071 /* AnimationClip.h in Headers */ = {isa = PBXBuildFile; fileRef = 42CD0DB4147D8FF50000361E /* AnimationClip.h */; };
 		5B04C58314BFCFE100EB0071 /* AnimationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 42CD0DB6147D8FF50000361E /* AnimationController.h */; };
@@ -1734,14 +1720,7 @@
 				5B2BC7621512514D00D176CD /* QuartzCore.framework in Frameworks */,
 				5B2BC75F1512514500D176CD /* OpenAL.framework in Frameworks */,
 				5B2BC7601512514500D176CD /* OpenGL.framework in Frameworks */,
-				42CD0DAB147D8EA80000361E /* libbullet.a in Frameworks */,
-				42CD0DAC147D8EA80000361E /* libogg.a in Frameworks */,
-				42CD0DAD147D8EA80000361E /* libvorbis.a in Frameworks */,
-				42CD0DAE147D8EA80000361E /* libvorbisenc.a in Frameworks */,
-				42CD0DAF147D8EA80000361E /* libvorbisfile.a in Frameworks */,
-				42CCD556146EC1EB00353661 /* libpng.a in Frameworks */,
 				4234D99E14686C52003031B3 /* Cocoa.framework in Frameworks */,
-				42B701F715B08177002BB8C3 /* liblua.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1756,13 +1735,6 @@
 				5BAF202B152F2AF0003E2AC3 /* OpenGLES.framework in Frameworks */,
 				5BAF202C152F2AF0003E2AC3 /* QuartzCore.framework in Frameworks */,
 				5BAF202D152F2AF0003E2AC3 /* UIKit.framework in Frameworks */,
-				5B04C57514BFCFE100EB0071 /* libbullet.a in Frameworks */,
-				5B04C57614BFCFE100EB0071 /* libogg.a in Frameworks */,
-				5B04C57714BFCFE100EB0071 /* libvorbis.a in Frameworks */,
-				5B04C57814BFCFE100EB0071 /* libvorbisenc.a in Frameworks */,
-				5B04C57914BFCFE100EB0071 /* libvorbisfile.a in Frameworks */,
-				5B04C57A14BFCFE100EB0071 /* libpng.a in Frameworks */,
-				42B701F915B081B7002BB8C3 /* liblua.a in Frameworks */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -3684,13 +3656,7 @@
 					"../external-deps/oggvorbis/include",
 					./gameplay,
 				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../external-deps/libpng/lib/macosx\"",
-					"\"$(SRCROOT)/../external-deps/bullet/lib/macosx\"",
-					"\"$(SRCROOT)/../external-deps/oggvorbis/lib/macosx\"",
-					"\"$(SRCROOT)/../external-deps/lua/lib/macosx\"",
-				);
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
 				MACOSX_DEPLOYMENT_TARGET = 10.7;
 				ONLY_ACTIVE_ARCH = YES;
 				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
@@ -3729,13 +3695,7 @@
 					"../external-deps/oggvorbis/include",
 					./gameplay,
 				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../external-deps/libpng/lib/macosx\"",
-					"\"$(SRCROOT)/../external-deps/bullet/lib/macosx\"",
-					"\"$(SRCROOT)/../external-deps/oggvorbis/lib/macosx\"",
-					"\"$(SRCROOT)/../external-deps/lua/lib/macosx\"",
-				);
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
 				MACOSX_DEPLOYMENT_TARGET = 10.7;
 				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
 				PRODUCT_NAME = gameplay;
@@ -3775,13 +3735,7 @@
 					"../external-deps/bullet/include",
 					"../external-deps/oggvorbis/include",
 				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../external-deps/libpng/lib/ios/$(CURRENT_ARCH)\"",
-					"\"$(SRCROOT)/../external-deps/bullet/lib/ios/$(CURRENT_ARCH)\"",
-					"\"$(SRCROOT)/../external-deps/oggvorbis/lib/ios/$(CURRENT_ARCH)\"",
-					"\"$(SRCROOT)/../external-deps/lua/lib/ios/$(CURRENT_ARCH)\"",
-				);
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
 				MACOSX_DEPLOYMENT_TARGET = 10.7;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";
@@ -3823,13 +3777,7 @@
 					"../external-deps/bullet/include",
 					"../external-deps/oggvorbis/include",
 				);
-				LIBRARY_SEARCH_PATHS = (
-					"$(inherited)",
-					"\"$(SRCROOT)/../external-deps/libpng/lib/ios/$(CURRENT_ARCH)\"",
-					"\"$(SRCROOT)/../external-deps/bullet/lib/ios/$(CURRENT_ARCH)\"",
-					"\"$(SRCROOT)/../external-deps/oggvorbis/lib/ios/$(CURRENT_ARCH)\"",
-					"\"$(SRCROOT)/../external-deps/lua/lib/ios/armv7\"",
-				);
+				LIBRARY_SEARCH_PATHS = "$(inherited)";
 				MACOSX_DEPLOYMENT_TARGET = 10.7;
 				OTHER_LDFLAGS = "-ObjC";
 				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;

+ 9 - 9
gameplay/res/shaders/colored-unlit.frag

@@ -2,14 +2,6 @@
 precision highp float;
 #endif
 
-// Inputs
-#if defined(VERTEX_COLOR)
-varying vec3 v_color;						// Input Vertex color ( r g b )
-#endif
-#if defined(TEXTURE_LIGHTMAP)
-varying vec2 v_texCoord;
-#endif
-
 // Uniforms
 uniform vec4 u_diffuseColor;               	// Diffuse color
 #if defined(TEXTURE_LIGHTMAP)
@@ -22,7 +14,15 @@ uniform vec4 u_modulateColor;               // Modulation color
 uniform float u_modulateAlpha;              // Modulation alpha
 #endif
 
-// Fragment program
+// Varyings
+#if defined(VERTEX_COLOR)
+varying vec3 v_color;						// Input Vertex color ( r g b )
+#endif
+#if defined(TEXTURE_LIGHTMAP)
+varying vec2 v_texCoord;
+#endif
+
+
 void main()
 {
     // Set base diffuse color

+ 12 - 12
gameplay/res/shaders/colored-unlit.vert

@@ -1,4 +1,4 @@
-// Inputs
+// Attributes
 attribute vec4 a_position;									// Vertex Position							(x, y, z, w)
 #if defined(TEXTURE_LIGHTMAP)
 attribute vec2 a_texCoord;                                  // Texture Coordinate (for lightmapping)
@@ -11,7 +11,13 @@ attribute vec4 a_blendIndices;								// Vertex blend index int u_matrixPalette
 attribute vec3 a_color;										// Vertex Color								(r, g, b)
 #endif
 
-// Outputs
+// Uniforms
+uniform mat4 u_worldViewProjectionMatrix;					// Matrix to transform a position to clip space.
+#if defined(SKINNING)
+uniform vec4 u_matrixPalette[SKINNING_JOINT_COUNT * 3];		// Array of 4x3 matrices as an array of floats
+#endif
+
+// Varyings
 #if defined(TEXTURE_LIGHTMAP)
 varying vec2 v_texCoord;                                    // Output Texture Coordinate
 #endif
@@ -19,20 +25,14 @@ varying vec2 v_texCoord;                                    // Output Texture Co
 varying vec3 v_color;										// Output Vertex color						(r, g, b)
 #endif
 
-// Uniforms
-uniform mat4 u_worldViewProjectionMatrix;					// Matrix to transform a position to clip space.
-#if defined(SKINNING)
-uniform vec4 u_matrixPalette[SKINNING_JOINT_COUNT * 3];		// Array of 4x3 matrices as an array of floats
-#endif
-
-// Attribute accessor
+// Skinning
 #if defined(SKINNING)
-#include "lib/attributes-skinning.vert"
+#include "skinning.vert"
 #else
-#include "lib/attributes.vert" 
+#include "skinning-none.vert" 
 #endif
 
-// Vertex Program
+
 void main()
 {
     // Get the vertex position

+ 24 - 21
gameplay/res/shaders/colored.frag

@@ -3,6 +3,25 @@
 precision highp float;
 #endif
 
+// Uniforms
+uniform vec4 u_diffuseColor;               		// Diffuse color
+uniform vec3 u_ambientColor;                    // Ambient color
+uniform vec3 u_lightColor;                      // Light color
+uniform vec3 u_lightDirection;					// Light direction
+#if defined(SPECULAR)
+uniform float u_specularExponent;				// Specular exponent
+#endif
+#if defined(SPOT_LIGHT)
+uniform float u_spotLightInnerAngleCos;			// The bright spot [0.0 - 1.0]
+uniform float u_spotLightOuterAngleCos;			// The soft outer part [0.0 - 1.0]
+#endif
+#if defined(MODULATE_COLOR)
+uniform vec4 u_modulateColor;					// Modulation color
+#endif
+#if defined(MODULATE_ALPHA)
+uniform float u_modulateAlpha;					// Modulation alpha
+#endif
+
 // Inputs
 varying vec3 v_normalVector;					// Normal vector in view space
 #if defined(VERTEX_COLOR)
@@ -22,32 +41,16 @@ varying vec3 v_lightDirection;					// Direction of light in tangent space
 varying vec3 v_cameraDirection;                 // Camera direction
 #endif
 
-// Uniforms
-uniform vec4 u_diffuseColor;               		// Diffuse color
-uniform vec3 u_ambientColor;                    // Ambient color
-uniform vec3 u_lightColor;                      // Light color
-uniform vec3 u_lightDirection;					// Light direction
-#if defined(SPECULAR)
-uniform float u_specularExponent;				// Specular exponent
-#endif
-#if defined(MODULATE_COLOR)
-uniform vec4 u_modulateColor;					// Modulation color
-#endif
-#if defined(MODULATE_ALPHA)
-uniform float u_modulateAlpha;					// Modulation alpha
-#endif
-#include "lib/lighting.frag"
+// Lighting
+#include "lighting.frag"
 #if defined(POINT_LIGHT)
-#include "lib/lighting-point.frag"
+#include "lighting-point.frag"
 #elif defined(SPOT_LIGHT)
-uniform float u_spotLightInnerAngleCos;			// The bright spot [0.0 - 1.0]
-uniform float u_spotLightOuterAngleCos;			// The soft outer part [0.0 - 1.0]
-#include "lib/lighting-spot.frag"
+#include "lighting-spot.frag"
 #else
-#include "lib/lighting-directional.frag"
+#include "lighting-directional.frag"
 #endif
 
-// Fragment program
 void main()
 {
     // Set base diffuse color

+ 10 - 9
gameplay/res/shaders/colored.vert

@@ -1,6 +1,6 @@
 #define LIGHTING
 
-// Inputs
+// Attributes
 attribute vec4 a_position;									// Vertex Position							(x, y, z, w)
 attribute vec3 a_normal;									// Vertex Normal							(x, y, z)
 #if defined(SKINNING)
@@ -31,33 +31,34 @@ uniform float u_spotLightRangeInverse;						// Inverse of light range.
 #else
 #endif
 
-// Outputs
+// Varyings
 varying vec3 v_normalVector;								// Normal vector in view space.
 #if defined(SPECULAR)
 varying vec3 v_cameraDirection;								// Direction the camera is looking at in tangent space.
 #endif
+
 // Lighting
 #if defined(POINT_LIGHT)
 varying vec3 v_vertexToPointLightDirection;					// Direction of point light w.r.t current vertex in tangent space.
 varying float v_pointLightAttenuation;						// Attenuation of point light.
-#include "lib/lighting-point.vert"
+#include "lighting-point.vert"
 #elif defined(SPOT_LIGHT)
 varying vec3 v_vertexToSpotLightDirection;					// Direction of the spot light w.r.t current vertex in tangent space.
 varying float v_spotLightAttenuation;						// Attenuation of spot light.
-#include "lib/lighting-spot.vert"
+#include "lighting-spot.vert"
 #else
 uniform vec3 u_lightDirection;								// Direction of light
-#include "lib/lighting-directional.vert"
+#include "lighting-directional.vert"
 #endif
 
-// Vertex attribute accessors
+// Skinning
 #if defined(SKINNING)
-#include "lib/attributes-skinning.vert"
+#include "skinning.vert"
 #else
-#include "lib/attributes.vert" 
+#include "skinning-none.vert" 
 #endif
 
-// Vertex program
+
 void main()
 {
     // Get the position and normal

+ 17 - 0
gameplay/res/shaders/font.frag

@@ -0,0 +1,17 @@
+#ifdef OPENGL_ES
+precision highp float;
+#endif
+
+// Uniforms
+uniform sampler2D u_texture;
+
+// Varyings
+varying vec2 v_texCoord;
+varying vec4 v_color;
+
+
+void main()
+{
+    gl_FragColor = v_color;
+    gl_FragColor.a = texture2D(u_texture, v_texCoord).a * v_color.a;
+}

+ 19 - 0
gameplay/res/shaders/font.vert

@@ -0,0 +1,19 @@
+// Atttributes
+attribute vec3 a_position;
+attribute vec2 a_texCoord;
+attribute vec4 a_color;
+
+// Uniforms
+uniform mat4 u_projectionMatrix;
+
+// Varyings
+varying vec2 v_texCoord;
+varying vec4 v_color;
+
+
+void main()
+{
+    gl_Position = u_projectionMatrix * vec4(a_position, 1);
+    v_texCoord = a_texCoord;
+    v_color = a_color;
+}

+ 15 - 0
gameplay/res/shaders/form.frag

@@ -0,0 +1,15 @@
+#ifdef OPENGL_ES
+precision highp float;
+#endif
+
+// Uniforms
+uniform sampler2D u_texture;
+
+// Varyings
+varying vec2 v_texCoord;
+
+
+void main()
+{
+    gl_FragColor = texture2D(u_texture, v_texCoord);
+}

+ 16 - 0
gameplay/res/shaders/form.vert

@@ -0,0 +1,16 @@
+// Attributes
+attribute vec3 a_position;
+attribute vec2 a_texCoord;
+
+// Uniforms
+uniform mat4 u_worldViewProjectionMatrix;
+
+// Varyings
+varying vec2 v_texCoord;
+
+
+void main()
+{
+    gl_Position = u_worldViewProjectionMatrix * vec4(a_position, 1);
+    v_texCoord = a_texCoord;
+}

+ 0 - 0
gameplay/res/shaders/lib/lighting-directional.frag → gameplay/res/shaders/lighting-directional.frag


+ 0 - 1
gameplay/res/shaders/lib/lighting-directional.vert → gameplay/res/shaders/lighting-directional.vert

@@ -12,7 +12,6 @@ void applyLight(mat3 tangentSpaceTransformMatrix)
     v_cameraDirection = u_cameraPosition - positionWorldViewSpace.xyz;
 
     #endif
-
 }
 
 #else

+ 0 - 0
gameplay/res/shaders/lib/lighting-point.frag → gameplay/res/shaders/lighting-point.frag


+ 0 - 0
gameplay/res/shaders/lib/lighting-point.vert → gameplay/res/shaders/lighting-point.vert


+ 0 - 0
gameplay/res/shaders/lib/lighting-spot.frag → gameplay/res/shaders/lighting-spot.frag


+ 0 - 0
gameplay/res/shaders/lib/lighting-spot.vert → gameplay/res/shaders/lighting-spot.vert


+ 0 - 0
gameplay/res/shaders/lib/lighting.frag → gameplay/res/shaders/lighting.frag


+ 0 - 0
gameplay/res/shaders/lib/attributes.vert → gameplay/res/shaders/skinning-none.vert


+ 0 - 0
gameplay/res/shaders/lib/attributes-skinning.vert → gameplay/res/shaders/skinning.vert


+ 16 - 0
gameplay/res/shaders/sprite.frag

@@ -0,0 +1,16 @@
+#ifdef OPENGL_ES
+precision highp float;
+#endif
+
+// Uniforms
+uniform sampler2D u_texture;
+
+// Varyings
+varying vec2 v_texCoord;
+varying vec4 v_color;
+
+
+void main()
+{
+    gl_FragColor = v_color * texture2D(u_texture, v_texCoord);
+}

+ 19 - 0
gameplay/res/shaders/sprite.vert

@@ -0,0 +1,19 @@
+// Attributes
+attribute vec3 a_position;
+attribute vec2 a_texCoord;
+attribute vec4 a_color;
+
+// Uniforms
+uniform mat4 u_projectionMatrix;
+
+// Varyings
+varying vec2 v_texCoord;
+varying vec4 v_color;
+
+
+void main()
+{
+    gl_Position = u_projectionMatrix * vec4(a_position, 1);
+    v_texCoord = a_texCoord;
+    v_color = a_color;
+}

+ 16 - 17
gameplay/res/shaders/terrain.frag

@@ -2,34 +2,32 @@
 precision highp float;
 #endif
 
-// Inputs
-#if defined(NORMAL_MAP)
-vec3 v_normalVector;                            // Normal vector variable (from normal map)
-#else
-varying vec3 v_normalVector;					// Normal vector from vertex shader
-#endif
-varying vec2 v_texCoord0;
-
 // Uniforms
 uniform vec3 u_ambientColor;                    // Ambient color
 uniform vec3 u_lightColor;                      // Light color
 uniform vec3 u_lightDirection;					// Light direction
-
 #if defined(DEBUG_PATCHES)
-uniform float u_row;
-uniform float u_column;
+uniform float u_row;                            // Patch row
+uniform float u_column;                         // Patch column
 #endif
-
 #if (LAYER_COUNT > 0)
-uniform sampler2D u_samplers[SAMPLER_COUNT];
+uniform sampler2D u_samplers[SAMPLER_COUNT];    // Surface layer samplers
 #endif
-
 #if defined (NORMAL_MAP)
-uniform sampler2D u_normalMap;
+uniform sampler2D u_normalMap;                  // Normal map
 #endif
 
-#include "lib/lighting.frag"
-#include "lib/lighting-directional.frag"
+// Varyings
+#if defined(NORMAL_MAP)
+vec3 v_normalVector;                            // Normal vector variable (from normal map)
+#else
+varying vec3 v_normalVector;					// Normal vector from vertex shader
+#endif
+varying vec2 v_texCoord0;
+
+// Lighting
+#include "lighting.frag"
+#include "lighting-directional.frag"
 
 #if (LAYER_COUNT > 1)
 void blendLayer(sampler2D textureMap, vec2 textureRepeat, float alphaBlend)
@@ -43,6 +41,7 @@ void blendLayer(sampler2D textureMap, vec2 textureRepeat, float alphaBlend)
 }
 #endif
 
+
 void main()
 {
 #if (LAYER_COUNT > 0)

+ 3 - 4
gameplay/res/shaders/terrain.vert

@@ -1,4 +1,4 @@
-// Inputs
+// Attributes
 attribute vec4 a_position;									// Vertex Position							(x, y, z, w)
 #ifndef NORMAL_MAP
 attribute vec3 a_normal;									// Vertex Normal							(x, y, z)
@@ -21,7 +21,7 @@ uniform mat4 u_normalMatrix;					            // Matrix used for normal vector tr
 #endif
 uniform vec3 u_lightDirection;								// Direction of light
 
-// Outputs
+// Varyings
 #ifndef NORMAL_MAP
 varying vec3 v_normalVector;								// Normal vector out
 #endif
@@ -36,6 +36,7 @@ varying vec2 v_texCoord2;
 varying vec2 v_texCoord3;
 #endif
 
+
 void main()
 {
     // Transform position to clip space.
@@ -45,9 +46,7 @@ void main()
     // Pass normal to fragment shader
     v_normalVector = (u_normalMatrix * vec4(a_normal.x, a_normal.y, a_normal.z, 0)).xyz;
 #endif
-
     v_texCoord0 = a_texCoord0;
-
 #if LAYER_COUNT > 1
     v_texCoord1 = a_texCoord1;
 #endif

+ 27 - 23
gameplay/res/shaders/textured-bumped.frag

@@ -5,7 +5,27 @@
 precision highp float;
 #endif
 
-// Inputs
+// Uniforms
+uniform sampler2D u_diffuseTexture;        		// Diffuse map texture
+uniform sampler2D u_normalmapTexture;       	// Normalmap texture
+uniform vec3 u_ambientColor;                    // Ambient color
+uniform vec3 u_lightColor;                      // Light color
+uniform vec3 u_lightDirection;					// Light direction
+#if defined(SPECULAR)
+uniform float u_specularExponent;				// Specular exponent.
+#endif
+#if defined (SPOT_LIGHT)
+uniform float u_spotLightInnerAngleCos;			// The bright spot [0.0 - 1.0]
+uniform float u_spotLightOuterAngleCos;			// The soft outer part [0.0 - 1.0]
+#endif
+#if defined(MODULATE_COLOR)
+uniform vec4 u_modulateColor;					// Modulation color
+#endif
+#if defined(MODULATE_ALPHA)
+uniform float u_modulateAlpha;					// Modulation alpha
+#endif
+
+// Varyings
 varying vec3 v_normalVector;					// Normal vector in view space
 varying vec2 v_texCoord;						// Texture Coordinate
 #if defined(POINT_LIGHT)
@@ -22,33 +42,17 @@ varying vec3 v_lightDirection;					// Direction of light in tangent space.
 varying vec3 v_cameraDirection;                 // Camera direction
 #endif
 
-// Uniforms
-uniform sampler2D u_diffuseTexture;        		// Diffuse map texture
-uniform sampler2D u_normalmapTexture;       	// Normalmap texture
-uniform vec3 u_ambientColor;                    // Ambient color
-uniform vec3 u_lightColor;                      // Light color
-uniform vec3 u_lightDirection;					// Light direction
-#if defined(SPECULAR)
-uniform float u_specularExponent;				// Specular exponent.
-#endif
-#if defined(MODULATE_COLOR)
-uniform vec4 u_modulateColor;					// Modulation color
-#endif
-#if defined(MODULATE_ALPHA)
-uniform float u_modulateAlpha;					// Modulation alpha
-#endif
-#include "lib/lighting.frag"
+// Lighting
+#include "lighting.frag"
 #if defined(POINT_LIGHT)
-#include "lib/lighting-point.frag"
+#include "lighting-point.frag"
 #elif defined(SPOT_LIGHT)
-uniform float u_spotLightInnerAngleCos;			// The bright spot [0.0 - 1.0]
-uniform float u_spotLightOuterAngleCos;			// The soft outer part [0.0 - 1.0]
-#include "lib/lighting-spot.frag"
+#include "lighting-spot.frag"
 #else
-#include "lib/lighting-directional.frag"
+#include "lighting-directional.frag"
 #endif
 
-// Fragment program
+
 void main()
 {
     // Fetch diffuse color from texture.

+ 9 - 10
gameplay/res/shaders/textured-bumped.vert

@@ -15,12 +15,10 @@ attribute vec4 a_blendIndices;								// Vertex blend index int u_matrixPalette
 // Uniforms
 uniform mat4 u_worldViewProjectionMatrix;					// Matrix to transform a position to clip space
 uniform mat4 u_inverseTransposeWorldViewMatrix;				// Matrix to transform a normal to view space
-
 #if defined(SPECULAR) || defined(SPOT_LIGHT) || defined(POINT_LIGHT)
 uniform mat4 u_worldViewMatrix;								// Matrix to tranform a position to view space
 uniform mat4 u_worldMatrix;								    // Matrix to tranform a position to world space
 #endif
-
 #if defined(SKINNING)
 uniform vec4 u_matrixPalette[SKINNING_JOINT_COUNT * 3];		// Array of 4x3 matrices
 #endif
@@ -44,35 +42,36 @@ uniform vec3 u_spotLightDirection;							// Direction of light
 uniform vec3 u_lightDirection;								// Direction of light
 #endif
 
-// Outputs
+// Varyings
 varying vec3 v_normalVector;								// Normal vector in view space
 varying vec2 v_texCoord;									// Texture Coordinate
 #if defined(SPECULAR)
 varying vec3 v_cameraDirection;								// Direction the camera is looking at in tangent space
 #endif
+
 // Lighting
 #if defined(POINT_LIGHT)
 varying vec3 v_vertexToPointLightDirection;					// Direction of point light w.r.t current vertex in tangent space
 varying float v_pointLightAttenuation;						// Attenuation of point light
-#include "lib/lighting-point.vert"
+#include "lighting-point.vert"
 #elif defined(SPOT_LIGHT)
 varying vec3 v_vertexToSpotLightDirection;					// Direction of the spot light w.r.t current vertex in tangent space
 varying float v_spotLightAttenuation;						// Attenuation of spot light
 varying vec3 v_spotLightDirection;							// Direction of spot light in tangent space
-#include "lib/lighting-spot.vert"
+#include "lighting-spot.vert"
 #else
 varying vec3 v_lightDirection;								// Direction of light
-#include "lib/lighting-directional.vert"
+#include "lighting-directional.vert"
 #endif
 
-// Vertex Attribute Accessors
+// Skinning
 #if defined(SKINNING)
-#include "lib/attributes-skinning.vert"
+#include "skinning.vert"
 #else
-#include "lib/attributes.vert" 
+#include "skinning-none.vert" 
 #endif
 
-// Vertex program
+
 void main()
 {
     // Get the position, normal, tangents and binormals.

+ 2 - 2
gameplay/res/shaders/textured-unlit.frag

@@ -14,13 +14,13 @@ uniform vec4 u_modulateColor;               // Modulation color
 uniform float u_modulateAlpha;              // Modulation alpha
 #endif
 
-// Inputs
+// Varyings
 varying vec2 v_texCoord0;                	// Texture coordinate(u, v)
 #if defined(TEXCOORD1)
 varying vec2 v_texCoord1;                   // Second tex coord for multi-texturing
 #endif
 
-// Fragment Program
+
 void main()
 {
     // Sample the texture for the color

+ 6 - 6
gameplay/res/shaders/textured-unlit.vert

@@ -1,4 +1,4 @@
-// Inputs
+// Attributes
 attribute vec4 a_position;									// Vertex Position							(x, y, z, w)
 attribute vec2 a_texCoord0;									// Vertex Texture Coordinate				(u, v)
 #if defined(TEXCOORD1)
@@ -21,20 +21,20 @@ uniform vec2 u_textureRepeat;								// Texture repeat for tiling
 uniform vec2 u_textureOffset;								// Texture offset
 #endif
 
-// Outputs
+// Varyings
 varying vec2 v_texCoord0;									// Texture Coordinate
 #if defined(TEXCOORD1)
 varying vec2 v_texCoord1;                                   // Second tex coord for multi-texturing
 #endif
 
-// Vertex attribute accessors
+// Skinning 
 #if defined(SKINNING)
-#include "lib/attributes-skinning.vert"
+#include "skinning.vert"
 #else
-#include "lib/attributes.vert" 
+#include "skinning-none.vert" 
 #endif
 
-// Vertex Program
+
 void main()
 {
     // Get the vertex position

+ 21 - 22
gameplay/res/shaders/textured.frag

@@ -4,7 +4,22 @@
 precision highp float;
 #endif
 
-// Inputs
+// Uniforms
+uniform sampler2D u_diffuseTexture;             // Diffuse map texture
+uniform vec3 u_ambientColor;                    // Ambient color
+uniform vec3 u_lightColor;                      // Light color
+uniform vec3 u_lightDirection;					// Light direction
+#if defined(SPECULAR)
+uniform float u_specularExponent;				// Specular exponent
+#endif
+#if defined(MODULATE_COLOR)
+uniform vec4 u_modulateColor;               	// Modulation color
+#endif
+#if defined(MODULATE_ALPHA)
+uniform float u_modulateAlpha;              	// Modulation alpha
+#endif
+
+// Varyings
 varying vec3 v_normalVector;                    // Normal vector in view space
 varying vec2 v_texCoord;                        // Texture coordinate
 #if defined(POINT_LIGHT)
@@ -21,36 +36,20 @@ varying vec3 v_lightDirection;					// Direction of light in tangent space.
 varying vec3 v_cameraDirection;                 // Camera direction
 #endif
 
-// Uniforms
-uniform sampler2D u_diffuseTexture;             // Diffuse map texture
-uniform vec3 u_ambientColor;                    // Ambient color
-uniform vec3 u_lightColor;                      // Light color
-uniform vec3 u_lightDirection;					// Light direction
-
-#if defined(SPECULAR)
-uniform float u_specularExponent;				// Specular exponent
-#endif
-#if defined(MODULATE_COLOR)
-uniform vec4 u_modulateColor;               	// Modulation color
-#endif
-#if defined(MODULATE_ALPHA)
-uniform float u_modulateAlpha;              	// Modulation alpha
-#endif
-#include "lib/lighting.frag"
+// Lighting 
+#include "lighting.frag"
 #if defined(POINT_LIGHT)
-#include "lib/lighting-point.frag"
+#include "lighting-point.frag"
 #elif defined(SPOT_LIGHT)
 uniform float u_spotLightInnerAngleCos;			// The bright spot [0.0 - 1.0]
 uniform float u_spotLightOuterAngleCos;			// The soft outer part [0.0 - 1.0]
 uniform vec3 u_spotLightDirection;              // Direction of a spot light source
-#include "lib/lighting-spot.frag"
+#include "lighting-spot.frag"
 #else
-#include "lib/lighting-directional.frag"
+#include "lighting-directional.frag"
 #endif
 
-uniform vec3 u_cameraPosition;
 
-// Fragment Program
 void main()
 {
     // Sample the diffuse texture for base color

+ 12 - 14
gameplay/res/shaders/textured.vert

@@ -1,6 +1,6 @@
 #define LIGHTING
 
-// Inputs
+// Attributes
 attribute vec4 a_position;									// Vertex position							(x, y, z, w)
 attribute vec3 a_normal;									// Vertex normal							(x, y, z)
 attribute vec2 a_texCoord;									// Vertex texture coordinate				(u, v)
@@ -12,13 +12,9 @@ attribute vec4 a_blendIndices;								// Vertex blend index int u_matrixPalette
 // Uniforms
 uniform mat4 u_worldViewProjectionMatrix;					// Matrix to transform a position to clip space
 uniform mat4 u_inverseTransposeWorldViewMatrix;				// Matrix to transform a normal to view space
-
-//uniform mat4 u_worldViewMatrix;	
-
 #if defined(SPECULAR) || defined(SPOT_LIGHT) || defined(POINT_LIGHT)
 uniform mat4 u_worldViewMatrix;								// Matrix to tranform a position to view space
 #endif
-
 #if defined(SKINNING)
 uniform vec4 u_matrixPalette[SKINNING_JOINT_COUNT * 3];		// Array of 4x3 matrices
 #endif
@@ -41,7 +37,7 @@ uniform vec3 u_spotLightDirection;                          // Direction of a sp
 #else
 #endif
 
-// Outputs
+// Varyings
 varying vec3 v_normalVector;								// Normal vector in view space
 varying vec2 v_texCoord;									// Texture coordinate
 #if defined(SPECULAR)
@@ -50,26 +46,28 @@ varying vec3 v_cameraDirection;								// Direction the camera is looking at in
 #if defined(POINT_LIGHT)
 varying vec3 v_vertexToPointLightDirection;					// Direction of point light w.r.t current vertex in tangent space
 varying float v_pointLightAttenuation;						// Attenuation of point light
-#include "lib/lighting-point.vert"
+#include "lighting-point.vert"
 #elif defined(SPOT_LIGHT)
 varying vec3 v_vertexToSpotLightDirection;					// Direction of the spot light w.r.t current vertex in tangent space
 varying float v_spotLightAttenuation;						// Attenuation of spot light
-#include "lib/lighting-spot.vert"
+
+// Lighting
+#include "lighting-spot.vert"
 #else
-#include "lib/lighting-directional.vert"
+#include "lighting-directional.vert"
 #endif
 
-// Vertex attribute accessors
+// Skinning
 #if defined(SKINNING)
-#include "lib/attributes-skinning.vert"
+#include "skinning.vert"
 #else
-#include "lib/attributes.vert" 
+#include "skinning-none.vert" 
 #endif
 
-// Vertex Program
+
 void main()
 {
-    // Get the position and normal from attribute accessors
+    // Get the position and normal
     vec4 position = getPosition();
     vec3 normal = getNormal();
 

+ 0 - 1
gameplay/src/CheckBox.cpp

@@ -96,7 +96,6 @@ bool CheckBox::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int cont
         }
         break;
     }
-
     return Button::touchEvent(evt, x, y, contactIndex);
 }
 

+ 9 - 6
gameplay/src/Container.cpp

@@ -379,7 +379,6 @@ Animation* Container::getAnimation(const char* id) const
 {
     std::vector<Control*>::const_iterator itr = _controls.begin();
     std::vector<Control*>::const_iterator end = _controls.end();
-        
     Control* control = NULL;
     for (; itr != end; itr++)
     {
@@ -396,7 +395,6 @@ Animation* Container::getAnimation(const char* id) const
                 return animation;
         }
     }
-
     return NULL;
 }
 
@@ -438,9 +436,13 @@ void Container::update(const Control* container, const Vector2& offset)
 
     GP_ASSERT(_layout);
     if (_scroll != SCROLL_NONE)
+    {
         updateScroll();
+    }
     else
+    {
         _layout->update(this, Vector2::zero());
+    }
 }
 
 void Container::draw(SpriteBatch* spriteBatch, const Rectangle& clip, bool needsClear, bool cleared, float targetHeight)
@@ -460,6 +462,9 @@ void Container::draw(SpriteBatch* spriteBatch, const Rectangle& clip, bool needs
         needsClear = true;
     }
 
+    if (!_visible)
+        return;
+
     spriteBatch->start();
     Control::drawBorder(spriteBatch, clip);
     spriteBatch->finish();
@@ -484,8 +489,7 @@ void Container::draw(SpriteBatch* spriteBatch, const Rectangle& clip, bool needs
 
         spriteBatch->start();
 
-        if (_scrollBarBounds.height > 0 &&
-            ((_scroll & SCROLL_VERTICAL) == SCROLL_VERTICAL))
+        if (_scrollBarBounds.height > 0 &&((_scroll & SCROLL_VERTICAL) == SCROLL_VERTICAL))
         {
             const Rectangle& topRegion = _scrollBarTopCap->getRegion();
             const Theme::UVs& topUVs = _scrollBarTopCap->getUVs();
@@ -516,8 +520,7 @@ void Container::draw(SpriteBatch* spriteBatch, const Rectangle& clip, bool needs
             spriteBatch->draw(bounds.x, bounds.y, bounds.width, bounds.height, bottomUVs.u1, bottomUVs.v1, bottomUVs.u2, bottomUVs.v2, bottomColor, clipRegion);
         }
 
-        if (_scrollBarBounds.width > 0 &&
-            ((_scroll & SCROLL_HORIZONTAL) == SCROLL_HORIZONTAL))
+        if (_scrollBarBounds.width > 0 && ((_scroll & SCROLL_HORIZONTAL) == SCROLL_HORIZONTAL))
         {
             const Rectangle& leftRegion = _scrollBarLeftCap->getRegion();
             const Theme::UVs& leftUVs = _scrollBarLeftCap->getUVs();

+ 38 - 40
gameplay/src/Control.cpp

@@ -249,13 +249,11 @@ void Control::setVisible(bool visible)
 {
     if (visible && !_visible)
     {
-        setEnabled(true);
         _visible = true;
         _dirty = true;
     }
     else if (!visible && _visible)
     {
-        setEnabled(false);
         _visible = false;
         _dirty = true;
     }
@@ -272,11 +270,10 @@ void Control::setOpacity(float opacity, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setOpacity(opacity);
     }
-        
     _dirty = true;
 }
 
@@ -287,13 +284,32 @@ float Control::getOpacity(State state) const
     return overlay->getOpacity();
 }
 
+void Control::setEnabled(bool enabled)
+{
+	if (enabled && _state == Control::DISABLED)
+	{
+		_state = Control::NORMAL;
+        _dirty = true;
+	}
+	else if (!enabled && _state != Control::DISABLED)
+	{
+		_state = Control::DISABLED;
+		_dirty = true;
+	}
+}
+
+bool Control::isEnabled() const
+{
+    return _state != DISABLED;
+}
+
 void Control::setBorder(float top, float bottom, float left, float right, unsigned char states)
 {
     overrideStyle();
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setBorder(top, bottom, left, right);
     }
@@ -314,11 +330,10 @@ void Control::setSkinRegion(const Rectangle& region, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setSkinRegion(region, _style->_tw, _style->_th);
     }
-
     _dirty = true;
 }
 
@@ -335,7 +350,7 @@ void Control::setSkinColor(const Vector4& color, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setSkinColor(color);
     }
@@ -384,7 +399,7 @@ void Control::setImageRegion(const char* id, const Rectangle& region, unsigned c
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setImageRegion(id, region, _style->_tw, _style->_th);
     }
@@ -405,7 +420,7 @@ void Control::setImageColor(const char* id, const Vector4& color, unsigned char
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setImageColor(id, color);
     }
@@ -433,7 +448,7 @@ void Control::setCursorRegion(const Rectangle& region, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setCursorRegion(region, _style->_tw, _style->_th);
     }
@@ -454,7 +469,7 @@ void Control::setCursorColor(const Vector4& color, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setCursorColor(color);
     }
@@ -482,7 +497,7 @@ void Control::setFont(Font* font, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setFont(font);
     }
@@ -503,7 +518,7 @@ void Control::setFontSize(unsigned int fontSize, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setFontSize(fontSize);
     }
@@ -524,7 +539,7 @@ void Control::setTextColor(const Vector4& color, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setTextColor(color);
     }
@@ -545,7 +560,7 @@ void Control::setTextAlignment(Font::Justify alignment, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setTextAlignment(alignment);
     }
@@ -566,7 +581,7 @@ void Control::setTextRightToLeft(bool rightToLeft, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setTextRightToLeft(rightToLeft);
     }
@@ -619,25 +634,6 @@ Control::State Control::getState() const
     return _state;
 }
 
-void Control::setEnabled(bool enabled)
-{
-	if (enabled && _state == Control::DISABLED)
-	{
-		_state = Control::NORMAL;
-		_dirty = true;
-	}
-	else if (!enabled && _state != Control::DISABLED)
-	{
-		_state = Control::DISABLED;
-		_dirty = true;
-	}
-}
-
-bool Control::isEnabled() const
-{
-    return _state != DISABLED;
-}
-
 Theme::Style::OverlayType Control::getOverlayType() const
 {
     switch (_state)
@@ -971,7 +967,9 @@ void Control::update(const Control* container, const Vector2& offset)
 
     // Cache themed attributes for performance.
     _skin = getSkin(_state);
-    _opacity = getOpacity(_state);
+
+    // Current opacity should be multiplied by that of the parent container.
+    _opacity = getOpacity(_state) * container->_opacity;
 }
 
 void Control::drawBorder(SpriteBatch* spriteBatch, const Rectangle& clip)
@@ -1340,7 +1338,7 @@ void Control::setImageList(Theme::ImageList* imageList, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setImageList(imageList);
     }
@@ -1354,7 +1352,7 @@ void Control::setCursor(Theme::ThemeImage* cursor, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setCursor(cursor);
     }
@@ -1368,7 +1366,7 @@ void Control::setSkin(Theme::Skin* skin, unsigned char states)
     Theme::Style::Overlay* overlays[Theme::Style::OVERLAY_MAX] = { 0 };
     getOverlays(states, overlays);
 
-    for (int i = 0; i < Theme::Style::OVERLAY_MAX - 1 && overlays[i]; ++i)
+    for (int i = 0; i < Theme::Style::OVERLAY_MAX && overlays[i]; ++i)
     {
         overlays[i]->setSkin(skin);
     }

+ 15 - 16
gameplay/src/Control.h

@@ -610,8 +610,7 @@ public:
      * Set the opacity of this control.
      *
      * @param opacity The new opacity.
-     * @param states The states to set this property on.
-     *               One or more members of the Control::State enum, ORed together.
+     * @param states The states to set this property on. One or more members of the Control::State enum, OR'ed together.
      */
     void setOpacity(float opacity, unsigned char states = STATE_ALL);
 
@@ -624,6 +623,20 @@ public:
      */
     float getOpacity(State state = NORMAL) const;
 
+	/**
+	 * Enables/Disables a control. 
+	 *
+	 * @param enabled true if the control is enabled; false if disabled.
+	 */
+	virtual void setEnabled(bool enabled);
+
+    /**
+     * Get whether this control is currently enabled.
+     *
+     * @return Whether this control is currently enabled.
+     */
+    bool isEnabled() const;
+
     /**
      * Get the bounds of this control, relative to its parent container, after clipping.
      *
@@ -652,20 +665,6 @@ public:
      */
     State getState() const;
 
-	/**
-	 * Enables/Disables a control. 
-	 *
-	 * @param enabled true if the control is enabled; false if disabled.
-	 */
-	void setEnabled(bool enabled);
-
-    /**
-     * Get whether this control is currently enabled.
-     *
-     * @return Whether this control is currently enabled.
-     */
-    bool isEnabled() const;
-
     /**
      * Set whether this control consumes input events,
      * preventing them from being passed to the game.

+ 4 - 29
gameplay/src/Font.cpp

@@ -4,34 +4,9 @@
 #include "FileSystem.h"
 #include "Bundle.h"
 
-// Default font vertex shader
-#define FONT_VSH \
-    "uniform mat4 u_projectionMatrix;\n" \
-    "attribute vec3 a_position;\n" \
-    "attribute vec2 a_texCoord;\n" \
-    "attribute vec4 a_color;\n" \
-    "varying vec2 v_texCoord;\n" \
-    "varying vec4 v_color;\n" \
-    "void main()\n" \
-    "{\n" \
-        "gl_Position = u_projectionMatrix * vec4(a_position, 1);\n" \
-        "v_texCoord = a_texCoord;\n" \
-        "v_color = a_color;\n" \
-    "}\n"
-
-// Default font fragment shader
-#define FONT_FSH \
-    "#ifdef OPENGL_ES\n" \
-    "precision highp float;\n" \
-    "#endif\n" \
-    "varying vec2 v_texCoord;\n" \
-    "varying vec4 v_color;\n" \
-    "uniform sampler2D u_texture;\n" \
-    "void main()\n" \
-    "{\n" \
-        "gl_FragColor = v_color;\n" \
-        "gl_FragColor.a = texture2D(u_texture, v_texCoord).a * v_color.a;\n" \
-    "}"
+// Default font shaders
+#define FONT_VSH "res/shaders/font.vert"
+#define FONT_FSH "res/shaders/font.frag"
 
 namespace gameplay
 {
@@ -124,7 +99,7 @@ Font* Font::create(const char* family, Style style, unsigned int size, Glyph* gl
     // Create the effect for the font's sprite batch.
     if (__fontEffect == NULL)
     {
-        __fontEffect = Effect::createFromSource(FONT_VSH, FONT_FSH);
+        __fontEffect = Effect::createFromFile(FONT_VSH, FONT_FSH);
         if (__fontEffect == NULL)
         {
             GP_ERROR("Failed to create effect for font.");

+ 4 - 22
gameplay/src/Form.cpp

@@ -10,27 +10,9 @@
 #include "CheckBox.h"
 #include "Scene.h"
 
-#define FORM_VSH \
-    "uniform mat4 u_worldViewProjectionMatrix;\n" \
-    "attribute vec3 a_position;\n" \
-    "attribute vec2 a_texCoord;\n" \
-    "varying vec2 v_texCoord;\n" \
-    "void main()\n" \
-    "{\n" \
-        "gl_Position = u_worldViewProjectionMatrix * vec4(a_position, 1);\n" \
-        "v_texCoord = a_texCoord;\n" \
-    "}\n"
-
-#define FORM_FSH \
-    "#ifdef OPENGL_ES\n" \
-    "precision highp float;\n" \
-    "#endif\n" \
-    "varying vec2 v_texCoord;\n" \
-    "uniform sampler2D u_texture;\n" \
-    "void main()\n" \
-    "{\n" \
-        "gl_FragColor = texture2D(u_texture, v_texCoord);\n" \
-    "}\n"
+// Default form shaders
+#define FORM_VSH "res/shaders/form.vert"
+#define FORM_FSH "res/shaders/form.frag"
 
 namespace gameplay
 {
@@ -332,7 +314,7 @@ static Effect* createEffect()
     Effect* effect = NULL;
     if (__formEffect == NULL)
     {
-        __formEffect = Effect::createFromSource(FORM_VSH, FORM_FSH);
+        __formEffect = Effect::createFromFile(FORM_VSH, FORM_FSH);
         if (__formEffect == NULL)
         {
             GP_ERROR("Unable to load form effect.");

+ 2 - 2
gameplay/src/Gamepad.cpp

@@ -16,8 +16,8 @@ Gamepad::Gamepad(const char* formPath)
     GP_ASSERT(_form);
     _form->setConsumeInputEvents(false);
     _id = _form->getId();
-    _vendorString = "GamePlay";
-    _productString = "Virtual Gamepad";
+    _vendorString = "None";
+    _productString = "Virtual";
 
     for (int i = 0; i < 2; ++i)
     {

+ 1 - 0
gameplay/src/Gamepad.h

@@ -178,6 +178,7 @@ public:
      */
     void draw();
 
+
 private:
 
     /**

+ 1 - 1
gameplay/src/Label.cpp

@@ -87,7 +87,7 @@ void Label::update(const Control* container, const Vector2& offset)
 
     _font = getFont(_state);
     _textColor = getTextColor(_state);
-    _textColor.w *= getOpacity(_state);
+    _textColor.w *= _opacity;
 }
 
 void Label::drawText(const Rectangle& clip)

+ 39 - 88
gameplay/src/PlatformLinux.cpp

@@ -24,9 +24,9 @@ static double __timeAbsolute;
 static bool __vsync = WINDOW_VSYNC;
 static float __pitch;
 static float __roll;
-static bool __mouseCaptured = false;
-static float __mouseCapturePointX = 0;
-static float __mouseCapturePointY = 0;
+static bool __mouseCaptured = false;
+static float __mouseCapturePointX = 0;
+static float __mouseCapturePointY = 0;
 static bool __cursorVisible = true;
 static Display* __display;
 static Window   __window;
@@ -563,6 +563,8 @@ Platform* Platform::create(Game* game, void* attachToWindow)
     glXChooseFBConfig = (GLXFBConfig*(*)(Display *dpy, int screen, const int *attrib_list, int *nelements))glXGetProcAddressARB((GLubyte*)"glXChooseFBConfig");
     glXGetVisualFromFBConfig = (XVisualInfo*(*)(Display *dpy, GLXFBConfig config))glXGetProcAddressARB((GLubyte*)"glXGetVisualFromFBConfig");
     glXGetFBConfigAttrib = (int(*)(Display *dpy, GLXFBConfig config, int attribute, int *value))glXGetProcAddressARB((GLubyte*)"glXGetFBConfigAttrib");
+    glXSwapIntervalEXT = (void(*)(Display* dpy, GLXDrawable drawable, int interval))glXGetProcAddressARB((GLubyte*)"glXSwapIntervalEXT");
+    glXSwapIntervalMESA = (int(*)(unsigned int interval))glXGetProcAddressARB((GLubyte*)"glXSwapIntervalMESA");
 
     // Get the configs
     int configAttribs[] = 
@@ -661,8 +663,10 @@ Platform* Platform::create(Game* game, void* attachToWindow)
     printf("GL version: %d.%d\n", versionGL[0], versionGL[1]);
 
     // TODO: Get this workings
-    //if (GLXEW_EXT_swap_control)
-    //    glXSwapIntervalEXT(__display, glXGetCurrentDrawable(), __vsync ? 1 : 0);
+    if (glXSwapIntervalEXT)
+        glXSwapIntervalEXT(__display, __window, __vsync ? 1 : 0);
+    else if(glXSwapIntervalMESA)
+        glXSwapIntervalMESA(__vsync ? 1 : 0);
  
     return platform;
 }
@@ -872,16 +876,16 @@ int Platform::enterMessagePump()
                     {
                         if (x == __mouseCapturePointX && y == __mouseCapturePointY)
                         {
-                            // Discard the first MotionNotify following capture
-                            // since it contains bogus x,y data.
+                            // Discard the first MotionNotify following capture
+                            // since it contains bogus x,y data.
                             break;
                         }
 
-                        // Convert to deltas
+                        // Convert to deltas
                         x -= __mouseCapturePointX;
                         y -= __mouseCapturePointY;
 
-                        // Warp mouse back to center of screen.
+                        // Warp mouse back to center of screen.
                         XWarpPointer(__display, None, __window, 0, 0, 0, 0, __mouseCapturePointX, __mouseCapturePointY);
                     }
 
@@ -973,9 +977,11 @@ bool Platform::isVsync()
 
 void Platform::setVsync(bool enable)
 {
-    // TODO: Get this working
-    //if (GLXEW_EXT_swap_control)
-    //    glXSwapIntervalEXT(__display, glXGetCurrentDrawable(), __vsync ? 1 : 0);
+    if (glXSwapIntervalEXT)
+        glXSwapIntervalEXT(__display, __window, __vsync ? 1 : 0);
+    else if(glXSwapIntervalMESA)
+        glXSwapIntervalMESA(__vsync ? 1 : 0);
+
     __vsync = enable;
 }
 
@@ -1015,26 +1021,26 @@ bool Platform::hasMouse()
 
 void Platform::setMouseCaptured(bool captured)
 {
-    if (captured != __mouseCaptured)
-    {
-        if (captured)
-        {
-            // Hide the cursor and warp it to the center of the screen
-            __mouseCapturePointX = getDisplayWidth() / 2;
-            __mouseCapturePointY = getDisplayHeight() / 2;
-
-            setCursorVisible(false);
-            XWarpPointer(__display, None, __window, 0, 0, 0, 0, __mouseCapturePointX, __mouseCapturePointY);
-        }
-        else
-        {
-            // Restore cursor
-            XWarpPointer(__display, None, __window, 0, 0, 0, 0, __mouseCapturePointX, __mouseCapturePointY);
-            setCursorVisible(true);
-        }
-
-        __mouseCaptured = captured;
-    }
+    if (captured != __mouseCaptured)
+    {
+        if (captured)
+        {
+            // Hide the cursor and warp it to the center of the screen
+            __mouseCapturePointX = getDisplayWidth() / 2;
+            __mouseCapturePointY = getDisplayHeight() / 2;
+
+            setCursorVisible(false);
+            XWarpPointer(__display, None, __window, 0, 0, 0, 0, __mouseCapturePointX, __mouseCapturePointY);
+        }
+        else
+        {
+            // Restore cursor
+            XWarpPointer(__display, None, __window, 0, 0, 0, 0, __mouseCapturePointX, __mouseCapturePointY);
+            setCursorVisible(true);
+        }
+
+        __mouseCaptured = captured;
+    }
 }
 
 bool Platform::isMouseCaptured()
@@ -1131,63 +1137,8 @@ bool Platform::isGestureRegistered(Gesture::GestureEvent evt)
     return false;
 }
 
-unsigned int Platform::getGamepadsConnected()
-{
-    return 0;
-}
-
-bool Platform::isGamepadConnected(unsigned int gamepadHandle)
-{
-    return false;
-}
-
-const char* Platform::getGamepadId(unsigned int gamepadHandle)
-{
-    return NULL;
-}
-
-unsigned int Platform::getGamepadButtonCount(unsigned int gamepadHandle)
-{
-    return 0;
-}
-
-bool Platform::getGamepadButtonState(unsigned int gamepadHandle, unsigned int buttonIndex)
-{
-    return false;
-}
-
-unsigned int Platform::getGamepadJoystickCount(unsigned int gamepadHandle)
-{
-    return 0;
-}
-
-bool Platform::isGamepadJoystickActive(unsigned int gamepadHandle, unsigned int joystickIndex)
-{
-    return false;
-}
-
-float Platform::getGamepadJoystickAxisX(unsigned int gamepadHandle, unsigned int joystickIndex)
-{
-    return 0.0f;
-}
-
-float Platform::getGamepadJoystickAxisY(unsigned int gamepadHandle, unsigned int joystickIndex)
-{
-    return 0.0f;
-}
-
-void Platform::getGamepadJoystickAxisValues(unsigned int gamepadHandle, unsigned int joystickIndex, Vector2* outValue)
-{
-}
-
-unsigned int Platform::getGamepadTriggerCount(unsigned int gamepadHandle)
-{
-    return 0;
-}
-
-float Platform::getGamepadTriggerValue(unsigned int gamepadHandle, unsigned int triggerIndex)
+void Platform::pollGamepadState(Gamepad* gamepad)
 {
-    return 0.0f;
 }
 
 bool Platform::launchURL(const char* url)

+ 19 - 0
gameplay/src/PlatformiOS.mm

@@ -570,8 +570,27 @@ int getUnicode(int key);
 {
     if((evt & Gesture::GESTURE_SWIPE) == Gesture::GESTURE_SWIPE && _swipeRecognizer == NULL)
     {
+        // right swipe (default)
         _swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
         [self addGestureRecognizer:_swipeRecognizer];
+
+        // left swipe
+        UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
+        swipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;
+        [self addGestureRecognizer:swipeGesture];
+        [swipeGesture release];
+        
+        // up swipe
+        UISwipeGestureRecognizer *swipeGesture2 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
+        swipeGesture2.direction = UISwipeGestureRecognizerDirectionUp;
+        [self addGestureRecognizer:swipeGesture2];
+        [swipeGesture2 release];
+        
+        // down swipe
+        UISwipeGestureRecognizer *swipeGesture3 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
+        swipeGesture3.direction = UISwipeGestureRecognizerDirectionDown;
+        [self addGestureRecognizer:swipeGesture3];
+        [swipeGesture3 release];
     }
     if((evt & Gesture::GESTURE_PINCH) == Gesture::GESTURE_PINCH && _pinchRecognizer == NULL)
     {

+ 0 - 1
gameplay/src/Slider.cpp

@@ -182,7 +182,6 @@ bool Slider::touchEvent(Touch::TouchEvent evt, int x, int y, unsigned int contac
             {
                 notifyListeners(Listener::VALUE_CHANGED);
             }
-
             _dirty = true;
         }
         break;

+ 4 - 28
gameplay/src/SpriteBatch.cpp

@@ -14,33 +14,9 @@
     vtx.u = vu; vtx.v = vv; \
     vtx.r = vr; vtx.g = vg; vtx.b = vb; vtx.a = va
 
-// Default sprite vertex shader
-#define SPRITE_VSH \
-    "uniform mat4 u_projectionMatrix;\n" \
-    "attribute vec3 a_position;\n" \
-    "attribute vec2 a_texCoord;\n" \
-    "attribute vec4 a_color;\n" \
-    "varying vec2 v_texCoord;\n" \
-    "varying vec4 v_color;\n" \
-    "void main()\n" \
-    "{\n" \
-        "gl_Position = u_projectionMatrix * vec4(a_position, 1);\n" \
-        "v_texCoord = a_texCoord;\n" \
-        "v_color = a_color;\n" \
-    "}\n"
-
-// Default sprite fragment shader
-#define SPRITE_FSH \
-    "#ifdef OPENGL_ES\n" \
-    "precision highp float;\n" \
-    "#endif\n" \
-    "varying vec2 v_texCoord;\n" \
-    "varying vec4 v_color;\n" \
-    "uniform sampler2D u_texture;\n" \
-    "void main()\n" \
-    "{\n" \
-        "gl_FragColor = v_color * texture2D(u_texture, v_texCoord);\n" \
-    "}\n"
+// Default sprite shaders
+#define SPRITE_VSH "res/shaders/sprite.vert"
+#define SPRITE_FSH "res/shaders/sprite.frag"
 
 namespace gameplay
 {
@@ -88,7 +64,7 @@ SpriteBatch* SpriteBatch::create(Texture* texture,  Effect* effect, unsigned int
         // Create our static sprite effect.
         if (__spriteEffect == NULL)
         {
-            __spriteEffect = Effect::createFromSource(SPRITE_VSH, SPRITE_FSH);
+            __spriteEffect = Effect::createFromFile(SPRITE_VSH, SPRITE_FSH);
             if (__spriteEffect == NULL)
             {
                 GP_ERROR("Unable to load sprite effect.");

+ 5 - 1
gameplay/src/TerrainPatch.cpp

@@ -5,6 +5,10 @@
 #include "Scene.h"
 #include "Game.h"
 
+// Default terrain shaders
+#define TERRAIN_VSH "res/shaders/terrain.vert"
+#define TERRAIN_FSH "res/shaders/terrain.frag"
+
 namespace gameplay
 {
 
@@ -470,7 +474,7 @@ bool TerrainPatch::updateMaterial()
             }
         }
 
-        Material* material = Material::create("res/shaders/terrain.vert", "res/shaders/terrain.frag", defines.str().c_str());
+        Material* material = Material::create(TERRAIN_VSH, TERRAIN_FSH, defines.str().c_str());
         if (!material)
             return false;
         material->getStateBlock()->setCullFace(true);

Некоторые файлы не были показаны из-за большого количества измененных файлов