Ver Fonte

Bindings fix

Ivan Safrin há 14 anos atrás
pai
commit
0c2151ec29

+ 49 - 0
Bindings/Contents/LUA/API/Polycode/CoreInput.lua

@@ -65,6 +65,55 @@ function CoreInput:getMouseButtonState(mouseButton)
 	return retVal
 	return retVal
 end
 end
 
 
+function CoreInput:getNumJoysticks()
+	local retVal =  Polycore.CoreInput_getNumJoysticks(self.__ptr)
+	return retVal
+end
+
+function CoreInput:getJoystickInfoByIndex(index)
+	local retVal = Polycore.CoreInput_getJoystickInfoByIndex(self.__ptr, index)
+	if retVal == nil then return nil end
+	if Polycore.__ptr_lookup[retVal] ~= nil then
+		return Polycore.__ptr_lookup[retVal]
+	else
+		Polycore.__ptr_lookup[retVal] = JoystickInfo("__skip_ptr__")
+		Polycore.__ptr_lookup[retVal].__ptr = retVal
+		return Polycore.__ptr_lookup[retVal]
+	end
+end
+
+function CoreInput:getJoystickInfoByID(deviceID)
+	local retVal = Polycore.CoreInput_getJoystickInfoByID(self.__ptr, deviceID)
+	if retVal == nil then return nil end
+	if Polycore.__ptr_lookup[retVal] ~= nil then
+		return Polycore.__ptr_lookup[retVal]
+	else
+		Polycore.__ptr_lookup[retVal] = JoystickInfo("__skip_ptr__")
+		Polycore.__ptr_lookup[retVal].__ptr = retVal
+		return Polycore.__ptr_lookup[retVal]
+	end
+end
+
+function CoreInput:addJoystick(deviceID)
+	local retVal = Polycore.CoreInput_addJoystick(self.__ptr, deviceID)
+end
+
+function CoreInput:removeJoystick(deviceID)
+	local retVal = Polycore.CoreInput_removeJoystick(self.__ptr, deviceID)
+end
+
+function CoreInput:joystickAxisMoved(axisID, value, deviceID)
+	local retVal = Polycore.CoreInput_joystickAxisMoved(self.__ptr, axisID, value, deviceID)
+end
+
+function CoreInput:joystickButtonDown(buttonID, deviceID)
+	local retVal = Polycore.CoreInput_joystickButtonDown(self.__ptr, buttonID, deviceID)
+end
+
+function CoreInput:joystickButtonUp(buttonID, deviceID)
+	local retVal = Polycore.CoreInput_joystickButtonUp(self.__ptr, buttonID, deviceID)
+end
+
 function CoreInput:mouseWheelUp(ticks)
 function CoreInput:mouseWheelUp(ticks)
 	local retVal = Polycore.CoreInput_mouseWheelUp(self.__ptr, ticks)
 	local retVal = Polycore.CoreInput_mouseWheelUp(self.__ptr, ticks)
 end
 end

+ 41 - 0
Bindings/Contents/LUA/API/Polycode/InputEvent.lua

@@ -15,6 +15,11 @@ EVENT_MOUSEWHEEL_UP = 7
 EVENT_MOUSEWHEEL_DOWN = 8
 EVENT_MOUSEWHEEL_DOWN = 8
 EVENT_KEYDOWN = 13
 EVENT_KEYDOWN = 13
 EVENT_KEYUP = 14
 EVENT_KEYUP = 14
+EVENT_JOYBUTTON_DOWN = 15
+EVENT_JOYBUTTON_UP = 16
+EVENT_JOYAXIS_MOVED = 17
+EVENT_JOYDEVICE_ATTACHED = 18
+EVENT_JOYDEVICE_DETACHED = 19
 function InputEvent:__index__(name)
 function InputEvent:__index__(name)
 	if name == "mouseButton" then
 	if name == "mouseButton" then
 		return Polycore.InputEvent_get_mouseButton(self.__ptr)
 		return Polycore.InputEvent_get_mouseButton(self.__ptr)
@@ -47,6 +52,42 @@ function InputEvent:__index__(name)
 		end
 		end
 	elseif name == "timestamp" then
 	elseif name == "timestamp" then
 		return Polycore.InputEvent_get_timestamp(self.__ptr)
 		return Polycore.InputEvent_get_timestamp(self.__ptr)
+	elseif name == "joystickDeviceID" then
+		retVal = Polycore.InputEvent_get_joystickDeviceID(self.__ptr)
+		if Polycore.__ptr_lookup[retVal] ~= nil then
+			return Polycore.__ptr_lookup[retVal]
+		else
+			Polycore.__ptr_lookup[retVal] = unsigned int("__skip_ptr__")
+			Polycore.__ptr_lookup[retVal].__ptr = retVal
+			return Polycore.__ptr_lookup[retVal]
+		end
+	elseif name == "joystickAxisValue" then
+		retVal = Polycore.InputEvent_get_joystickAxisValue(self.__ptr)
+		if Polycore.__ptr_lookup[retVal] ~= nil then
+			return Polycore.__ptr_lookup[retVal]
+		else
+			Polycore.__ptr_lookup[retVal] = float("__skip_ptr__")
+			Polycore.__ptr_lookup[retVal].__ptr = retVal
+			return Polycore.__ptr_lookup[retVal]
+		end
+	elseif name == "joystickButton" then
+		retVal = Polycore.InputEvent_get_joystickButton(self.__ptr)
+		if Polycore.__ptr_lookup[retVal] ~= nil then
+			return Polycore.__ptr_lookup[retVal]
+		else
+			Polycore.__ptr_lookup[retVal] = unsigned int("__skip_ptr__")
+			Polycore.__ptr_lookup[retVal].__ptr = retVal
+			return Polycore.__ptr_lookup[retVal]
+		end
+	elseif name == "joystickAxis" then
+		retVal = Polycore.InputEvent_get_joystickAxis(self.__ptr)
+		if Polycore.__ptr_lookup[retVal] ~= nil then
+			return Polycore.__ptr_lookup[retVal]
+		else
+			Polycore.__ptr_lookup[retVal] = unsigned int("__skip_ptr__")
+			Polycore.__ptr_lookup[retVal].__ptr = retVal
+			return Polycore.__ptr_lookup[retVal]
+		end
 	end
 	end
 end
 end
 
 

+ 117 - 5
Bindings/Contents/LUA/Include/PolycodeLUAWrappers.h

@@ -1544,6 +1544,94 @@ static int Polycore_CoreInput_getMouseButtonState(lua_State *L) {
 	return 1;
 	return 1;
 }
 }
 
 
+static int Polycore_CoreInput_getNumJoysticks(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	lua_pushinteger(L, inst->getNumJoysticks());
+	return 1;
+}
+
+static int Polycore_CoreInput_getJoystickInfoByIndex(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	luaL_checktype(L, 2, LUA_TNUMBER);
+	unsigned int index = lua_tointeger(L, 2);
+	void *ptrRetVal = (void*)inst->getJoystickInfoByIndex(index);
+	if(ptrRetVal == NULL) {
+		lua_pushnil(L);
+	} else {
+		lua_pushlightuserdata(L, ptrRetVal);
+	}
+	return 1;
+}
+
+static int Polycore_CoreInput_getJoystickInfoByID(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	luaL_checktype(L, 2, LUA_TNUMBER);
+	unsigned int deviceID = lua_tointeger(L, 2);
+	void *ptrRetVal = (void*)inst->getJoystickInfoByID(deviceID);
+	if(ptrRetVal == NULL) {
+		lua_pushnil(L);
+	} else {
+		lua_pushlightuserdata(L, ptrRetVal);
+	}
+	return 1;
+}
+
+static int Polycore_CoreInput_addJoystick(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	luaL_checktype(L, 2, LUA_TNUMBER);
+	unsigned int deviceID = lua_tointeger(L, 2);
+	inst->addJoystick(deviceID);
+	return 0;
+}
+
+static int Polycore_CoreInput_removeJoystick(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	luaL_checktype(L, 2, LUA_TNUMBER);
+	unsigned int deviceID = lua_tointeger(L, 2);
+	inst->removeJoystick(deviceID);
+	return 0;
+}
+
+static int Polycore_CoreInput_joystickAxisMoved(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	luaL_checktype(L, 2, LUA_TNUMBER);
+	unsigned int axisID = lua_tointeger(L, 2);
+	luaL_checktype(L, 3, LUA_TNUMBER);
+	float value = lua_tonumber(L, 3);
+	luaL_checktype(L, 4, LUA_TNUMBER);
+	unsigned int deviceID = lua_tointeger(L, 4);
+	inst->joystickAxisMoved(axisID, value, deviceID);
+	return 0;
+}
+
+static int Polycore_CoreInput_joystickButtonDown(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	luaL_checktype(L, 2, LUA_TNUMBER);
+	unsigned int buttonID = lua_tointeger(L, 2);
+	luaL_checktype(L, 3, LUA_TNUMBER);
+	unsigned int deviceID = lua_tointeger(L, 3);
+	inst->joystickButtonDown(buttonID, deviceID);
+	return 0;
+}
+
+static int Polycore_CoreInput_joystickButtonUp(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
+	luaL_checktype(L, 2, LUA_TNUMBER);
+	unsigned int buttonID = lua_tointeger(L, 2);
+	luaL_checktype(L, 3, LUA_TNUMBER);
+	unsigned int deviceID = lua_tointeger(L, 3);
+	inst->joystickButtonUp(buttonID, deviceID);
+	return 0;
+}
+
 static int Polycore_CoreInput_mouseWheelUp(lua_State *L) {
 static int Polycore_CoreInput_mouseWheelUp(lua_State *L) {
 	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
 	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
 	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
 	CoreInput *inst = (CoreInput*)lua_topointer(L, 1);
@@ -3457,6 +3545,34 @@ static int Polycore_InputEvent_get_timestamp(lua_State *L) {
 	return 1;
 	return 1;
 }
 }
 
 
+static int Polycore_InputEvent_get_joystickDeviceID(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	InputEvent *inst = (InputEvent*)lua_topointer(L, 1);
+	lua_pushlightuserdata(L, &inst->joystickDeviceID);
+	return 1;
+}
+
+static int Polycore_InputEvent_get_joystickAxisValue(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	InputEvent *inst = (InputEvent*)lua_topointer(L, 1);
+	lua_pushlightuserdata(L, &inst->joystickAxisValue);
+	return 1;
+}
+
+static int Polycore_InputEvent_get_joystickButton(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	InputEvent *inst = (InputEvent*)lua_topointer(L, 1);
+	lua_pushlightuserdata(L, &inst->joystickButton);
+	return 1;
+}
+
+static int Polycore_InputEvent_get_joystickAxis(lua_State *L) {
+	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
+	InputEvent *inst = (InputEvent*)lua_topointer(L, 1);
+	lua_pushlightuserdata(L, &inst->joystickAxis);
+	return 1;
+}
+
 static int Polycore_InputEvent_set_mouseButton(lua_State *L) {
 static int Polycore_InputEvent_set_mouseButton(lua_State *L) {
 	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
 	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
 	InputEvent *inst = (InputEvent*)lua_topointer(L, 1);
 	InputEvent *inst = (InputEvent*)lua_topointer(L, 1);
@@ -3474,11 +3590,7 @@ static int Polycore_InputEvent_set_timestamp(lua_State *L) {
 }
 }
 
 
 static int Polycore_InputEvent(lua_State *L) {
 static int Polycore_InputEvent(lua_State *L) {
-	luaL_checktype(L, 1, LUA_TLIGHTUSERDATA);
-	Vector2 mousePosition = *(Vector2*)lua_topointer(L, 1);
-	luaL_checktype(L, 2, LUA_TNUMBER);
-	int timestamp = lua_tointeger(L, 2);
-	InputEvent *inst = new InputEvent(mousePosition, timestamp);
+	InputEvent *inst = new InputEvent();
 	lua_pushlightuserdata(L, (void*)inst);
 	lua_pushlightuserdata(L, (void*)inst);
 	return 1;
 	return 1;
 }
 }

+ 12 - 0
Bindings/Contents/LUA/Source/PolycodeLUA.cpp

@@ -160,6 +160,14 @@ int luaopen_Polycode(lua_State *L) {
 		{"CoreInput_getKeyState", Polycore_CoreInput_getKeyState},
 		{"CoreInput_getKeyState", Polycore_CoreInput_getKeyState},
 		{"CoreInput_getMouseDelta", Polycore_CoreInput_getMouseDelta},
 		{"CoreInput_getMouseDelta", Polycore_CoreInput_getMouseDelta},
 		{"CoreInput_getMouseButtonState", Polycore_CoreInput_getMouseButtonState},
 		{"CoreInput_getMouseButtonState", Polycore_CoreInput_getMouseButtonState},
+		{"CoreInput_getNumJoysticks", Polycore_CoreInput_getNumJoysticks},
+		{"CoreInput_getJoystickInfoByIndex", Polycore_CoreInput_getJoystickInfoByIndex},
+		{"CoreInput_getJoystickInfoByID", Polycore_CoreInput_getJoystickInfoByID},
+		{"CoreInput_addJoystick", Polycore_CoreInput_addJoystick},
+		{"CoreInput_removeJoystick", Polycore_CoreInput_removeJoystick},
+		{"CoreInput_joystickAxisMoved", Polycore_CoreInput_joystickAxisMoved},
+		{"CoreInput_joystickButtonDown", Polycore_CoreInput_joystickButtonDown},
+		{"CoreInput_joystickButtonUp", Polycore_CoreInput_joystickButtonUp},
 		{"CoreInput_mouseWheelUp", Polycore_CoreInput_mouseWheelUp},
 		{"CoreInput_mouseWheelUp", Polycore_CoreInput_mouseWheelUp},
 		{"CoreInput_mouseWheelDown", Polycore_CoreInput_mouseWheelDown},
 		{"CoreInput_mouseWheelDown", Polycore_CoreInput_mouseWheelDown},
 		{"CoreInput_setMouseButtonState", Polycore_CoreInput_setMouseButtonState},
 		{"CoreInput_setMouseButtonState", Polycore_CoreInput_setMouseButtonState},
@@ -368,6 +376,10 @@ int luaopen_Polycode(lua_State *L) {
 		{"InputEvent_get_key", Polycore_InputEvent_get_key},
 		{"InputEvent_get_key", Polycore_InputEvent_get_key},
 		{"InputEvent_get_charCode", Polycore_InputEvent_get_charCode},
 		{"InputEvent_get_charCode", Polycore_InputEvent_get_charCode},
 		{"InputEvent_get_timestamp", Polycore_InputEvent_get_timestamp},
 		{"InputEvent_get_timestamp", Polycore_InputEvent_get_timestamp},
+		{"InputEvent_get_joystickDeviceID", Polycore_InputEvent_get_joystickDeviceID},
+		{"InputEvent_get_joystickAxisValue", Polycore_InputEvent_get_joystickAxisValue},
+		{"InputEvent_get_joystickButton", Polycore_InputEvent_get_joystickButton},
+		{"InputEvent_get_joystickAxis", Polycore_InputEvent_get_joystickAxis},
 		{"InputEvent_set_mouseButton", Polycore_InputEvent_set_mouseButton},
 		{"InputEvent_set_mouseButton", Polycore_InputEvent_set_mouseButton},
 		{"InputEvent_set_timestamp", Polycore_InputEvent_set_timestamp},
 		{"InputEvent_set_timestamp", Polycore_InputEvent_set_timestamp},
 		{"InputEvent", Polycore_InputEvent},
 		{"InputEvent", Polycore_InputEvent},

+ 1 - 4
Core/Contents/Include/PolyCoreInput.h

@@ -44,10 +44,7 @@ namespace Polycode {
 	* User input event dispatcher. The Core input class is where all of the input events originate. You can add event listeners to this class to listen for user input events or poll it manually to check the state of user input.
 	* User input event dispatcher. The Core input class is where all of the input events originate. You can add event listeners to this class to listen for user input events or poll it manually to check the state of user input.
 	*/
 	*/
 	class _PolyExport CoreInput : public EventDispatcher {
 	class _PolyExport CoreInput : public EventDispatcher {
-		
-		friend class PolyCore;
-		
-	public:
+		public:
 		
 		
 		CoreInput();
 		CoreInput();
 		~CoreInput();
 		~CoreInput();