Ver código fonte

Merge branch 'next' of https://github.com/blackberry/GamePlay into next

Adam Blake 12 anos atrás
pai
commit
d52baf9ca9

+ 2 - 0
gameplay/CMakeLists.txt

@@ -83,6 +83,8 @@ set(GAMEPLAY_SRC
     src/Image.cpp
     src/Image.h
     src/Image.inl
+    src/ImageControl.cpp
+    src/ImageControl.h
     src/Joint.cpp
     src/Joint.h
     src/Joystick.cpp

+ 15 - 9
gameplay/gameplay.vcxproj

@@ -615,15 +615,21 @@
     <None Include="res\shaders\colored-unlit.vert" />
     <None Include="res\shaders\colored.frag" />
     <None Include="res\shaders\colored.vert" />
-    <None Include="res\shaders\lib\attributes-skinning.vert" />
-    <None Include="res\shaders\lib\attributes.vert" />
-    <None Include="res\shaders\lib\lighting-directional.frag" />
-    <None Include="res\shaders\lib\lighting-directional.vert" />
-    <None Include="res\shaders\lib\lighting-point.frag" />
-    <None Include="res\shaders\lib\lighting-point.vert" />
-    <None Include="res\shaders\lib\lighting-spot.frag" />
-    <None Include="res\shaders\lib\lighting-spot.vert" />
-    <None Include="res\shaders\lib\lighting.frag" />
+    <None Include="res\shaders\font.frag" />
+    <None Include="res\shaders\font.vert" />
+    <None Include="res\shaders\form.frag" />
+    <None Include="res\shaders\form.vert" />
+    <None Include="res\shaders\lighting-directional.frag" />
+    <None Include="res\shaders\lighting-directional.vert" />
+    <None Include="res\shaders\lighting-point.frag" />
+    <None Include="res\shaders\lighting-point.vert" />
+    <None Include="res\shaders\lighting-spot.frag" />
+    <None Include="res\shaders\lighting-spot.vert" />
+    <None Include="res\shaders\lighting.frag" />
+    <None Include="res\shaders\skinning-none.vert" />
+    <None Include="res\shaders\skinning.vert" />
+    <None Include="res\shaders\sprite.frag" />
+    <None Include="res\shaders\sprite.vert" />
     <None Include="res\shaders\terrain.frag" />
     <None Include="res\shaders\terrain.vert" />
     <None Include="res\shaders\textured-bumped.frag" />

+ 43 - 28
gameplay/gameplay.vcxproj.filters

@@ -10,9 +10,6 @@
     <Filter Include="res\shaders">
       <UniqueIdentifier>{be0b36f1-49ed-4a06-9f1f-57c654a554fe}</UniqueIdentifier>
     </Filter>
-    <Filter Include="res\shaders\lib">
-      <UniqueIdentifier>{d42defb1-22e2-4573-8077-9bd23e61494c}</UniqueIdentifier>
-    </Filter>
     <Filter Include="src\lua">
       <UniqueIdentifier>{21cf31c6-9c10-44cb-a864-d46a0e7bfe5e}</UniqueIdentifier>
     </Filter>
@@ -1723,55 +1720,73 @@
     <None Include="res\shaders\colored-unlit.vert">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\textured.frag">
+    <None Include="res\shaders\font.frag">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\textured.vert">
+    <None Include="res\shaders\font.vert">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\textured-bumped.frag">
+    <None Include="res\shaders\form.frag">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\textured-bumped.vert">
+    <None Include="res\shaders\form.vert">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\textured-unlit.frag">
+    <None Include="res\shaders\lighting.frag">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\textured-unlit.vert">
+    <None Include="res\shaders\lighting-directional.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\lighting-directional.vert">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\attributes.vert">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\lighting-point.frag">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\attributes-skinning.vert">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\lighting-point.vert">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\lighting.frag">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\lighting-spot.frag">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\lighting-directional.frag">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\lighting-spot.vert">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\lighting-directional.vert">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\skinning.vert">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\lighting-point.frag">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\skinning-none.vert">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\lighting-point.vert">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\sprite.frag">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\lighting-spot.frag">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\sprite.vert">
+      <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\lib\lighting-spot.vert">
-      <Filter>res\shaders\lib</Filter>
+    <None Include="res\shaders\terrain.frag">
+      <Filter>res\shaders</Filter>
     </None>
     <None Include="res\shaders\terrain.vert">
       <Filter>res\shaders</Filter>
     </None>
-    <None Include="res\shaders\terrain.frag">
+    <None Include="res\shaders\textured.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured-bumped.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured-bumped.vert">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured-unlit.frag">
+      <Filter>res\shaders</Filter>
+    </None>
+    <None Include="res\shaders\textured-unlit.vert">
       <Filter>res\shaders</Filter>
     </None>
   </ItemGroup>

+ 1 - 0
gameplay/res/shaders/colored.frag

@@ -14,6 +14,7 @@ uniform float u_specularExponent;				// Specular exponent
 #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]
+uniform vec3 u_spotLightDirection;              // Direction of a spot light source
 #endif
 #if defined(MODULATE_COLOR)
 uniform vec4 u_modulateColor;					// Modulation color

+ 1 - 1
gameplay/src/Form.cpp

@@ -732,7 +732,7 @@ bool Form::gamepadEventInternal(Gamepad::GamepadEvent evt, Gamepad* gamepad, uns
 
         if (form->isEnabled() && form->isVisible())
         {
-            eventConsumed |= form->gamepadEvent(evt, gamepad, analogIndex);
+            eventConsumed |= form->gamepadEventInternal(evt, gamepad, analogIndex);
         }
     }
 

+ 1 - 0
gameplay/src/Form.h

@@ -9,6 +9,7 @@
 #include "Touch.h"
 #include "Keyboard.h"
 #include "Mouse.h"
+#include "Gamepad.h"
 
 namespace gameplay
 {

+ 1 - 1
gameplay/src/Gamepad.cpp

@@ -384,7 +384,7 @@ void Gamepad::setButtons(unsigned int buttons)
     if (buttons != _buttons)
     {
         _buttons = buttons;
-        Form::gamepadEventInternal(BUTTONS_EVENT, this, 0);
+        Form::gamepadEventInternal(BUTTON_EVENT, this, 0);
     }
 }
 

+ 8 - 20
gameplay/src/Gamepad.h

@@ -30,7 +30,7 @@ public:
     {
         CONNECTED_EVENT,
         DISCONNECTED_EVENT,
-        BUTTONS_EVENT,
+        BUTTON_EVENT,
         JOYSTICK_EVENT,
         TRIGGER_EVENT
     };
@@ -168,7 +168,6 @@ public:
      */
     void draw();
 
-
 private:
 
     /**
@@ -192,20 +191,23 @@ private:
      */
     Gamepad(GamepadHandle handle, 
             unsigned int buttonCount, unsigned int joystickCount, unsigned int triggerCount,
-            unsigned int vendorId, unsigned int productId, 
-            const char* vendorString, const char* productString);
+            unsigned int vendorId, unsigned int productId, const char* vendorString, const char* productString);
 
     /**
      * Copy constructor.
      */
     Gamepad(const Gamepad& copy);
 
+    /** 
+     * Destructor.
+     */
+    virtual ~Gamepad();
+
     static void updateInternal(float elapsedTime);
 
     static Gamepad* add(GamepadHandle handle, 
                         unsigned int buttonCount, unsigned int joystickCount, unsigned int triggerCount,
-                        unsigned int vendorId, unsigned int productId, 
-                        const char* vendorString, const char* productString);
+                        unsigned int vendorId, unsigned int productId, const char* vendorString, const char* productString);
 
     static Gamepad* add(const char* formPath);
 
@@ -221,22 +223,12 @@ private:
 
     static ButtonMapping getButtonMappingFromString(const char* string);
 
-    // The following setters are used by platforms when polling or handling gamepad events at the platform layer.
-    // They trigger gamepad state-changed events on forms as necessary.
     void setButtons(unsigned int buttons);
 
     void setJoystickValue(unsigned int index, float x, float y);
 
     void setTriggerValue(unsigned int index, float value);
-
-    /** 
-     * Destructor.
-     */
-    virtual ~Gamepad();
     
-    /** 
-     * Binds the Joystick and Button Control object's from the specified container.
-     */
     void bindGamepadControls(Container* container);
 
     GamepadHandle _handle;        // The handle of the Gamepad.
@@ -247,13 +239,9 @@ private:
     unsigned int _productId;
     std::string _vendorString;
     std::string _productString;
-    
-    // Data needed for virtual gamepads.
     Form* _form;
     Joystick* _uiJoysticks[2];
     Button* _uiButtons[20];
-
-    // Current gamepad state.
     unsigned int _buttons;
     Vector2 _joysticks[2];
     float _triggers[2];

+ 1 - 0
gameplay/src/Platform.cpp

@@ -3,6 +3,7 @@
 #include "Platform.h"
 #include "Game.h"
 #include "ScriptController.h"
+#include "Form.h"
 
 namespace gameplay
 {

+ 5 - 5
gameplay/src/lua/lua_GamepadGamepadEvent.cpp

@@ -8,7 +8,7 @@ static const char* enumStringEmpty = "";
 
 static const char* luaEnumString_GamepadGamepadEvent_CONNECTED_EVENT = "CONNECTED_EVENT";
 static const char* luaEnumString_GamepadGamepadEvent_DISCONNECTED_EVENT = "DISCONNECTED_EVENT";
-static const char* luaEnumString_GamepadGamepadEvent_BUTTONS_EVENT = "BUTTONS_EVENT";
+static const char* luaEnumString_GamepadGamepadEvent_BUTTON_EVENT = "BUTTON_EVENT";
 static const char* luaEnumString_GamepadGamepadEvent_JOYSTICK_EVENT = "JOYSTICK_EVENT";
 static const char* luaEnumString_GamepadGamepadEvent_TRIGGER_EVENT = "TRIGGER_EVENT";
 
@@ -18,8 +18,8 @@ Gamepad::GamepadEvent lua_enumFromString_GamepadGamepadEvent(const char* s)
         return Gamepad::CONNECTED_EVENT;
     if (strcmp(s, luaEnumString_GamepadGamepadEvent_DISCONNECTED_EVENT) == 0)
         return Gamepad::DISCONNECTED_EVENT;
-    if (strcmp(s, luaEnumString_GamepadGamepadEvent_BUTTONS_EVENT) == 0)
-        return Gamepad::BUTTONS_EVENT;
+    if (strcmp(s, luaEnumString_GamepadGamepadEvent_BUTTON_EVENT) == 0)
+        return Gamepad::BUTTON_EVENT;
     if (strcmp(s, luaEnumString_GamepadGamepadEvent_JOYSTICK_EVENT) == 0)
         return Gamepad::JOYSTICK_EVENT;
     if (strcmp(s, luaEnumString_GamepadGamepadEvent_TRIGGER_EVENT) == 0)
@@ -34,8 +34,8 @@ const char* lua_stringFromEnum_GamepadGamepadEvent(Gamepad::GamepadEvent e)
         return luaEnumString_GamepadGamepadEvent_CONNECTED_EVENT;
     if (e == Gamepad::DISCONNECTED_EVENT)
         return luaEnumString_GamepadGamepadEvent_DISCONNECTED_EVENT;
-    if (e == Gamepad::BUTTONS_EVENT)
-        return luaEnumString_GamepadGamepadEvent_BUTTONS_EVENT;
+    if (e == Gamepad::BUTTON_EVENT)
+        return luaEnumString_GamepadGamepadEvent_BUTTON_EVENT;
     if (e == Gamepad::JOYSTICK_EVENT)
         return luaEnumString_GamepadGamepadEvent_JOYSTICK_EVENT;
     if (e == Gamepad::TRIGGER_EVENT)

+ 1 - 1
gameplay/src/lua/lua_Global.cpp

@@ -377,7 +377,7 @@ void luaRegister_lua_Global()
         scopePath.push_back("Gamepad");
         gameplay::ScriptUtil::registerConstantString("CONNECTED_EVENT", "CONNECTED_EVENT", scopePath);
         gameplay::ScriptUtil::registerConstantString("DISCONNECTED_EVENT", "DISCONNECTED_EVENT", scopePath);
-        ScriptUtil::registerConstantString("BUTTONS_EVENT", "BUTTONS_EVENT", scopePath);
+        ScriptUtil::registerConstantString("BUTTON_EVENT", "BUTTON_EVENT", scopePath);
         ScriptUtil::registerConstantString("JOYSTICK_EVENT", "JOYSTICK_EVENT", scopePath);
         ScriptUtil::registerConstantString("TRIGGER_EVENT", "TRIGGER_EVENT", scopePath);
     }