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

More code cleanup, documentation, polycode build tool fixes and player fixes

Ivan Safrin 14 лет назад
Родитель
Сommit
ea513e36b8
100 измененных файлов с 3365 добавлено и 1002 удалено
  1. 1 0
      .gitignore
  2. 693 434
      Bindings/Build/Mac OS X/Bindings.xcodeproj/project.xcworkspace/xcuserdata/ivansafrin.xcuserdatad/UserInterfaceState.xcuserstate
  3. 6 0
      Bindings/Contents/LUA/API/Polycode/BezierCurve.lua
  4. 12 0
      Bindings/Contents/LUA/API/Polycode/BezierPathTween.lua
  5. 12 0
      Bindings/Contents/LUA/API/Polycode/Bone.lua
  6. 6 0
      Bindings/Contents/LUA/API/Polycode/BoneTrack.lua
  7. 12 0
      Bindings/Contents/LUA/API/Polycode/Camera.lua
  8. 6 0
      Bindings/Contents/LUA/API/Polycode/Color.lua
  9. 6 0
      Bindings/Contents/LUA/API/Polycode/Config.lua
  10. 6 0
      Bindings/Contents/LUA/API/Polycode/Core.lua
  11. 12 0
      Bindings/Contents/LUA/API/Polycode/CoreInput.lua
  12. 6 0
      Bindings/Contents/LUA/API/Polycode/CoreServices.lua
  13. 12 0
      Bindings/Contents/LUA/API/Polycode/Cubemap.lua
  14. 6 0
      Bindings/Contents/LUA/API/Polycode/Data.lua
  15. 6 0
      Bindings/Contents/LUA/API/Polycode/Entity.lua
  16. 6 0
      Bindings/Contents/LUA/API/Polycode/Event.lua
  17. 12 0
      Bindings/Contents/LUA/API/Polycode/EventDispatcher.lua
  18. 6 0
      Bindings/Contents/LUA/API/Polycode/EventHandler.lua
  19. 12 0
      Bindings/Contents/LUA/API/Polycode/FixedShader.lua
  20. 12 0
      Bindings/Contents/LUA/API/Polycode/FixedShaderBinding.lua
  21. 6 0
      Bindings/Contents/LUA/API/Polycode/Font.lua
  22. 6 0
      Bindings/Contents/LUA/API/Polycode/FontManager.lua
  23. 6 0
      Bindings/Contents/LUA/API/Polycode/Image.lua
  24. 39 0
      Bindings/Contents/LUA/API/Polycode/InputEvent.lua
  25. 12 0
      Bindings/Contents/LUA/API/Polycode/Label.lua
  26. 6 0
      Bindings/Contents/LUA/API/Polycode/Logger.lua
  27. 12 0
      Bindings/Contents/LUA/API/Polycode/Material.lua
  28. 6 0
      Bindings/Contents/LUA/API/Polycode/MaterialManager.lua
  29. 6 0
      Bindings/Contents/LUA/API/Polycode/Matrix4.lua
  30. 6 0
      Bindings/Contents/LUA/API/Polycode/Mesh.lua
  31. 6 0
      Bindings/Contents/LUA/API/Polycode/OSBasics.lua
  32. 6 0
      Bindings/Contents/LUA/API/Polycode/OSFILE.lua
  33. 6 0
      Bindings/Contents/LUA/API/Polycode/OSFileEntry.lua
  34. 6 0
      Bindings/Contents/LUA/API/Polycode/ObjectEntry.lua
  35. 12 0
      Bindings/Contents/LUA/API/Polycode/OpenGLCubemap.lua
  36. 6 0
      Bindings/Contents/LUA/API/Polycode/Particle.lua
  37. 6 0
      Bindings/Contents/LUA/API/Polycode/ParticleEmitter.lua
  38. 6 0
      Bindings/Contents/LUA/API/Polycode/Perlin.lua
  39. 6 0
      Bindings/Contents/LUA/API/Polycode/PolycodeModule.lua
  40. 6 0
      Bindings/Contents/LUA/API/Polycode/Polygon.lua
  41. 6 0
      Bindings/Contents/LUA/API/Polycode/Quaternion.lua
  42. 6 0
      Bindings/Contents/LUA/API/Polycode/QuaternionCurve.lua
  43. 12 0
      Bindings/Contents/LUA/API/Polycode/QuaternionTween.lua
  44. 6 0
      Bindings/Contents/LUA/API/Polycode/Rectangle.lua
  45. 6 0
      Bindings/Contents/LUA/API/Polycode/Renderer.lua
  46. 6 0
      Bindings/Contents/LUA/API/Polycode/Resource.lua
  47. 6 0
      Bindings/Contents/LUA/API/Polycode/ResourceManager.lua
  48. 12 0
      Bindings/Contents/LUA/API/Polycode/Scene.lua
  49. 12 0
      Bindings/Contents/LUA/API/Polycode/SceneEntity.lua
  50. 12 0
      Bindings/Contents/LUA/API/Polycode/SceneLabel.lua
  51. 12 0
      Bindings/Contents/LUA/API/Polycode/SceneLight.lua
  52. 12 0
      Bindings/Contents/LUA/API/Polycode/SceneLine.lua
  53. 6 0
      Bindings/Contents/LUA/API/Polycode/SceneManager.lua
  54. 12 0
      Bindings/Contents/LUA/API/Polycode/SceneMesh.lua
  55. 12 0
      Bindings/Contents/LUA/API/Polycode/SceneParticleEmitter.lua
  56. 12 0
      Bindings/Contents/LUA/API/Polycode/ScenePrimitive.lua
  57. 6 0
      Bindings/Contents/LUA/API/Polycode/SceneRenderTexture.lua
  58. 12 0
      Bindings/Contents/LUA/API/Polycode/Screen.lua
  59. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenCurve.lua
  60. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenEntity.lua
  61. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenEvent.lua
  62. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenImage.lua
  63. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenLabel.lua
  64. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenLine.lua
  65. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenManager.lua
  66. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenMesh.lua
  67. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenParticleEmitter.lua
  68. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenShape.lua
  69. 12 0
      Bindings/Contents/LUA/API/Polycode/ScreenSprite.lua
  70. 6 0
      Bindings/Contents/LUA/API/Polycode/Shader.lua
  71. 6 0
      Bindings/Contents/LUA/API/Polycode/ShaderBinding.lua
  72. 12 0
      Bindings/Contents/LUA/API/Polycode/Skeleton.lua
  73. 6 0
      Bindings/Contents/LUA/API/Polycode/SkeletonAnimation.lua
  74. 6 0
      Bindings/Contents/LUA/API/Polycode/Sound.lua
  75. 6 0
      Bindings/Contents/LUA/API/Polycode/SoundManager.lua
  76. 6 0
      Bindings/Contents/LUA/API/Polycode/String.lua
  77. 6 0
      Bindings/Contents/LUA/API/Polycode/Texture.lua
  78. 12 0
      Bindings/Contents/LUA/API/Polycode/Timer.lua
  79. 6 0
      Bindings/Contents/LUA/API/Polycode/TimerManager.lua
  80. 12 0
      Bindings/Contents/LUA/API/Polycode/Tween.lua
  81. 6 0
      Bindings/Contents/LUA/API/Polycode/TweenManager.lua
  82. 12 0
      Bindings/Contents/LUA/API/Polycode/Vector2.lua
  83. 6 0
      Bindings/Contents/LUA/API/Polycode/Vector3.lua
  84. 12 0
      Bindings/Contents/LUA/API/Polycode/Vertex.lua
  85. 6 0
      Bindings/Contents/LUA/API/Polycode/VertexBuffer.lua
  86. 238 1
      Bindings/Contents/LUA/API/defaults.lua
  87. 367 62
      Bindings/Contents/LUA/Include/PolycodeLUAWrappers.h
  88. 86 0
      Bindings/Contents/LUA/Source/PolycodeLUA.cpp
  89. BIN
      Bindings/Scripts/create_lua_library/.create_lua_library.py.swp
  90. 26 1
      Bindings/Scripts/create_lua_library/create_lua_library.py
  91. 635 291
      Core/Build/Mac OS X/PolyCore.xcodeproj/project.xcworkspace/xcuserdata/ivansafrin.xcuserdatad/UserInterfaceState.xcuserstate
  92. 4 0
      Core/Contents/Include/PolyInputEvent.h
  93. 162 0
      Modules/Build/Mac OS X/Modules.xcodeproj/project.pbxproj
  94. 204 188
      Modules/Build/Mac OS X/Modules.xcodeproj/project.xcworkspace/xcuserdata/ivansafrin.xcuserdatad/UserInterfaceState.xcuserstate
  95. 58 0
      Modules/Build/Mac OS X/Modules.xcodeproj/xcuserdata/ivansafrin.xcuserdatad/xcschemes/Polycode2DPhysicsModule.xcscheme
  96. 58 0
      Modules/Build/Mac OS X/Modules.xcodeproj/xcuserdata/ivansafrin.xcuserdatad/xcschemes/PolycodeGLSLModule.xcscheme
  97. 20 0
      Modules/Build/Mac OS X/Modules.xcodeproj/xcuserdata/ivansafrin.xcuserdatad/xcschemes/xcschememanagement.plist
  98. 20 9
      Modules/Contents/2DPhysics/Include/PolyPhysicsScreen.h
  99. 20 9
      Modules/Contents/2DPhysics/Include/PolyPhysicsScreenEntity.h
  100. 20 7
      Modules/Contents/2DPhysics/Source/PolyPhysicsScreen.cpp

+ 1 - 0
.gitignore

@@ -8,6 +8,7 @@
 *.so
 *.pbxuser
 *.mode1v3
+*.swp
 
 Core/Build/Mac\ OS\ X/build
 IDE/Build/Mac\ OS\ X/build

Разница между файлами не показана из-за своего большого размера
+ 693 - 434
Bindings/Build/Mac OS X/Bindings.xcodeproj/project.xcworkspace/xcuserdata/ivansafrin.xcuserdatad/UserInterfaceState.xcuserstate


+ 6 - 0
Bindings/Contents/LUA/API/Polycode/BezierCurve.lua

@@ -87,3 +87,9 @@ function BezierCurve:rebuildBuffers()
 	local retVal =  Polycore.BezierCurve_rebuildBuffers(self.__ptr)
 end
 
+
+
+function BezierCurve:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_BezierCurve(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/BezierPathTween.lua

@@ -9,6 +9,12 @@ class "BezierPathTween" (Tween)
 
 
 function BezierPathTween:BezierPathTween(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Tween" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -26,3 +32,9 @@ function BezierPathTween:updateCustomTween()
 	local retVal =  Polycore.BezierPathTween_updateCustomTween(self.__ptr)
 end
 
+
+
+function BezierPathTween:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_BezierPathTween(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Bone.lua

@@ -21,6 +21,12 @@ end
 
 
 function Bone:Bone(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -171,3 +177,9 @@ function Bone:getFullBaseMatrix()
 	end
 end
 
+
+
+function Bone:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Bone(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/BoneTrack.lua

@@ -36,3 +36,9 @@ function BoneTrack:setSpeed(speed)
 	local retVal = Polycore.BoneTrack_setSpeed(self.__ptr, speed)
 end
 
+
+
+function BoneTrack:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_BoneTrack(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Camera.lua

@@ -9,6 +9,12 @@ class "Camera" (SceneEntity)
 
 
 function Camera:Camera(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -92,3 +98,9 @@ function Camera:setPostFilter(shaderName)
 	local retVal = Polycore.Camera_setPostFilter(self.__ptr, shaderName)
 end
 
+
+
+function Camera:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Camera(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Color.lua

@@ -85,3 +85,9 @@ function Color:getUint()
 	return retVal
 end
 
+
+
+function Color:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Color(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Config.lua

@@ -57,3 +57,9 @@ function Config:getStringValue(configNamespace, key)
 	return retVal
 end
 
+
+
+function Config:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Config(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Core.lua

@@ -195,3 +195,9 @@ function Core:getUserPointer()
 	end
 end
 
+
+
+function Core:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Core(self.__ptr)
+end

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

@@ -12,6 +12,12 @@ MOUSE_BUTTON3 = 2
 
 
 function CoreInput:CoreInput(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "EventDispatcher" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -92,3 +98,9 @@ function CoreInput:createEvent(event)
 	end
 end
 
+
+
+function CoreInput:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_CoreInput(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/CoreServices.lua

@@ -167,3 +167,9 @@ function CoreServices:getConfig()
 	end
 end
 
+
+
+function CoreServices:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_CoreServices(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Cubemap.lua

@@ -9,6 +9,12 @@ class "Cubemap" (Resource)
 
 
 function Cubemap:Cubemap(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Resource" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -22,3 +28,9 @@ function Cubemap:Cubemap(...)
 	end
 end
 
+
+
+function Cubemap:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Cubemap(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Data.lua

@@ -49,3 +49,9 @@ function Data:getData()
 	end
 end
 
+
+
+function Data:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Data(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Entity.lua

@@ -462,3 +462,9 @@ function Entity:setRenderer(r_enderer)
 	local retVal = Polycore.Entity_setRenderer(self.__ptr, r_enderer.__ptr)
 end
 
+
+
+function Entity:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Entity(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Event.lua

@@ -51,3 +51,9 @@ function Event:getEventType()
 	return retVal
 end
 
+
+
+function Event:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Event(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/EventDispatcher.lua

@@ -9,6 +9,12 @@ class "EventDispatcher" (EventHandler)
 
 
 function EventDispatcher:EventDispatcher(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "EventHandler" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -50,3 +56,9 @@ function EventDispatcher:dispatchEventNoDelete(event, eventCode)
 	local retVal = Polycore.EventDispatcher_dispatchEventNoDelete(self.__ptr, event.__ptr, eventCode)
 end
 
+
+
+function EventDispatcher:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_EventDispatcher(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/EventHandler.lua

@@ -22,6 +22,12 @@ end
 
 
 
+function EventHandler:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_EventHandler(self.__ptr)
+end
+
+
 function EventHandler:__handleEvent(event)
 	evt = Event("__skip_ptr__")
 	evt.__ptr = event

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/FixedShader.lua

@@ -9,6 +9,12 @@ class "FixedShader" (Shader)
 
 
 function FixedShader:FixedShader(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Shader" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -33,3 +39,9 @@ function FixedShader:createBinding()
 	end
 end
 
+
+
+function FixedShader:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_FixedShader(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/FixedShaderBinding.lua

@@ -9,6 +9,12 @@ class "FixedShaderBinding" (ShaderBinding)
 
 
 function FixedShaderBinding:FixedShaderBinding(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ShaderBinding" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -45,3 +51,9 @@ function FixedShaderBinding:getDiffuseTexture()
 	end
 end
 
+
+
+function FixedShaderBinding:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_FixedShaderBinding(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Font.lua

@@ -36,3 +36,9 @@ function Font:isValid()
 	return retVal
 end
 
+
+
+function Font:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Font(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/FontManager.lua

@@ -35,3 +35,9 @@ function FontManager:getFontByName(fontName)
 	end
 end
 
+
+
+function FontManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_FontManager(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Image.lua

@@ -152,3 +152,9 @@ function Image:getPixels()
 	end
 end
 
+
+
+function Image:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Image(self.__ptr)
+end

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

@@ -37,6 +37,12 @@ end
 
 
 function InputEvent:InputEvent(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Event" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -50,8 +56,41 @@ function InputEvent:InputEvent(...)
 	end
 end
 
+function InputEvent:getMousePosition()
+	local retVal =  Polycore.InputEvent_getMousePosition(self.__ptr)
+	if Polycore.__ptr_lookup[retVal] ~= nil then
+		return Polycore.__ptr_lookup[retVal]
+	else
+		Polycore.__ptr_lookup[retVal] = Vector2("__skip_ptr__")
+		Polycore.__ptr_lookup[retVal].__ptr = retVal
+		return Polycore.__ptr_lookup[retVal]
+	end
+end
+
+function InputEvent:getKey()
+	local retVal =  Polycore.InputEvent_getKey(self.__ptr)
+	if Polycore.__ptr_lookup[retVal] ~= nil then
+		return Polycore.__ptr_lookup[retVal]
+	else
+		Polycore.__ptr_lookup[retVal] = PolyKEY("__skip_ptr__")
+		Polycore.__ptr_lookup[retVal].__ptr = retVal
+		return Polycore.__ptr_lookup[retVal]
+	end
+end
+
+function InputEvent:getMouseButton()
+	local retVal =  Polycore.InputEvent_getMouseButton(self.__ptr)
+	return retVal
+end
+
 function InputEvent:keyCode()
 	local retVal =  Polycore.InputEvent_keyCode(self.__ptr)
 	return retVal
 end
 
+
+
+function InputEvent:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_InputEvent(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Label.lua

@@ -11,6 +11,12 @@ ANTIALIAS_NONE = 1
 
 
 function Label:Label(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Image" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -54,3 +60,9 @@ function Label:getFont()
 	end
 end
 
+
+
+function Label:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Label(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Logger.lua

@@ -28,3 +28,9 @@ function Logger:logw(str)
 	local retVal = Polycore.Logger_logw(str.__ptr)
 end
 
+
+
+function Logger:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Logger(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Material.lua

@@ -9,6 +9,12 @@ class "Material" (Resource)
 
 
 function Material:Material(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Resource" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -82,3 +88,9 @@ function Material:loadMaterial(fileName)
 	local retVal = Polycore.Material_loadMaterial(self.__ptr, fileName)
 end
 
+
+
+function Material:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Material(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/MaterialManager.lua

@@ -158,3 +158,9 @@ function MaterialManager:createShaderFromXMLNode(node)
 	end
 end
 
+
+
+function MaterialManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_MaterialManager(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Matrix4.lua

@@ -80,3 +80,9 @@ function Matrix4:inverseAffine()
 	end
 end
 
+
+
+function Matrix4:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Matrix4(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Mesh.lua

@@ -146,3 +146,9 @@ function Mesh:hasVertexBuffer()
 	return retVal
 end
 
+
+
+function Mesh:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Mesh(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/OSBasics.lua

@@ -55,3 +55,9 @@ function OSBasics:removeItem(pathString)
 	local retVal = Polycore.OSBasics_removeItem(pathString)
 end
 
+
+
+function OSBasics:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_OSBasics(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/OSFILE.lua

@@ -38,3 +38,9 @@ function OSFILE:debugDump()
 	local retVal =  Polycore.OSFILE_debugDump(self.__ptr)
 end
 
+
+
+function OSFILE:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_OSFILE(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/OSFileEntry.lua

@@ -59,3 +59,9 @@ function OSFileEntry:OSFileEntry(...)
 	end
 end
 
+
+
+function OSFileEntry:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_OSFileEntry(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/ObjectEntry.lua

@@ -79,3 +79,9 @@ function ObjectEntry:addChild(name)
 	end
 end
 
+
+
+function ObjectEntry:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ObjectEntry(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/OpenGLCubemap.lua

@@ -9,6 +9,12 @@ class "OpenGLCubemap" (Cubemap)
 
 
 function OpenGLCubemap:OpenGLCubemap(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Cubemap" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -33,3 +39,9 @@ function OpenGLCubemap:getTextureID()
 	end
 end
 
+
+
+function OpenGLCubemap:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_OpenGLCubemap(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Particle.lua

@@ -71,3 +71,9 @@ function Particle:createScreenParticle(particleType, texture, particleMesh)
 	local retVal = Polycore.Particle_createScreenParticle(self.__ptr, particleType, texture.__ptr, particleMesh.__ptr)
 end
 
+
+
+function Particle:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Particle(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/ParticleEmitter.lua

@@ -144,3 +144,9 @@ function ParticleEmitter:updateEmitter()
 	local retVal =  Polycore.ParticleEmitter_updateEmitter(self.__ptr)
 end
 
+
+
+function ParticleEmitter:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ParticleEmitter(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Perlin.lua

@@ -25,3 +25,9 @@ function Perlin:Get(x, y)
 	return retVal
 end
 
+
+
+function Perlin:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Perlin(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/PolycodeModule.lua

@@ -27,3 +27,9 @@ function PolycodeModule:getType()
 	return retVal
 end
 
+
+
+function PolycodeModule:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_PolycodeModule(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Polygon.lua

@@ -97,3 +97,9 @@ function Polygon:flipUVY()
 	local retVal =  Polycore.Polygon_flipUVY(self.__ptr)
 end
 
+
+
+function Polygon:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Polygon(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Quaternion.lua

@@ -176,3 +176,9 @@ function Quaternion:createMatrix()
 	end
 end
 
+
+
+function Quaternion:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Quaternion(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/QuaternionCurve.lua

@@ -39,3 +39,9 @@ function QuaternionCurve:recalcTangents()
 	local retVal =  Polycore.QuaternionCurve_recalcTangents(self.__ptr)
 end
 
+
+
+function QuaternionCurve:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_QuaternionCurve(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/QuaternionTween.lua

@@ -9,6 +9,12 @@ class "QuaternionTween" (Tween)
 
 
 function QuaternionTween:QuaternionTween(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Tween" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -26,3 +32,9 @@ function QuaternionTween:updateCustomTween()
 	local retVal =  Polycore.QuaternionTween_updateCustomTween(self.__ptr)
 end
 
+
+
+function QuaternionTween:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_QuaternionTween(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Rectangle.lua

@@ -51,3 +51,9 @@ function Rectangle:setRect(x, y, w, h)
 	local retVal = Polycore.Rectangle_setRect(self.__ptr, x, y, w, h)
 end
 
+
+
+function Rectangle:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Rectangle(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Renderer.lua

@@ -417,3 +417,9 @@ function Renderer:getNumLights()
 	return retVal
 end
 
+
+
+function Renderer:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Renderer(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Resource.lua

@@ -49,3 +49,9 @@ function Resource:getResourcePath()
 	return retVal
 end
 
+
+
+function Resource:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Resource(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/ResourceManager.lua

@@ -76,3 +76,9 @@ function ResourceManager:addShaderModule(module)
 	local retVal = Polycore.ResourceManager_addShaderModule(self.__ptr, module.__ptr)
 end
 
+
+
+function ResourceManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ResourceManager(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Scene.lua

@@ -31,6 +31,12 @@ end
 
 
 function Scene:Scene(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "EventDispatcher" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -219,3 +225,9 @@ function Scene:getCustomEntityByType(type)
 	end
 end
 
+
+
+function Scene:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Scene(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/SceneEntity.lua

@@ -9,6 +9,12 @@ class "SceneEntity" (Entity)
 
 
 function SceneEntity:SceneEntity(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Entity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -27,3 +33,9 @@ function SceneEntity:testMouseCollision(x, y)
 	return retVal
 end
 
+
+
+function SceneEntity:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneEntity(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/SceneLabel.lua

@@ -9,6 +9,12 @@ class "SceneLabel" (SceneEntity)
 
 
 function SceneLabel:SceneLabel(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -46,3 +52,9 @@ function SceneLabel:Render()
 	local retVal =  Polycore.SceneLabel_Render(self.__ptr)
 end
 
+
+
+function SceneLabel:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneLabel(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/SceneLight.lua

@@ -11,6 +11,12 @@ SPOT_LIGHT = 1
 
 
 function SceneLight:SceneLight(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -91,3 +97,9 @@ function SceneLight:getLightType()
 	return retVal
 end
 
+
+
+function SceneLight:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneLight(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/SceneLine.lua

@@ -9,6 +9,12 @@ class "SceneLine" (SceneEntity)
 
 
 function SceneLine:SceneLine(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -26,3 +32,9 @@ function SceneLine:Render()
 	local retVal =  Polycore.SceneLine_Render(self.__ptr)
 end
 
+
+
+function SceneLine:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneLine(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/SceneManager.lua

@@ -40,3 +40,9 @@ function SceneManager:registerRenderTexture(r_enderTexture)
 	local retVal = Polycore.SceneManager_registerRenderTexture(self.__ptr, r_enderTexture.__ptr)
 end
 
+
+
+function SceneManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneManager(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/SceneMesh.lua

@@ -21,6 +21,12 @@ end
 
 
 function SceneMesh:SceneMesh(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -129,3 +135,9 @@ function SceneMesh:cacheToVertexBuffer(cache)
 	local retVal = Polycore.SceneMesh_cacheToVertexBuffer(self.__ptr, cache)
 end
 
+
+
+function SceneMesh:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneMesh(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/SceneParticleEmitter.lua

@@ -9,6 +9,12 @@ class "SceneParticleEmitter" (SceneEntity)
 
 
 function SceneParticleEmitter:SceneParticleEmitter(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -41,3 +47,9 @@ function SceneParticleEmitter:Update()
 	local retVal =  Polycore.SceneParticleEmitter_Update(self.__ptr)
 end
 
+
+
+function SceneParticleEmitter:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneParticleEmitter(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScenePrimitive.lua

@@ -12,6 +12,12 @@ TYPE_SPHERE = 2
 
 
 function ScenePrimitive:ScenePrimitive(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneMesh" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -25,3 +31,9 @@ function ScenePrimitive:ScenePrimitive(...)
 	end
 end
 
+
+
+function ScenePrimitive:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScenePrimitive(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/SceneRenderTexture.lua

@@ -57,3 +57,9 @@ function SceneRenderTexture:getTargetCamera()
 	end
 end
 
+
+
+function SceneRenderTexture:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SceneRenderTexture(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Screen.lua

@@ -21,6 +21,12 @@ end
 
 
 function Screen:Screen(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "EventDispatcher" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -154,3 +160,9 @@ function Screen:getRootEntity()
 	end
 end
 
+
+
+function Screen:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Screen(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenCurve.lua

@@ -9,6 +9,12 @@ class "ScreenCurve" (ScreenShape)
 
 
 function ScreenCurve:ScreenCurve(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenShape" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -22,3 +28,9 @@ function ScreenCurve:ScreenCurve(...)
 	end
 end
 
+
+
+function ScreenCurve:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenCurve(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenEntity.lua

@@ -38,6 +38,12 @@ end
 
 
 function ScreenEntity:ScreenEntity(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Entity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -220,3 +226,9 @@ function ScreenEntity:isFocusable()
 	return retVal
 end
 
+
+
+function ScreenEntity:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenEntity(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenEvent.lua

@@ -13,6 +13,12 @@ ENTITY_MOVE_DOWN = 3
 
 
 function ScreenEvent:ScreenEvent(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Event" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -26,3 +32,9 @@ function ScreenEvent:ScreenEvent(...)
 	end
 end
 
+
+
+function ScreenEvent:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenEvent(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenImage.lua

@@ -9,6 +9,12 @@ class "ScreenImage" (ScreenShape)
 
 
 function ScreenImage:ScreenImage(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenShape" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -36,3 +42,9 @@ function ScreenImage:getImageHeight()
 	return retVal
 end
 
+
+
+function ScreenImage:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenImage(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenLabel.lua

@@ -9,6 +9,12 @@ class "ScreenLabel" (ScreenShape)
 
 
 function ScreenLabel:ScreenLabel(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenShape" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -46,3 +52,9 @@ function ScreenLabel:getLabel()
 	end
 end
 
+
+
+function ScreenLabel:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenLabel(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenLine.lua

@@ -9,6 +9,12 @@ class "ScreenLine" (ScreenEntity)
 
 
 function ScreenLine:ScreenLine(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -34,3 +40,9 @@ function ScreenLine:setLineWidth(width)
 	local retVal = Polycore.ScreenLine_setLineWidth(self.__ptr, width)
 end
 
+
+
+function ScreenLine:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenLine(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenManager.lua

@@ -9,6 +9,12 @@ class "ScreenManager" (EventDispatcher)
 
 
 function ScreenManager:ScreenManager(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "EventDispatcher" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -34,3 +40,9 @@ function ScreenManager:Update()
 	local retVal =  Polycore.ScreenManager_Update(self.__ptr)
 end
 
+
+
+function ScreenManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenManager(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenMesh.lua

@@ -9,6 +9,12 @@ class "ScreenMesh" (ScreenEntity)
 
 
 function ScreenMesh:ScreenMesh(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -56,3 +62,9 @@ function ScreenMesh:setTexture(texture)
 	local retVal = Polycore.ScreenMesh_setTexture(self.__ptr, texture.__ptr)
 end
 
+
+
+function ScreenMesh:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenMesh(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenParticleEmitter.lua

@@ -9,6 +9,12 @@ class "ScreenParticleEmitter" (ScreenEntity)
 
 
 function ScreenParticleEmitter:ScreenParticleEmitter(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -41,3 +47,9 @@ function ScreenParticleEmitter:Update()
 	local retVal =  Polycore.ScreenParticleEmitter_Update(self.__ptr)
 end
 
+
+
+function ScreenParticleEmitter:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenParticleEmitter(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenShape.lua

@@ -29,6 +29,12 @@ end
 
 
 function ScreenShape:ScreenShape(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenMesh" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -70,3 +76,9 @@ function ScreenShape:addShapePoint(x, y)
 	local retVal = Polycore.ScreenShape_addShapePoint(self.__ptr, x, y)
 end
 
+
+
+function ScreenShape:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenShape(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/ScreenSprite.lua

@@ -9,6 +9,12 @@ class "ScreenSprite" (ScreenShape)
 
 
 function ScreenSprite:ScreenSprite(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "ScreenShape" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -34,3 +40,9 @@ function ScreenSprite:Update()
 	local retVal =  Polycore.ScreenSprite_Update(self.__ptr)
 end
 
+
+
+function ScreenSprite:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ScreenSprite(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Shader.lua

@@ -35,3 +35,9 @@ function Shader:createBinding()
 	end
 end
 
+
+
+function Shader:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Shader(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/ShaderBinding.lua

@@ -115,3 +115,9 @@ function ShaderBinding:getOutTargetBinding(index)
 	end
 end
 
+
+
+function ShaderBinding:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_ShaderBinding(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Skeleton.lua

@@ -9,6 +9,12 @@ class "Skeleton" (SceneEntity)
 
 
 function Skeleton:Skeleton(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "SceneEntity" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -99,3 +105,9 @@ function Skeleton:getCurrentAnimation()
 	end
 end
 
+
+
+function Skeleton:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Skeleton(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/SkeletonAnimation.lua

@@ -45,3 +45,9 @@ function SkeletonAnimation:setSpeed(speed)
 	local retVal = Polycore.SkeletonAnimation_setSpeed(self.__ptr, speed)
 end
 
+
+
+function SkeletonAnimation:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SkeletonAnimation(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Sound.lua

@@ -73,3 +73,9 @@ function Sound:soundCheck(result, err)
 	local retVal = Polycore.Sound_soundCheck(self.__ptr, result, err)
 end
 
+
+
+function Sound:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Sound(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/SoundManager.lua

@@ -24,3 +24,9 @@ function SoundManager:initAL()
 	local retVal =  Polycore.SoundManager_initAL(self.__ptr)
 end
 
+
+
+function SoundManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_SoundManager(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/String.lua

@@ -146,3 +146,9 @@ function String:setDataWithEncoding(data, encoding)
 	local retVal = Polycore.String_setDataWithEncoding(self.__ptr, data.__ptr, encoding)
 end
 
+
+
+function String:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_String(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Texture.lua

@@ -86,3 +86,9 @@ function Texture:getHeight()
 	return retVal
 end
 
+
+
+function Texture:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Texture(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Timer.lua

@@ -10,6 +10,12 @@ EVENT_TRIGGER = 0
 
 
 function Timer:Timer(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "EventDispatcher" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -55,3 +61,9 @@ function Timer:getElapsedf()
 	return retVal
 end
 
+
+
+function Timer:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Timer(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/TimerManager.lua

@@ -32,3 +32,9 @@ function TimerManager:Update()
 	local retVal =  Polycore.TimerManager_Update(self.__ptr)
 end
 
+
+
+function TimerManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_TimerManager(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Tween.lua

@@ -46,6 +46,12 @@ end
 
 
 function Tween:Tween(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "EventDispatcher" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -89,3 +95,9 @@ function Tween:setSpeed(speed)
 	local retVal = Polycore.Tween_setSpeed(self.__ptr, speed)
 end
 
+
+
+function Tween:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Tween(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/TweenManager.lua

@@ -28,3 +28,9 @@ function TweenManager:Update()
 	local retVal =  Polycore.TweenManager_Update(self.__ptr)
 end
 
+
+
+function TweenManager:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_TweenManager(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Vector2.lua

@@ -9,6 +9,12 @@ class "Vector2" (Vector3)
 
 
 function Vector2:Vector2(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Vector3" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -22,3 +28,9 @@ function Vector2:Vector2(...)
 	end
 end
 
+
+
+function Vector2:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Vector2(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/Vector3.lua

@@ -76,3 +76,9 @@ function Vector3:Normalize()
 	local retVal =  Polycore.Vector3_Normalize(self.__ptr)
 end
 
+
+
+function Vector3:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Vector3(self.__ptr)
+end

+ 12 - 0
Bindings/Contents/LUA/API/Polycode/Vertex.lua

@@ -21,6 +21,12 @@ end
 
 
 function Vertex:Vertex(...)
+	if type(arg[1]) == "table" and count(arg) == 1 then
+		if ""..arg[1]:class() == "Vector3" then
+			self.__ptr = arg[1].__ptr
+			return
+		end
+	end
 	for k,v in pairs(arg) do
 		if type(v) == "table" then
 			if v.__ptr ~= nil then
@@ -77,3 +83,9 @@ function Vertex:setNormal(x, y, z)
 	local retVal = Polycore.Vertex_setNormal(self.__ptr, x, y, z)
 end
 
+
+
+function Vertex:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_Vertex(self.__ptr)
+end

+ 6 - 0
Bindings/Contents/LUA/API/Polycode/VertexBuffer.lua

@@ -42,3 +42,9 @@ function VertexBuffer:getVertexCount()
 	return retVal
 end
 
+
+
+function VertexBuffer:__delete()
+	Polycore.__ptr_lookup[self.__ptr] = nil
+	Polycore.delete_VertexBuffer(self.__ptr)
+end

+ 238 - 1
Bindings/Contents/LUA/API/defaults.lua

@@ -2,6 +2,8 @@
 for k,v in pairs(math) do _G[k]=v end for k,v in pairs(table) do _G[k]=v end
 _G["count"]=_G["getn"]
 
+_G["print"] = _G["debugPrint"]
+
 Polycore.__ptr_lookup = {}
 
 Services = {}
@@ -36,9 +38,244 @@ Services.SoundManager.__ptr = Polycore.CoreServices_getSoundManager(Polycore.Cor
 Services.FontManager = FontManager("__skip_ptr__")
 Services.FontManager.__ptr = Polycore.CoreServices_getFontManager(Polycore.CoreServices_getInstance())
 
-
+function delete(c)
+	c:__delete()
+end
 
 
 function Update(e)
 end
 
+KEY_UNKNOWN= 0
+KEY_FIRST= 0
+KEY_BACKSPACE= 8
+KEY_TAB= 9
+KEY_CLEAR= 12
+KEY_RETURN= 13
+KEY_PAUSE= 19
+KEY_ESCAPE= 27
+KEY_SPACE= 32
+KEY_EXCLAIM= 33
+KEY_QUOTEDBL= 34
+KEY_HASH= 35
+KEY_DOLLAR= 36
+KEY_AMPERSAND= 38
+KEY_QUOTE= 39
+KEY_LEFTPAREN= 40
+KEY_RIGHTPAREN= 41
+KEY_ASTERISK= 42
+KEY_PLUS= 43
+KEY_COMMA= 44
+KEY_MINUS= 45
+KEY_PERIOD= 46
+KEY_SLASH= 47
+KEY_0= 48
+KEY_1= 49
+KEY_2= 50
+KEY_3= 51
+KEY_4= 52
+KEY_5= 53
+KEY_6= 54
+KEY_7= 55
+KEY_8= 56
+KEY_9= 57
+KEY_COLON= 58
+KEY_SEMICOLON= 59
+KEY_LESS= 60
+KEY_EQUALS= 61
+KEY_GREATER= 62
+KEY_QUESTION= 63
+KEY_AT= 64
+KEY_LEFTBRACKET= 91
+KEY_BACKSLASH= 92
+KEY_RIGHTBRACKET= 93
+KEY_CARET= 94
+KEY_UNDERSCORE= 95
+KEY_BACKQUOTE= 96
+KEY_a= 97
+KEY_b= 98
+KEY_c= 99
+KEY_d= 100
+KEY_e= 101
+KEY_f= 102
+KEY_g= 103
+KEY_h= 104
+KEY_i= 105
+KEY_j= 106
+KEY_k= 107
+KEY_l= 108
+KEY_m= 109
+KEY_n= 110
+KEY_o= 111
+KEY_p= 112
+KEY_q= 113
+KEY_r= 114
+KEY_s= 115
+KEY_t= 116
+KEY_u= 117
+KEY_v= 118
+KEY_w= 119
+KEY_x= 120
+KEY_y= 121
+KEY_z= 122
+KEY_DELETE= 127
+KEY_WORLD_0= 160
+KEY_WORLD_1= 161
+KEY_WORLD_2= 162
+KEY_WORLD_3= 163
+KEY_WORLD_4= 164
+KEY_WORLD_5= 165
+KEY_WORLD_6= 166
+KEY_WORLD_7= 167
+KEY_WORLD_8= 168
+KEY_WORLD_9= 169
+KEY_WORLD_10= 170
+KEY_WORLD_11= 171
+KEY_WORLD_12= 172
+KEY_WORLD_13= 173
+KEY_WORLD_14= 174
+KEY_WORLD_15= 175
+KEY_WORLD_16= 176
+KEY_WORLD_17= 177
+KEY_WORLD_18= 178
+KEY_WORLD_19= 179
+KEY_WORLD_20= 180
+KEY_WORLD_21= 181
+KEY_WORLD_22= 182
+KEY_WORLD_23= 183
+KEY_WORLD_24= 184
+KEY_WORLD_25= 185
+KEY_WORLD_26= 186
+KEY_WORLD_27= 187
+KEY_WORLD_28= 188
+KEY_WORLD_29= 189
+KEY_WORLD_30= 190
+KEY_WORLD_31= 191
+KEY_WORLD_32= 192
+KEY_WORLD_33= 193
+KEY_WORLD_34= 194
+KEY_WORLD_35= 195
+KEY_WORLD_36= 196
+KEY_WORLD_37= 197
+KEY_WORLD_38= 198
+KEY_WORLD_39= 199
+KEY_WORLD_40= 200
+KEY_WORLD_41= 201
+KEY_WORLD_42= 202
+KEY_WORLD_43= 203
+KEY_WORLD_44= 204
+KEY_WORLD_45= 205
+KEY_WORLD_46= 206
+KEY_WORLD_47= 207
+KEY_WORLD_48= 208
+KEY_WORLD_49= 209
+KEY_WORLD_50= 210
+KEY_WORLD_51= 211
+KEY_WORLD_52= 212
+KEY_WORLD_53= 213
+KEY_WORLD_54= 214
+KEY_WORLD_55= 215
+KEY_WORLD_56= 216
+KEY_WORLD_57= 217
+KEY_WORLD_58= 218
+KEY_WORLD_59= 219
+KEY_WORLD_60= 220
+KEY_WORLD_61= 221
+KEY_WORLD_62= 222
+KEY_WORLD_63= 223
+KEY_WORLD_64= 224
+KEY_WORLD_65= 225
+KEY_WORLD_66= 226
+KEY_WORLD_67= 227
+KEY_WORLD_68= 228
+KEY_WORLD_69= 229
+KEY_WORLD_70= 230
+KEY_WORLD_71= 231
+KEY_WORLD_72= 232
+KEY_WORLD_73= 233
+KEY_WORLD_74= 234
+KEY_WORLD_75= 235
+KEY_WORLD_76= 236
+KEY_WORLD_77= 237
+KEY_WORLD_78= 238
+KEY_WORLD_79= 239
+KEY_WORLD_80= 240
+KEY_WORLD_81= 241
+KEY_WORLD_82= 242
+KEY_WORLD_83= 243
+KEY_WORLD_84= 244
+KEY_WORLD_85= 245
+KEY_WORLD_86= 246
+KEY_WORLD_87= 247
+KEY_WORLD_88= 248
+KEY_WORLD_89= 249
+KEY_WORLD_90= 250
+KEY_WORLD_91= 251
+KEY_WORLD_92= 252
+KEY_WORLD_93= 253
+KEY_WORLD_94= 254
+KEY_WORLD_95= 255
+KEY_KP0= 256
+KEY_KP1= 257
+KEY_KP2= 258
+KEY_KP3= 259
+KEY_KP4= 260
+KEY_KP5= 261
+KEY_KP6= 262
+KEY_KP7= 263
+KEY_KP8= 264
+KEY_KP9= 265
+KEY_KP_PERIOD= 266
+KEY_KP_DIVIDE= 267
+KEY_KP_MULTIPLY= 268
+KEY_KP_MINUS= 269
+KEY_KP_PLUS= 270
+KEY_KP_ENTER= 271
+KEY_KP_EQUALS= 272
+KEY_UP= 273
+KEY_DOWN= 274
+KEY_RIGHT= 275
+KEY_LEFT= 276
+KEY_INSERT= 277
+KEY_HOME= 278
+KEY_END= 279
+KEY_PAGEUP= 280
+KEY_PAGEDOWN= 281
+KEY_F1= 282
+KEY_F2= 283
+KEY_F3= 284
+KEY_F4= 285
+KEY_F5= 286
+KEY_F6= 287
+KEY_F7= 288
+KEY_F8= 289
+KEY_F9= 290
+KEY_F10= 291
+KEY_F11= 292
+KEY_F12= 293
+KEY_F13= 294
+KEY_F14= 295
+KEY_F15= 296
+KEY_NUMLOCK= 300
+KEY_CAPSLOCK= 301
+KEY_SCROLLOCK= 302
+KEY_RSHIFT= 303
+KEY_LSHIFT= 304
+KEY_RCTRL= 305
+KEY_LCTRL= 306
+KEY_RALT= 307
+KEY_LALT= 308
+KEY_RMETA= 309
+KEY_LMETA= 310
+KEY_LSUPER= 311
+KEY_RSUPER= 312
+KEY_MODE= 313
+KEY_COMPOSE= 314
+KEY_HELP= 315
+KEY_PRINT= 316
+KEY_SYSREQ= 317
+KEY_BREAK= 318
+KEY_MENU= 319
+KEY_POWER= 320
+KEY_EURO= 321
+KEY_UNDO= 322

Разница между файлами не показана из-за своего большого размера
+ 367 - 62
Bindings/Contents/LUA/Include/PolycodeLUAWrappers.h


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

@@ -6,6 +6,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"OSFILE_set_fileType", Polycore_OSFILE_set_fileType},
 		{"OSFILE", Polycore_OSFILE},
 		{"OSFILE_debugDump", Polycore_OSFILE_debugDump},
+		{"delete_OSFILE", Polycore_delete_OSFILE},
 		{"OSFileEntry_get_name", Polycore_OSFileEntry_get_name},
 		{"OSFileEntry_get_extension", Polycore_OSFileEntry_get_extension},
 		{"OSFileEntry_get_nameWithoutExtension", Polycore_OSFileEntry_get_nameWithoutExtension},
@@ -19,6 +20,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"OSFileEntry_set_fullPath", Polycore_OSFileEntry_set_fullPath},
 		{"OSFileEntry_set_type", Polycore_OSFileEntry_set_type},
 		{"OSFileEntry", Polycore_OSFileEntry},
+		{"delete_OSFileEntry", Polycore_delete_OSFileEntry},
 		{"OSBasics_open", Polycore_OSBasics_open},
 		{"OSBasics_close", Polycore_OSBasics_close},
 		{"OSBasics_read", Polycore_OSBasics_read},
@@ -28,6 +30,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"OSBasics_isFolder", Polycore_OSBasics_isFolder},
 		{"OSBasics_createFolder", Polycore_OSBasics_createFolder},
 		{"OSBasics_removeItem", Polycore_OSBasics_removeItem},
+		{"delete_OSBasics", Polycore_delete_OSBasics},
 		{"BezierCurve", Polycore_BezierCurve},
 		{"BezierCurve_getControlPoint", Polycore_BezierCurve_getControlPoint},
 		{"BezierCurve_getNumControlPoints", Polycore_BezierCurve_getNumControlPoints},
@@ -40,6 +43,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"BezierCurve_getPointAt", Polycore_BezierCurve_getPointAt},
 		{"BezierCurve_getPointBetween", Polycore_BezierCurve_getPointBetween},
 		{"BezierCurve_rebuildBuffers", Polycore_BezierCurve_rebuildBuffers},
+		{"delete_BezierCurve", Polycore_delete_BezierCurve},
 		{"Bone_get_parentBoneId", Polycore_Bone_get_parentBoneId},
 		{"Bone_set_parentBoneId", Polycore_Bone_set_parentBoneId},
 		{"Bone", Polycore_Bone},
@@ -61,6 +65,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Bone_setBaseMatrix", Polycore_Bone_setBaseMatrix},
 		{"Bone_getBaseMatrix", Polycore_Bone_getBaseMatrix},
 		{"Bone_getFullBaseMatrix", Polycore_Bone_getFullBaseMatrix},
+		{"delete_Bone", Polycore_delete_Bone},
 		{"Camera", Polycore_Camera},
 		{"Camera_buildFrustrumPlanes", Polycore_Camera_buildFrustrumPlanes},
 		{"Camera_isSphereInFrustrum", Polycore_Camera_isSphereInFrustrum},
@@ -78,6 +83,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Camera_getExposureLevel", Polycore_Camera_getExposureLevel},
 		{"Camera_createPostFilter", Polycore_Camera_createPostFilter},
 		{"Camera_setPostFilter", Polycore_Camera_setPostFilter},
+		{"delete_Camera", Polycore_delete_Camera},
 		{"Color_get_r", Polycore_Color_get_r},
 		{"Color_get_g", Polycore_Color_get_g},
 		{"Color_get_b", Polycore_Color_get_b},
@@ -96,6 +102,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Color_Random", Polycore_Color_Random},
 		{"Color_getBrightness", Polycore_Color_getBrightness},
 		{"Color_getUint", Polycore_Color_getUint},
+		{"delete_Color", Polycore_delete_Color},
 		{"Config", Polycore_Config},
 		{"Config_loadConfig", Polycore_Config_loadConfig},
 		{"Config_saveConfig", Polycore_Config_saveConfig},
@@ -104,6 +111,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Config_setNumericValue", Polycore_Config_setNumericValue},
 		{"Config_getNumericValue", Polycore_Config_getNumericValue},
 		{"Config_getStringValue", Polycore_Config_getStringValue},
+		{"delete_Config", Polycore_delete_Config},
 		{"Core_Update", Polycore_Core_Update},
 		{"Core_enableMouse", Polycore_Core_enableMouse},
 		{"Core_setCursor", Polycore_Core_setCursor},
@@ -136,6 +144,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Core_getTicksFloat", Polycore_Core_getTicksFloat},
 		{"Core_setUserPointer", Polycore_Core_setUserPointer},
 		{"Core_getUserPointer", Polycore_Core_getUserPointer},
+		{"delete_Core", Polycore_delete_Core},
 		{"CoreInput", Polycore_CoreInput},
 		{"CoreInput_getMousePosition", Polycore_CoreInput_getMousePosition},
 		{"CoreInput_getKeyState", Polycore_CoreInput_getKeyState},
@@ -148,6 +157,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"CoreInput_setKeyState", Polycore_CoreInput_setKeyState},
 		{"CoreInput_setDeltaPosition", Polycore_CoreInput_setDeltaPosition},
 		{"CoreInput_createEvent", Polycore_CoreInput_createEvent},
+		{"delete_CoreInput", Polycore_delete_CoreInput},
 		{"CoreServices_getInstance", Polycore_CoreServices_getInstance},
 		{"CoreServices_getRenderMutex", Polycore_CoreServices_getRenderMutex},
 		{"CoreServices_setRenderer", Polycore_CoreServices_setRenderer},
@@ -165,13 +175,16 @@ int luaopen_Polycode(lua_State *L) {
 		{"CoreServices_getSoundManager", Polycore_CoreServices_getSoundManager},
 		{"CoreServices_getFontManager", Polycore_CoreServices_getFontManager},
 		{"CoreServices_getConfig", Polycore_CoreServices_getConfig},
+		{"delete_CoreServices", Polycore_delete_CoreServices},
 		{"Cubemap", Polycore_Cubemap},
+		{"delete_Cubemap", Polycore_delete_Cubemap},
 		{"Data", Polycore_Data},
 		{"Data_loadFromFile", Polycore_Data_loadFromFile},
 		{"Data_getAsString", Polycore_Data_getAsString},
 		{"Data_setFromString", Polycore_Data_setFromString},
 		{"Data_saveToFile", Polycore_Data_saveToFile},
 		{"Data_getData", Polycore_Data_getData},
+		{"delete_Data", Polycore_delete_Data},
 		{"Entity_get_custEntityType", Polycore_Entity_get_custEntityType},
 		{"Entity_get_billboardMode", Polycore_Entity_get_billboardMode},
 		{"Entity_get_billboardRoll", Polycore_Entity_get_billboardRoll},
@@ -268,12 +281,14 @@ int luaopen_Polycode(lua_State *L) {
 		{"Entity_buildPositionMatrix", Polycore_Entity_buildPositionMatrix},
 		{"Entity_adjustMatrixForChildren", Polycore_Entity_adjustMatrixForChildren},
 		{"Entity_setRenderer", Polycore_Entity_setRenderer},
+		{"delete_Entity", Polycore_delete_Entity},
 		{"Event", Polycore_Event},
 		{"Event_getEventCode", Polycore_Event_getEventCode},
 		{"Event_getDispatcher", Polycore_Event_getDispatcher},
 		{"Event_setEventCode", Polycore_Event_setEventCode},
 		{"Event_setDispatcher", Polycore_Event_setDispatcher},
 		{"Event_getEventType", Polycore_Event_getEventType},
+		{"delete_Event", Polycore_delete_Event},
 		{"EventDispatcher", Polycore_EventDispatcher},
 		{"EventDispatcher_removeAllHandlers", Polycore_EventDispatcher_removeAllHandlers},
 		{"EventDispatcher_removeAllHandlersForListener", Polycore_EventDispatcher_removeAllHandlersForListener},
@@ -282,22 +297,29 @@ int luaopen_Polycode(lua_State *L) {
 		{"EventDispatcher___dispatchEvent", Polycore_EventDispatcher___dispatchEvent},
 		{"EventDispatcher_dispatchEvent", Polycore_EventDispatcher_dispatchEvent},
 		{"EventDispatcher_dispatchEventNoDelete", Polycore_EventDispatcher_dispatchEventNoDelete},
+		{"delete_EventDispatcher", Polycore_delete_EventDispatcher},
 		{"EventHandler", Polycore_EventHandler},
+		{"delete_EventHandler", Polycore_delete_EventHandler},
 		{"FixedShader", Polycore_FixedShader},
 		{"FixedShader_createBinding", Polycore_FixedShader_createBinding},
+		{"delete_FixedShader", Polycore_delete_FixedShader},
 		{"FixedShaderBinding", Polycore_FixedShaderBinding},
 		{"FixedShaderBinding_addTexture", Polycore_FixedShaderBinding_addTexture},
 		{"FixedShaderBinding_addCubemap", Polycore_FixedShaderBinding_addCubemap},
 		{"FixedShaderBinding_addParam", Polycore_FixedShaderBinding_addParam},
 		{"FixedShaderBinding_getDiffuseTexture", Polycore_FixedShaderBinding_getDiffuseTexture},
+		{"delete_FixedShaderBinding", Polycore_delete_FixedShaderBinding},
 		{"Font", Polycore_Font},
 		{"Font_getFace", Polycore_Font_getFace},
 		{"Font_isValid", Polycore_Font_isValid},
+		{"delete_Font", Polycore_delete_Font},
 		{"FontManager", Polycore_FontManager},
 		{"FontManager_registerFont", Polycore_FontManager_registerFont},
 		{"FontManager_getFontByName", Polycore_FontManager_getFontByName},
+		{"delete_FontManager", Polycore_delete_FontManager},
 		{"OpenGLCubemap", Polycore_OpenGLCubemap},
 		{"OpenGLCubemap_getTextureID", Polycore_OpenGLCubemap_getTextureID},
+		{"delete_OpenGLCubemap", Polycore_delete_OpenGLCubemap},
 		{"Image", Polycore_Image},
 		{"Image_loadImage", Polycore_Image_loadImage},
 		{"Image_loadPNG", Polycore_Image_loadPNG},
@@ -326,21 +348,28 @@ int luaopen_Polycode(lua_State *L) {
 		{"Image_getWidth", Polycore_Image_getWidth},
 		{"Image_getHeight", Polycore_Image_getHeight},
 		{"Image_getPixels", Polycore_Image_getPixels},
+		{"delete_Image", Polycore_delete_Image},
 		{"InputEvent_get_mouseButton", Polycore_InputEvent_get_mouseButton},
 		{"InputEvent_get_timestamp", Polycore_InputEvent_get_timestamp},
 		{"InputEvent_set_mouseButton", Polycore_InputEvent_set_mouseButton},
 		{"InputEvent_set_timestamp", Polycore_InputEvent_set_timestamp},
 		{"InputEvent", Polycore_InputEvent},
+		{"InputEvent_getMousePosition", Polycore_InputEvent_getMousePosition},
+		{"InputEvent_getKey", Polycore_InputEvent_getKey},
+		{"InputEvent_getMouseButton", Polycore_InputEvent_getMouseButton},
 		{"InputEvent_keyCode", Polycore_InputEvent_keyCode},
+		{"delete_InputEvent", Polycore_delete_InputEvent},
 		{"Label", Polycore_Label},
 		{"Label_setText", Polycore_Label_setText},
 		{"Label_getText", Polycore_Label_getText},
 		{"Label_getTextWidth", Polycore_Label_getTextWidth},
 		{"Label_getTextHeight", Polycore_Label_getTextHeight},
 		{"Label_getFont", Polycore_Label_getFont},
+		{"delete_Label", Polycore_delete_Label},
 		{"Logger", Polycore_Logger},
 		{"Logger_log", Polycore_Logger_log},
 		{"Logger_logw", Polycore_Logger_logw},
+		{"delete_Logger", Polycore_delete_Logger},
 		{"Material", Polycore_Material},
 		{"Material_addShader", Polycore_Material_addShader},
 		{"Material_getNumShaders", Polycore_Material_getNumShaders},
@@ -351,6 +380,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Material_getShader", Polycore_Material_getShader},
 		{"Material_getShaderBinding", Polycore_Material_getShaderBinding},
 		{"Material_loadMaterial", Polycore_Material_loadMaterial},
+		{"delete_Material", Polycore_delete_Material},
 		{"MaterialManager", Polycore_MaterialManager},
 		{"MaterialManager_Update", Polycore_MaterialManager_Update},
 		{"MaterialManager_createFramebufferTexture", Polycore_MaterialManager_createFramebufferTexture},
@@ -369,6 +399,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"MaterialManager_materialFromXMLNode", Polycore_MaterialManager_materialFromXMLNode},
 		{"MaterialManager_setShaderFromXMLNode", Polycore_MaterialManager_setShaderFromXMLNode},
 		{"MaterialManager_createShaderFromXMLNode", Polycore_MaterialManager_createShaderFromXMLNode},
+		{"delete_MaterialManager", Polycore_delete_MaterialManager},
 		{"Matrix4", Polycore_Matrix4},
 		{"Matrix4_identity", Polycore_Matrix4_identity},
 		{"Matrix4_rotateVector", Polycore_Matrix4_rotateVector},
@@ -378,6 +409,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Matrix4_getEulerAngles", Polycore_Matrix4_getEulerAngles},
 		{"Matrix4_inverse", Polycore_Matrix4_inverse},
 		{"Matrix4_inverseAffine", Polycore_Matrix4_inverseAffine},
+		{"delete_Matrix4", Polycore_delete_Matrix4},
 		{"Mesh_get_useVertexColors", Polycore_Mesh_get_useVertexColors},
 		{"Mesh_set_useVertexColors", Polycore_Mesh_set_useVertexColors},
 		{"Mesh", Polycore_Mesh},
@@ -400,14 +432,17 @@ int luaopen_Polycode(lua_State *L) {
 		{"Mesh_setMeshType", Polycore_Mesh_setMeshType},
 		{"Mesh_calculateBBox", Polycore_Mesh_calculateBBox},
 		{"Mesh_hasVertexBuffer", Polycore_Mesh_hasVertexBuffer},
+		{"delete_Mesh", Polycore_delete_Mesh},
 		{"VertexBuffer_get_verticesPerFace", Polycore_VertexBuffer_get_verticesPerFace},
 		{"VertexBuffer_get_meshType", Polycore_VertexBuffer_get_meshType},
 		{"VertexBuffer_set_verticesPerFace", Polycore_VertexBuffer_set_verticesPerFace},
 		{"VertexBuffer_set_meshType", Polycore_VertexBuffer_set_meshType},
 		{"VertexBuffer", Polycore_VertexBuffer},
 		{"VertexBuffer_getVertexCount", Polycore_VertexBuffer_getVertexCount},
+		{"delete_VertexBuffer", Polycore_delete_VertexBuffer},
 		{"PolycodeModule", Polycore_PolycodeModule},
 		{"PolycodeModule_getType", Polycore_PolycodeModule_getType},
+		{"delete_PolycodeModule", Polycore_delete_PolycodeModule},
 		{"ObjectEntry_get_type", Polycore_ObjectEntry_get_type},
 		{"ObjectEntry_get_name", Polycore_ObjectEntry_get_name},
 		{"ObjectEntry_get_NumberVal", Polycore_ObjectEntry_get_NumberVal},
@@ -424,6 +459,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"ObjectEntry_set_length", Polycore_ObjectEntry_set_length},
 		{"ObjectEntry", Polycore_ObjectEntry},
 		{"ObjectEntry_addChild", Polycore_ObjectEntry_addChild},
+		{"delete_ObjectEntry", Polycore_delete_ObjectEntry},
 		{"Particle_get_life", Polycore_Particle_get_life},
 		{"Particle_get_lifespan", Polycore_Particle_get_lifespan},
 		{"Particle_get_brightnessDeviation", Polycore_Particle_get_brightnessDeviation},
@@ -440,14 +476,17 @@ int luaopen_Polycode(lua_State *L) {
 		{"Particle_Reset", Polycore_Particle_Reset},
 		{"Particle_createSceneParticle", Polycore_Particle_createSceneParticle},
 		{"Particle_createScreenParticle", Polycore_Particle_createScreenParticle},
+		{"delete_Particle", Polycore_delete_Particle},
 		{"ScreenParticleEmitter", Polycore_ScreenParticleEmitter},
 		{"ScreenParticleEmitter_addParticleBody", Polycore_ScreenParticleEmitter_addParticleBody},
 		{"ScreenParticleEmitter_getBaseMatrix", Polycore_ScreenParticleEmitter_getBaseMatrix},
 		{"ScreenParticleEmitter_Update", Polycore_ScreenParticleEmitter_Update},
+		{"delete_ScreenParticleEmitter", Polycore_delete_ScreenParticleEmitter},
 		{"SceneParticleEmitter", Polycore_SceneParticleEmitter},
 		{"SceneParticleEmitter_addParticleBody", Polycore_SceneParticleEmitter_addParticleBody},
 		{"SceneParticleEmitter_getBaseMatrix", Polycore_SceneParticleEmitter_getBaseMatrix},
 		{"SceneParticleEmitter_Update", Polycore_SceneParticleEmitter_Update},
+		{"delete_SceneParticleEmitter", Polycore_delete_SceneParticleEmitter},
 		{"ParticleEmitter_get_particleSpeedMod", Polycore_ParticleEmitter_get_particleSpeedMod},
 		{"ParticleEmitter_get_brightnessDeviation", Polycore_ParticleEmitter_get_brightnessDeviation},
 		{"ParticleEmitter_get_lifespan", Polycore_ParticleEmitter_get_lifespan},
@@ -481,8 +520,10 @@ int luaopen_Polycode(lua_State *L) {
 		{"ParticleEmitter_addParticleBody", Polycore_ParticleEmitter_addParticleBody},
 		{"ParticleEmitter_getBaseMatrix", Polycore_ParticleEmitter_getBaseMatrix},
 		{"ParticleEmitter_updateEmitter", Polycore_ParticleEmitter_updateEmitter},
+		{"delete_ParticleEmitter", Polycore_delete_ParticleEmitter},
 		{"Perlin", Polycore_Perlin},
 		{"Perlin_Get", Polycore_Perlin_Get},
+		{"delete_Perlin", Polycore_delete_Perlin},
 		{"Polygon_get_useVertexNormals", Polycore_Polygon_get_useVertexNormals},
 		{"Polygon_set_useVertexNormals", Polycore_Polygon_set_useVertexNormals},
 		{"Polygon", Polycore_Polygon},
@@ -495,6 +536,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Polygon_getBounds2D", Polycore_Polygon_getBounds2D},
 		{"Polygon_setNormal", Polycore_Polygon_setNormal},
 		{"Polygon_flipUVY", Polycore_Polygon_flipUVY},
+		{"delete_Polygon", Polycore_delete_Polygon},
 		{"Quaternion_get_x", Polycore_Quaternion_get_x},
 		{"Quaternion_get_y", Polycore_Quaternion_get_y},
 		{"Quaternion_get_z", Polycore_Quaternion_get_z},
@@ -523,10 +565,12 @@ int luaopen_Polycode(lua_State *L) {
 		{"Quaternion_ToAngleAxis", Polycore_Quaternion_ToAngleAxis},
 		{"Quaternion_createFromAxisAngle", Polycore_Quaternion_createFromAxisAngle},
 		{"Quaternion_createMatrix", Polycore_Quaternion_createMatrix},
+		{"delete_Quaternion", Polycore_delete_Quaternion},
 		{"QuaternionCurve", Polycore_QuaternionCurve},
 		{"QuaternionCurve_interpolate", Polycore_QuaternionCurve_interpolate},
 		{"QuaternionCurve_generatePointsFromCurves", Polycore_QuaternionCurve_generatePointsFromCurves},
 		{"QuaternionCurve_recalcTangents", Polycore_QuaternionCurve_recalcTangents},
+		{"delete_QuaternionCurve", Polycore_delete_QuaternionCurve},
 		{"Rectangle_get_x", Polycore_Rectangle_get_x},
 		{"Rectangle_get_y", Polycore_Rectangle_get_y},
 		{"Rectangle_get_w", Polycore_Rectangle_get_w},
@@ -537,6 +581,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Rectangle_set_h", Polycore_Rectangle_set_h},
 		{"Rectangle", Polycore_Rectangle},
 		{"Rectangle_setRect", Polycore_Rectangle_setRect},
+		{"delete_Rectangle", Polycore_delete_Rectangle},
 		{"Renderer_get_exposureLevel", Polycore_Renderer_get_exposureLevel},
 		{"Renderer_set_exposureLevel", Polycore_Renderer_set_exposureLevel},
 		{"Renderer_Resize", Polycore_Renderer_Resize},
@@ -618,12 +663,14 @@ int luaopen_Polycode(lua_State *L) {
 		{"Renderer_getNumAreaLights", Polycore_Renderer_getNumAreaLights},
 		{"Renderer_getNumSpotLights", Polycore_Renderer_getNumSpotLights},
 		{"Renderer_getNumLights", Polycore_Renderer_getNumLights},
+		{"delete_Renderer", Polycore_delete_Renderer},
 		{"Resource", Polycore_Resource},
 		{"Resource_getResourceName", Polycore_Resource_getResourceName},
 		{"Resource_getResourceType", Polycore_Resource_getResourceType},
 		{"Resource_setResourceName", Polycore_Resource_setResourceName},
 		{"Resource_setResourcePath", Polycore_Resource_setResourcePath},
 		{"Resource_getResourcePath", Polycore_Resource_getResourcePath},
+		{"delete_Resource", Polycore_delete_Resource},
 		{"ResourceManager", Polycore_ResourceManager},
 		{"ResourceManager_addResource", Polycore_ResourceManager_addResource},
 		{"ResourceManager_addDirResource", Polycore_ResourceManager_addDirResource},
@@ -637,6 +684,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"ResourceManager_parseOthers", Polycore_ResourceManager_parseOthers},
 		{"ResourceManager_getResource", Polycore_ResourceManager_getResource},
 		{"ResourceManager_addShaderModule", Polycore_ResourceManager_addShaderModule},
+		{"delete_ResourceManager", Polycore_delete_ResourceManager},
 		{"Scene_get_useClearColor", Polycore_Scene_get_useClearColor},
 		{"Scene_get_enabled", Polycore_Scene_get_enabled},
 		{"Scene_set_useClearColor", Polycore_Scene_set_useClearColor},
@@ -672,13 +720,16 @@ int luaopen_Polycode(lua_State *L) {
 		{"Scene_getNumLights", Polycore_Scene_getNumLights},
 		{"Scene_getLight", Polycore_Scene_getLight},
 		{"Scene_getCustomEntityByType", Polycore_Scene_getCustomEntityByType},
+		{"delete_Scene", Polycore_delete_Scene},
 		{"SceneEntity", Polycore_SceneEntity},
 		{"SceneEntity_testMouseCollision", Polycore_SceneEntity_testMouseCollision},
+		{"delete_SceneEntity", Polycore_delete_SceneEntity},
 		{"SceneLabel", Polycore_SceneLabel},
 		{"SceneLabel_testMouseCollision", Polycore_SceneLabel_testMouseCollision},
 		{"SceneLabel_setText", Polycore_SceneLabel_setText},
 		{"SceneLabel_getLabel", Polycore_SceneLabel_getLabel},
 		{"SceneLabel_Render", Polycore_SceneLabel_Render},
+		{"delete_SceneLabel", Polycore_delete_SceneLabel},
 		{"SceneLight", Polycore_SceneLight},
 		{"SceneLight_getIntensity", Polycore_SceneLight_getIntensity},
 		{"SceneLight_getDistance", Polycore_SceneLight_getDistance},
@@ -692,14 +743,17 @@ int luaopen_Polycode(lua_State *L) {
 		{"SceneLight_setShadowMapFOV", Polycore_SceneLight_setShadowMapFOV},
 		{"SceneLight_areShadowsEnabled", Polycore_SceneLight_areShadowsEnabled},
 		{"SceneLight_getLightType", Polycore_SceneLight_getLightType},
+		{"delete_SceneLight", Polycore_delete_SceneLight},
 		{"SceneLine", Polycore_SceneLine},
 		{"SceneLine_Render", Polycore_SceneLine_Render},
+		{"delete_SceneLine", Polycore_delete_SceneLine},
 		{"SceneManager", Polycore_SceneManager},
 		{"SceneManager_addScene", Polycore_SceneManager_addScene},
 		{"SceneManager_Update", Polycore_SceneManager_Update},
 		{"SceneManager_UpdateVirtual", Polycore_SceneManager_UpdateVirtual},
 		{"SceneManager_removeScene", Polycore_SceneManager_removeScene},
 		{"SceneManager_registerRenderTexture", Polycore_SceneManager_registerRenderTexture},
+		{"delete_SceneManager", Polycore_delete_SceneManager},
 		{"SceneMesh_get_showVertexNormals", Polycore_SceneMesh_get_showVertexNormals},
 		{"SceneMesh_set_showVertexNormals", Polycore_SceneMesh_set_showVertexNormals},
 		{"SceneMesh", Polycore_SceneMesh},
@@ -718,12 +772,15 @@ int luaopen_Polycode(lua_State *L) {
 		{"SceneMesh_getSkeleton", Polycore_SceneMesh_getSkeleton},
 		{"SceneMesh_renderMeshLocally", Polycore_SceneMesh_renderMeshLocally},
 		{"SceneMesh_cacheToVertexBuffer", Polycore_SceneMesh_cacheToVertexBuffer},
+		{"delete_SceneMesh", Polycore_delete_SceneMesh},
 		{"ScenePrimitive", Polycore_ScenePrimitive},
+		{"delete_ScenePrimitive", Polycore_delete_ScenePrimitive},
 		{"SceneRenderTexture", Polycore_SceneRenderTexture},
 		{"SceneRenderTexture_drawScreen", Polycore_SceneRenderTexture_drawScreen},
 		{"SceneRenderTexture_getTargetTexture", Polycore_SceneRenderTexture_getTargetTexture},
 		{"SceneRenderTexture_getTargetScene", Polycore_SceneRenderTexture_getTargetScene},
 		{"SceneRenderTexture_getTargetCamera", Polycore_SceneRenderTexture_getTargetCamera},
+		{"delete_SceneRenderTexture", Polycore_delete_SceneRenderTexture},
 		{"Screen_get_enabled", Polycore_Screen_get_enabled},
 		{"Screen_set_enabled", Polycore_Screen_set_enabled},
 		{"Screen", Polycore_Screen},
@@ -747,7 +804,9 @@ int luaopen_Polycode(lua_State *L) {
 		{"Screen_usesNormalizedCoordinates", Polycore_Screen_usesNormalizedCoordinates},
 		{"Screen_getYCoordinateSize", Polycore_Screen_getYCoordinateSize},
 		{"Screen_getRootEntity", Polycore_Screen_getRootEntity},
+		{"delete_Screen", Polycore_delete_Screen},
 		{"ScreenCurve", Polycore_ScreenCurve},
+		{"delete_ScreenCurve", Polycore_delete_ScreenCurve},
 		{"ScreenEntity_get_hasFocus", Polycore_ScreenEntity_get_hasFocus},
 		{"ScreenEntity_get_blockMouseInput", Polycore_ScreenEntity_get_blockMouseInput},
 		{"ScreenEntity_get_zindex", Polycore_ScreenEntity_get_zindex},
@@ -794,30 +853,37 @@ int luaopen_Polycode(lua_State *L) {
 		{"ScreenEntity_focusNextChild", Polycore_ScreenEntity_focusNextChild},
 		{"ScreenEntity_getPosition2D", Polycore_ScreenEntity_getPosition2D},
 		{"ScreenEntity_isFocusable", Polycore_ScreenEntity_isFocusable},
+		{"delete_ScreenEntity", Polycore_delete_ScreenEntity},
 		{"ScreenEvent", Polycore_ScreenEvent},
+		{"delete_ScreenEvent", Polycore_delete_ScreenEvent},
 		{"ScreenImage", Polycore_ScreenImage},
 		{"ScreenImage_setImageCoordinates", Polycore_ScreenImage_setImageCoordinates},
 		{"ScreenImage_getImageWidth", Polycore_ScreenImage_getImageWidth},
 		{"ScreenImage_getImageHeight", Polycore_ScreenImage_getImageHeight},
+		{"delete_ScreenImage", Polycore_delete_ScreenImage},
 		{"ScreenLabel", Polycore_ScreenLabel},
 		{"ScreenLabel_addDropShadow", Polycore_ScreenLabel_addDropShadow},
 		{"ScreenLabel_setText", Polycore_ScreenLabel_setText},
 		{"ScreenLabel_getText", Polycore_ScreenLabel_getText},
 		{"ScreenLabel_getLabel", Polycore_ScreenLabel_getLabel},
+		{"delete_ScreenLabel", Polycore_delete_ScreenLabel},
 		{"ScreenLine", Polycore_ScreenLine},
 		{"ScreenLine_Update", Polycore_ScreenLine_Update},
 		{"ScreenLine_Render", Polycore_ScreenLine_Render},
 		{"ScreenLine_setLineWidth", Polycore_ScreenLine_setLineWidth},
+		{"delete_ScreenLine", Polycore_delete_ScreenLine},
 		{"ScreenManager", Polycore_ScreenManager},
 		{"ScreenManager_removeScreen", Polycore_ScreenManager_removeScreen},
 		{"ScreenManager_addScreen", Polycore_ScreenManager_addScreen},
 		{"ScreenManager_Update", Polycore_ScreenManager_Update},
+		{"delete_ScreenManager", Polycore_delete_ScreenManager},
 		{"ScreenMesh", Polycore_ScreenMesh},
 		{"ScreenMesh_Render", Polycore_ScreenMesh_Render},
 		{"ScreenMesh_getMesh", Polycore_ScreenMesh_getMesh},
 		{"ScreenMesh_getTexture", Polycore_ScreenMesh_getTexture},
 		{"ScreenMesh_loadTexture", Polycore_ScreenMesh_loadTexture},
 		{"ScreenMesh_setTexture", Polycore_ScreenMesh_setTexture},
+		{"delete_ScreenMesh", Polycore_delete_ScreenMesh},
 		{"ScreenShape_get_strokeEnabled", Polycore_ScreenShape_get_strokeEnabled},
 		{"ScreenShape_get_lineSmooth", Polycore_ScreenShape_get_lineSmooth},
 		{"ScreenShape_set_strokeEnabled", Polycore_ScreenShape_set_strokeEnabled},
@@ -830,14 +896,17 @@ int luaopen_Polycode(lua_State *L) {
 		{"ScreenShape_clearGradient", Polycore_ScreenShape_clearGradient},
 		{"ScreenShape_setShapeSize", Polycore_ScreenShape_setShapeSize},
 		{"ScreenShape_addShapePoint", Polycore_ScreenShape_addShapePoint},
+		{"delete_ScreenShape", Polycore_delete_ScreenShape},
 		{"ScreenSprite", Polycore_ScreenSprite},
 		{"ScreenSprite_addAnimation", Polycore_ScreenSprite_addAnimation},
 		{"ScreenSprite_playAnimation", Polycore_ScreenSprite_playAnimation},
 		{"ScreenSprite_Update", Polycore_ScreenSprite_Update},
+		{"delete_ScreenSprite", Polycore_delete_ScreenSprite},
 		{"Shader_getType", Polycore_Shader_getType},
 		{"Shader_setName", Polycore_Shader_setName},
 		{"Shader_getName", Polycore_Shader_getName},
 		{"Shader_createBinding", Polycore_Shader_createBinding},
+		{"delete_Shader", Polycore_delete_Shader},
 		{"ShaderBinding", Polycore_ShaderBinding},
 		{"ShaderBinding_clearTexture", Polycore_ShaderBinding_clearTexture},
 		{"ShaderBinding_addTexture", Polycore_ShaderBinding_addTexture},
@@ -853,6 +922,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"ShaderBinding_getInTargetBinding", Polycore_ShaderBinding_getInTargetBinding},
 		{"ShaderBinding_getNumOutTargetBindings", Polycore_ShaderBinding_getNumOutTargetBindings},
 		{"ShaderBinding_getOutTargetBinding", Polycore_ShaderBinding_getOutTargetBinding},
+		{"delete_ShaderBinding", Polycore_delete_ShaderBinding},
 		{"SkeletonAnimation", Polycore_SkeletonAnimation},
 		{"SkeletonAnimation_addBoneTrack", Polycore_SkeletonAnimation_addBoneTrack},
 		{"SkeletonAnimation_getName", Polycore_SkeletonAnimation_getName},
@@ -860,11 +930,13 @@ int luaopen_Polycode(lua_State *L) {
 		{"SkeletonAnimation_Stop", Polycore_SkeletonAnimation_Stop},
 		{"SkeletonAnimation_Update", Polycore_SkeletonAnimation_Update},
 		{"SkeletonAnimation_setSpeed", Polycore_SkeletonAnimation_setSpeed},
+		{"delete_SkeletonAnimation", Polycore_delete_SkeletonAnimation},
 		{"BoneTrack", Polycore_BoneTrack},
 		{"BoneTrack_Play", Polycore_BoneTrack_Play},
 		{"BoneTrack_Stop", Polycore_BoneTrack_Stop},
 		{"BoneTrack_Update", Polycore_BoneTrack_Update},
 		{"BoneTrack_setSpeed", Polycore_BoneTrack_setSpeed},
+		{"delete_BoneTrack", Polycore_delete_BoneTrack},
 		{"Skeleton", Polycore_Skeleton},
 		{"Skeleton_loadSkeleton", Polycore_Skeleton_loadSkeleton},
 		{"Skeleton_playAnimation", Polycore_Skeleton_playAnimation},
@@ -878,6 +950,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Skeleton_getNumBones", Polycore_Skeleton_getNumBones},
 		{"Skeleton_getBone", Polycore_Skeleton_getBone},
 		{"Skeleton_getCurrentAnimation", Polycore_Skeleton_getCurrentAnimation},
+		{"delete_Skeleton", Polycore_delete_Skeleton},
 		{"Sound", Polycore_Sound},
 		{"Sound_Play", Polycore_Sound_Play},
 		{"Sound_Stop", Polycore_Sound_Stop},
@@ -887,8 +960,10 @@ int luaopen_Polycode(lua_State *L) {
 		{"Sound_checkALError", Polycore_Sound_checkALError},
 		{"Sound_soundError", Polycore_Sound_soundError},
 		{"Sound_soundCheck", Polycore_Sound_soundCheck},
+		{"delete_Sound", Polycore_delete_Sound},
 		{"SoundManager", Polycore_SoundManager},
 		{"SoundManager_initAL", Polycore_SoundManager_initAL},
+		{"delete_SoundManager", Polycore_delete_SoundManager},
 		{"String", Polycore_String},
 		{"String_size", Polycore_String_size},
 		{"String_length", Polycore_String_length},
@@ -908,6 +983,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"String_getDataWithEncoding", Polycore_String_getDataWithEncoding},
 		{"String_getDataSizeWithEncoding", Polycore_String_getDataSizeWithEncoding},
 		{"String_setDataWithEncoding", Polycore_String_setDataWithEncoding},
+		{"delete_String", Polycore_delete_String},
 		{"Texture_get_scrollSpeedX", Polycore_Texture_get_scrollSpeedX},
 		{"Texture_get_scrollSpeedY", Polycore_Texture_get_scrollSpeedY},
 		{"Texture_get_clamp", Polycore_Texture_get_clamp},
@@ -925,6 +1001,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Texture_getTextureData", Polycore_Texture_getTextureData},
 		{"Texture_getWidth", Polycore_Texture_getWidth},
 		{"Texture_getHeight", Polycore_Texture_getHeight},
+		{"delete_Texture", Polycore_delete_Texture},
 		{"Timer", Polycore_Timer},
 		{"Timer_Pause", Polycore_Timer_Pause},
 		{"Timer_isPaused", Polycore_Timer_isPaused},
@@ -933,10 +1010,12 @@ int luaopen_Polycode(lua_State *L) {
 		{"Timer_Reset", Polycore_Timer_Reset},
 		{"Timer_hasElapsed", Polycore_Timer_hasElapsed},
 		{"Timer_getElapsedf", Polycore_Timer_getElapsedf},
+		{"delete_Timer", Polycore_delete_Timer},
 		{"TimerManager", Polycore_TimerManager},
 		{"TimerManager_removeTimer", Polycore_TimerManager_removeTimer},
 		{"TimerManager_addTimer", Polycore_TimerManager_addTimer},
 		{"TimerManager_Update", Polycore_TimerManager_Update},
+		{"delete_TimerManager", Polycore_delete_TimerManager},
 		{"Tween_get_repeat", Polycore_Tween_get_repeat},
 		{"Tween_set_repeat", Polycore_Tween_set_repeat},
 		{"Tween", Polycore_Tween},
@@ -947,14 +1026,19 @@ int luaopen_Polycode(lua_State *L) {
 		{"Tween_Reset", Polycore_Tween_Reset},
 		{"Tween_isComplete", Polycore_Tween_isComplete},
 		{"Tween_setSpeed", Polycore_Tween_setSpeed},
+		{"delete_Tween", Polycore_delete_Tween},
 		{"BezierPathTween", Polycore_BezierPathTween},
 		{"BezierPathTween_updateCustomTween", Polycore_BezierPathTween_updateCustomTween},
+		{"delete_BezierPathTween", Polycore_delete_BezierPathTween},
 		{"QuaternionTween", Polycore_QuaternionTween},
 		{"QuaternionTween_updateCustomTween", Polycore_QuaternionTween_updateCustomTween},
+		{"delete_QuaternionTween", Polycore_delete_QuaternionTween},
 		{"TweenManager", Polycore_TweenManager},
 		{"TweenManager_addTween", Polycore_TweenManager_addTween},
 		{"TweenManager_Update", Polycore_TweenManager_Update},
+		{"delete_TweenManager", Polycore_delete_TweenManager},
 		{"Vector2", Polycore_Vector2},
+		{"delete_Vector2", Polycore_delete_Vector2},
 		{"Vector3_get_x", Polycore_Vector3_get_x},
 		{"Vector3_get_y", Polycore_Vector3_get_y},
 		{"Vector3_get_z", Polycore_Vector3_get_z},
@@ -968,6 +1052,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Vector3_dot", Polycore_Vector3_dot},
 		{"Vector3_crossProduct", Polycore_Vector3_crossProduct},
 		{"Vector3_Normalize", Polycore_Vector3_Normalize},
+		{"delete_Vector3", Polycore_delete_Vector3},
 		{"Vertex_get_useVertexColor", Polycore_Vertex_get_useVertexColor},
 		{"Vertex_set_useVertexColor", Polycore_Vertex_set_useVertexColor},
 		{"Vertex", Polycore_Vertex},
@@ -978,6 +1063,7 @@ int luaopen_Polycode(lua_State *L) {
 		{"Vertex_getTexCoord", Polycore_Vertex_getTexCoord},
 		{"Vertex_setTexCoord", Polycore_Vertex_setTexCoord},
 		{"Vertex_setNormal", Polycore_Vertex_setNormal},
+		{"delete_Vertex", Polycore_delete_Vertex},
 		{NULL, NULL}
 	};
 	luaL_openlib(L, "Polycore", polycodeLib, 0);

BIN
Bindings/Scripts/create_lua_library/.create_lua_library.py.swp


+ 26 - 1
Bindings/Scripts/create_lua_library/create_lua_library.py

@@ -232,7 +232,10 @@ for fileName in files:
 									out += "\t}\n"
 								else:
 									out += "\tluaL_checktype(L, %d, %s);\n" % (idx, luatype);
-									out += "\t%s %s = %s(L, %d);\n" % (param["type"], param["name"], luafunc, idx)
+									if param["type"] == "String":
+										out += "\t%s %s = String(%s(L, %d));\n" % (param["type"], param["name"], luafunc, idx)
+									else:
+										out += "\t%s %s = %s(L, %d);\n" % (param["type"], param["name"], luafunc, idx)
 								paramlist.append(param["name"])
 							
 								lparamlist.append(param["name"]+lend)
@@ -291,6 +294,13 @@ for fileName in files:
 						
 						if pm["name"] == ckey:
 							lout += "function %s:%s(...)\n" % (ckey, ckey)
+							if inherits:
+								lout += "\tif type(arg[1]) == \"table\" and count(arg) == 1 then\n"
+								lout += "\t\tif \"\"..arg[1]:class() == \"%s\" then\n" % (c["inherits"][0]["class"])
+								lout += "\t\t\tself.__ptr = arg[1].__ptr\n"
+								lout += "\t\t\treturn\n"
+								lout += "\t\tend\n"
+								lout += "\tend\n"
 							lout += "\tfor k,v in pairs(arg) do\n"
 							lout += "\t\tif type(v) == \"table\" then\n"
 							lout += "\t\t\tif v.__ptr ~= nil then\n"
@@ -334,6 +344,21 @@ for fileName in files:
 							lout += "end\n\n"
 
 					parsed_methods.append(pm["name"])
+	
+				#cleanup
+				sout += "\t\t{\"delete_%s\", Polycore_delete_%s},\n" % (ckey, ckey)
+				out += "static int Polycore_delete_%s(lua_State *L) {\n" % (ckey)
+				out += "\tluaL_checktype(L, 1, LUA_TLIGHTUSERDATA);\n"
+				out += "\t%s *inst = (%s*)lua_topointer(L, 1);\n" % (ckey.replace("Polygon", "Polycode::Polygon"), ckey.replace("Polygon", "Polycode::Polygon"))
+				out += "\tdelete inst;\n"
+				out += "\treturn 0;\n"
+				out += "}\n\n"
+
+				lout += "\n\n"
+				lout += "function %s:__delete()\n" % (ckey)
+				lout += "\tPolycore.__ptr_lookup[self.__ptr] = nil\n"
+				lout += "\tPolycore.delete_%s(self.__ptr)\n" % (ckey)
+				lout += "end\n"
 				if ckey == "EventHandler":
 					lout += "\n\n"
 					lout += "function EventHandler:__handleEvent(event)\n"

Разница между файлами не показана из-за своего большого размера
+ 635 - 291
Core/Build/Mac OS X/PolyCore.xcodeproj/project.xcworkspace/xcuserdata/ivansafrin.xcuserdatad/UserInterfaceState.xcuserstate


+ 4 - 0
Core/Contents/Include/PolyInputEvent.h

@@ -70,6 +70,10 @@ namespace Polycode {
 		*/
 		Vector2 mousePosition;
 		
+		Vector2 getMousePosition() { return mousePosition; }
+		PolyKEY getKey() { return key; }
+		int getMouseButton() { return mouseButton; }
+						
 		/**
 		* If this is a key event, the key code that's coming down or up.
 		*/		

+ 162 - 0
Modules/Build/Mac OS X/Modules.xcodeproj/project.pbxproj

@@ -16,6 +16,21 @@
 		6D1B705612C29AFE0076D5C4 /* PolyCollisionSceneEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D1B704D12C29AFE0076D5C4 /* PolyCollisionSceneEntity.cpp */; };
 		6D1B705712C29AFE0076D5C4 /* PolyPhysicsScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D1B704E12C29AFE0076D5C4 /* PolyPhysicsScene.cpp */; };
 		6D1B705812C29AFE0076D5C4 /* PolyPhysicsSceneEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D1B704F12C29AFE0076D5C4 /* PolyPhysicsSceneEntity.cpp */; };
+		6D26112C13766DC300745E74 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D26112B13766DC300745E74 /* Cocoa.framework */; };
+		6D26112F13766DC900745E74 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D26112E13766DC900745E74 /* IOKit.framework */; };
+		6D26113113766DD500745E74 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D26113013766DD500745E74 /* OpenGL.framework */; };
+		6D26113313766DDC00745E74 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D26113213766DDC00745E74 /* OpenAL.framework */; };
+		6D28012F13766D1200BD8D0D /* PolyPhysicsScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D580E0812D29FB5006FB999 /* PolyPhysicsScreen.cpp */; };
+		6D28013013766D1200BD8D0D /* PolyPhysicsScreenEntity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D580E0912D29FB5006FB999 /* PolyPhysicsScreenEntity.cpp */; };
+		6D28013413766D7100BD8D0D /* libBox2D.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013313766D7000BD8D0D /* libBox2D.a */; };
+		6D28013613766D9000BD8D0D /* libPolyCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013513766D9000BD8D0D /* libPolyCore.a */; };
+		6D28013E13766D9F00BD8D0D /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013713766D9C00BD8D0D /* libfreetype.a */; };
+		6D28013F13766D9F00BD8D0D /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013813766D9C00BD8D0D /* libogg.a */; };
+		6D28014013766D9F00BD8D0D /* libphysfs.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013913766D9C00BD8D0D /* libphysfs.a */; };
+		6D28014113766D9F00BD8D0D /* libpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013A13766D9D00BD8D0D /* libpng.a */; };
+		6D28014213766D9F00BD8D0D /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013B13766D9E00BD8D0D /* libvorbis.a */; };
+		6D28014313766D9F00BD8D0D /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013C13766D9E00BD8D0D /* libvorbisfile.a */; };
+		6D28014413766D9F00BD8D0D /* libz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D28013D13766D9F00BD8D0D /* libz.a */; };
 		6D4B04801312472200C62698 /* PolyGLSLProgram.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D4B047D1312472200C62698 /* PolyGLSLProgram.h */; };
 		6D4B04811312472200C62698 /* PolyGLSLShader.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D4B047E1312472200C62698 /* PolyGLSLShader.h */; };
 		6D4B04821312472200C62698 /* PolyGLSLShaderModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D4B047F1312472200C62698 /* PolyGLSLShaderModule.h */; };
@@ -75,6 +90,21 @@
 		6D1B704D12C29AFE0076D5C4 /* PolyCollisionSceneEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PolyCollisionSceneEntity.cpp; sourceTree = "<group>"; };
 		6D1B704E12C29AFE0076D5C4 /* PolyPhysicsScene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PolyPhysicsScene.cpp; sourceTree = "<group>"; };
 		6D1B704F12C29AFE0076D5C4 /* PolyPhysicsSceneEntity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PolyPhysicsSceneEntity.cpp; sourceTree = "<group>"; };
+		6D26112B13766DC300745E74 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+		6D26112E13766DC900745E74 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
+		6D26113013766DD500745E74 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
+		6D26113213766DDC00745E74 /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; };
+		6D28012A13766CE200BD8D0D /* libPolycode2DPhysicsModule.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libPolycode2DPhysicsModule.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+		6D28013113766D4E00BD8D0D /* libPolyCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libPolyCore.a; path = "../../../Release/Mac OS X/Framework/Core/Lib/libPolyCore.a"; sourceTree = "<group>"; };
+		6D28013313766D7000BD8D0D /* libBox2D.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libBox2D.a; path = ../../../Core/Dependencies/box2d/Box2D/Box2D/Debug/libBox2D.a; sourceTree = "<group>"; };
+		6D28013513766D9000BD8D0D /* libPolyCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libPolyCore.a; path = "../../../Release/Mac OS X/Framework/Core/Lib/libPolyCore.a"; sourceTree = "<group>"; };
+		6D28013713766D9C00BD8D0D /* libfreetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfreetype.a; path = "../../../Release/Mac OS X/Framework/Dependencies/Lib/libfreetype.a"; sourceTree = "<group>"; };
+		6D28013813766D9C00BD8D0D /* libogg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libogg.a; path = "../../../Release/Mac OS X/Framework/Dependencies/Lib/libogg.a"; sourceTree = "<group>"; };
+		6D28013913766D9C00BD8D0D /* libphysfs.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libphysfs.a; path = "../../../Release/Mac OS X/Framework/Dependencies/Lib/libphysfs.a"; sourceTree = "<group>"; };
+		6D28013A13766D9D00BD8D0D /* libpng.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpng.a; path = "../../../Release/Mac OS X/Framework/Dependencies/Lib/libpng.a"; sourceTree = "<group>"; };
+		6D28013B13766D9E00BD8D0D /* libvorbis.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbis.a; path = "../../../Release/Mac OS X/Framework/Dependencies/Lib/libvorbis.a"; sourceTree = "<group>"; };
+		6D28013C13766D9E00BD8D0D /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisfile.a; path = "../../../Release/Mac OS X/Framework/Dependencies/Lib/libvorbisfile.a"; sourceTree = "<group>"; };
+		6D28013D13766D9F00BD8D0D /* libz.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libz.a; path = "../../../Release/Mac OS X/Framework/Dependencies/Lib/libz.a"; sourceTree = "<group>"; };
 		6D4B04211312428500C62698 /* libPolycodeGLSL.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPolycodeGLSL.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		6D4B047D1312472200C62698 /* PolyGLSLProgram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolyGLSLProgram.h; path = ../../Contents/GLSL/Include/PolyGLSLProgram.h; sourceTree = "<group>"; };
 		6D4B047E1312472200C62698 /* PolyGLSLShader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PolyGLSLShader.h; path = ../../Contents/GLSL/Include/PolyGLSLShader.h; sourceTree = "<group>"; };
@@ -143,6 +173,26 @@
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
+		6D28012713766CE200BD8D0D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6D26113313766DDC00745E74 /* OpenAL.framework in Frameworks */,
+				6D26113113766DD500745E74 /* OpenGL.framework in Frameworks */,
+				6D26112F13766DC900745E74 /* IOKit.framework in Frameworks */,
+				6D26112C13766DC300745E74 /* Cocoa.framework in Frameworks */,
+				6D28013413766D7100BD8D0D /* libBox2D.a in Frameworks */,
+				6D28013613766D9000BD8D0D /* libPolyCore.a in Frameworks */,
+				6D28013E13766D9F00BD8D0D /* libfreetype.a in Frameworks */,
+				6D28013F13766D9F00BD8D0D /* libogg.a in Frameworks */,
+				6D28014013766D9F00BD8D0D /* libphysfs.a in Frameworks */,
+				6D28014113766D9F00BD8D0D /* libpng.a in Frameworks */,
+				6D28014213766D9F00BD8D0D /* libvorbis.a in Frameworks */,
+				6D28014313766D9F00BD8D0D /* libvorbisfile.a in Frameworks */,
+				6D28014413766D9F00BD8D0D /* libz.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		6D4B041F1312428500C62698 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -199,6 +249,20 @@
 		08FB7794FE84155DC02AAC07 /* Modules */ = {
 			isa = PBXGroup;
 			children = (
+				6D26113213766DDC00745E74 /* OpenAL.framework */,
+				6D26113013766DD500745E74 /* OpenGL.framework */,
+				6D26112E13766DC900745E74 /* IOKit.framework */,
+				6D26112B13766DC300745E74 /* Cocoa.framework */,
+				6D28013113766D4E00BD8D0D /* libPolyCore.a */,
+				6D28013513766D9000BD8D0D /* libPolyCore.a */,
+				6D28013713766D9C00BD8D0D /* libfreetype.a */,
+				6D28013813766D9C00BD8D0D /* libogg.a */,
+				6D28013913766D9C00BD8D0D /* libphysfs.a */,
+				6D28013A13766D9D00BD8D0D /* libpng.a */,
+				6D28013B13766D9E00BD8D0D /* libvorbis.a */,
+				6D28013C13766D9E00BD8D0D /* libvorbisfile.a */,
+				6D28013D13766D9F00BD8D0D /* libz.a */,
+				6D28013313766D7000BD8D0D /* libBox2D.a */,
 				6D994C9E134D8FAA0044DD0B /* Frameworks */,
 				08FB7795FE84155DC02AAC07 /* Source */,
 				C6A0FF2B0290797F04C91782 /* Documentation */,
@@ -231,6 +295,7 @@
 				6DFD116912DEA9C60080A2BE /* libPolycodeKinect.a */,
 				6D4B04211312428500C62698 /* libPolycodeGLSL.a */,
 				6D994C7E134D8EEA0044DD0B /* libPolycodeGLSLModule.dylib */,
+				6D28012A13766CE200BD8D0D /* libPolycode2DPhysicsModule.dylib */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -268,6 +333,13 @@
 			path = Source;
 			sourceTree = "<group>";
 		};
+		6D26113413766E6200745E74 /* Module */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Module;
+			sourceTree = "<group>";
+		};
 		6D4B047C1312470E00C62698 /* PolycodeGLSL */ = {
 			isa = PBXGroup;
 			children = (
@@ -284,6 +356,7 @@
 		6D580E0312D29FB5006FB999 /* 2DPhysics */ = {
 			isa = PBXGroup;
 			children = (
+				6D26113413766E6200745E74 /* Module */,
 				6D580E0412D29FB5006FB999 /* Include */,
 				6D580E0712D29FB5006FB999 /* Source */,
 			);
@@ -427,6 +500,13 @@
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
+		6D28012813766CE200BD8D0D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		6D4B041D1312428500C62698 /* Headers */ = {
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
@@ -507,6 +587,23 @@
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
+		6D28012913766CE200BD8D0D /* Polycode2DPhysicsModule */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 6D28012D13766CE200BD8D0D /* Build configuration list for PBXNativeTarget "Polycode2DPhysicsModule" */;
+			buildPhases = (
+				6D28012613766CE200BD8D0D /* Sources */,
+				6D28012713766CE200BD8D0D /* Frameworks */,
+				6D28012813766CE200BD8D0D /* Headers */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Polycode2DPhysicsModule;
+			productName = Polycode2DPhysicsModule;
+			productReference = 6D28012A13766CE200BD8D0D /* libPolycode2DPhysicsModule.dylib */;
+			productType = "com.apple.product-type.library.dynamic";
+		};
 		6D4B04201312428500C62698 /* PolycodeGLSL */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = 6D4B04341312429E00C62698 /* Build configuration list for PBXNativeTarget "PolycodeGLSL" */;
@@ -652,11 +749,21 @@
 				6DFD116812DEA9C60080A2BE /* PolycodeKinect */,
 				6D4B04201312428500C62698 /* PolycodeGLSL */,
 				6D994C7D134D8EEA0044DD0B /* PolycodeGLSLModule */,
+				6D28012913766CE200BD8D0D /* Polycode2DPhysicsModule */,
 			);
 		};
 /* End PBXProject section */
 
 /* Begin PBXSourcesBuildPhase section */
+		6D28012613766CE200BD8D0D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				6D28012F13766D1200BD8D0D /* PolyPhysicsScreen.cpp in Sources */,
+				6D28013013766D1200BD8D0D /* PolyPhysicsScreenEntity.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		6D4B041E1312428500C62698 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -776,6 +883,52 @@
 			};
 			name = Release;
 		};
+		6D28012B13766CE200BD8D0D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				EXECUTABLE_PREFIX = lib;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/../../../Release/Mac OS X/Framework/Core/Lib\"",
+					"\"$(SRCROOT)/../../../Core/Dependencies/box2d/Box2D/Box2D/Debug\"",
+					"\"$(SRCROOT)/../../../Release/Mac OS X/Framework/Dependencies/Lib\"",
+				);
+				MACOSX_DEPLOYMENT_TARGET = 10.6;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = macosx;
+			};
+			name = Debug;
+		};
+		6D28012C13766CE200BD8D0D /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = YES;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				EXECUTABLE_PREFIX = lib;
+				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(SRCROOT)/../../../Release/Mac OS X/Framework/Core/Lib\"",
+					"\"$(SRCROOT)/../../../Core/Dependencies/box2d/Box2D/Box2D/Debug\"",
+					"\"$(SRCROOT)/../../../Release/Mac OS X/Framework/Dependencies/Lib\"",
+				);
+				MACOSX_DEPLOYMENT_TARGET = 10.6;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SDKROOT = macosx;
+			};
+			name = Release;
+		};
 		6D4B04221312428500C62698 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -1055,6 +1208,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		6D28012D13766CE200BD8D0D /* Build configuration list for PBXNativeTarget "Polycode2DPhysicsModule" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				6D28012B13766CE200BD8D0D /* Debug */,
+				6D28012C13766CE200BD8D0D /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		6D4B04341312429E00C62698 /* Build configuration list for PBXNativeTarget "PolycodeGLSL" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (

Разница между файлами не показана из-за своего большого размера
+ 204 - 188
Modules/Build/Mac OS X/Modules.xcodeproj/project.xcworkspace/xcuserdata/ivansafrin.xcuserdatad/UserInterfaceState.xcuserstate


+ 58 - 0
Modules/Build/Mac OS X/Modules.xcodeproj/xcuserdata/ivansafrin.xcuserdatad/xcschemes/Polycode2DPhysicsModule.xcscheme

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "6D28012913766CE200BD8D0D"
+               BuildableName = "libPolycode2DPhysicsModule.dylib"
+               BlueprintName = "Polycode2DPhysicsModule"
+               ReferencedContainer = "container:Modules.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+      displayScaleIsEnabled = "NO"
+      displayScale = "1.00"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug">
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      displayScaleIsEnabled = "NO"
+      displayScale = "1.00"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 58 - 0
Modules/Build/Mac OS X/Modules.xcodeproj/xcuserdata/ivansafrin.xcuserdatad/xcschemes/PolycodeGLSLModule.xcscheme

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "6D994C7D134D8EEA0044DD0B"
+               BuildableName = "libPolycodeGLSLModule.dylib"
+               BlueprintName = "PolycodeGLSLModule"
+               ReferencedContainer = "container:Modules.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+      displayScaleIsEnabled = "NO"
+      displayScale = "1.00"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug">
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      displayScaleIsEnabled = "NO"
+      displayScale = "1.00"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 20 - 0
Modules/Build/Mac OS X/Modules.xcodeproj/xcuserdata/ivansafrin.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -9,6 +9,11 @@
 			<key>orderHint</key>
 			<integer>5</integer>
 		</dict>
+		<key>Polycode2DPhysicsModule.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>7</integer>
+		</dict>
 		<key>Polycode3DPhysics.xcscheme</key>
 		<dict>
 			<key>orderHint</key>
@@ -24,6 +29,11 @@
 			<key>orderHint</key>
 			<integer>2</integer>
 		</dict>
+		<key>PolycodeGLSLModule.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>6</integer>
+		</dict>
 		<key>PolycodeKinect.xcscheme</key>
 		<dict>
 			<key>orderHint</key>
@@ -37,6 +47,11 @@
 	</dict>
 	<key>SuppressBuildableAutocreation</key>
 	<dict>
+		<key>6D28012913766CE200BD8D0D</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
 		<key>6D4B04201312428500C62698</key>
 		<dict>
 			<key>primary</key>
@@ -52,6 +67,11 @@
 			<key>primary</key>
 			<true/>
 		</dict>
+		<key>6D994C7D134D8EEA0044DD0B</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
 		<key>6DFB00FB12A736A900C43A7D</key>
 		<dict>
 			<key>primary</key>

+ 20 - 9
Modules/Contents/2DPhysics/Include/PolyPhysicsScreen.h

@@ -1,13 +1,24 @@
 /*
- *  PolyPhysicsScreen.h
- *  Poly
- *
- *  Created by Ivan Safrin on 5/8/08.
- *  Copyright 2008 __MyCompanyName__. All rights reserved.
- *
- */
-
-// @package ScreenPhysics
+Copyright (C) 2011 by Ivan Safrin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
 
 #pragma once
 #include "PolyGlobals.h"

+ 20 - 9
Modules/Contents/2DPhysics/Include/PolyPhysicsScreenEntity.h

@@ -1,13 +1,24 @@
 /*
- *  PolyPhysicsScreenEntity.h
- *  Poly
- *
- *  Created by Ivan Safrin on 5/8/08.
- *  Copyright 2008 __MyCompanyName__. All rights reserved.
- *
- */
- 
-// @package ScreenPhysics
+Copyright (C) 2011 by Ivan Safrin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
 
 #pragma once
 #include "PolyGlobals.h"

+ 20 - 7
Modules/Contents/2DPhysics/Source/PolyPhysicsScreen.cpp

@@ -1,11 +1,24 @@
 /*
- *  PolyPhysicsScreen.cpp
- *  Poly
- *
- *  Created by Ivan Safrin on 5/8/08.
- *  Copyright 2008 __MyCompanyName__. All rights reserved.
- *
- */
+Copyright (C) 2011 by Ivan Safrin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
 
 
 #include "PolyPhysicsScreen.h"

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