diff --git a/.hgignore b/.hgignore index 21240aa83..e4fe7c0b9 100644 --- a/.hgignore +++ b/.hgignore @@ -1,20 +1,18 @@ relre:platform/msvc2008/include/ -glob:platform/msvc2008/Debug/ -glob:platform/msvc2008/Release/ glob:platform/msvc2008/lib/ -relre:platform/msvc2008/(.*)user -relre:platform/msvc2008/(.*)dll -relre:platform/msvc2008/(.*)ncb relre:platform/msvc2008/(.*)txt relre:platform/msvc2008/(.*)suo -relre:src/scripts/(.*)exe -relre:src/scripts/(.*)bat glob:extra/reshax/Release/ glob:extra/reshax/Debug/ -relre:src/resources/(.*)bat -relre:src/resources/(.*)exe -relre:extra/reshax/(.*)ncb -relre:extra/reshax/(.*)suo -relre:extra/reshax/(.*)user glob:extra/reshax/resources.h glob:extra/reshax/resources.cpp +glob:*.obj +glob:*.dll +glob:*.user +glob:*.suo +glob:*/Release* +glob:*/Debug* +glob:*.lib +glob:*.ncb +glob:*.exe +glob:*.bat diff --git a/platform/msvc2008/audio/audio.vcproj b/platform/msvc2008/audio/audio.vcproj new file mode 100644 index 000000000..421818471 --- /dev/null +++ b/platform/msvc2008/audio/audio.vcproj @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/common/common.vcproj b/platform/msvc2008/common/common.vcproj new file mode 100644 index 000000000..506f39875 --- /dev/null +++ b/platform/msvc2008/common/common.vcproj @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/event/event.vcproj b/platform/msvc2008/event/event.vcproj new file mode 100644 index 000000000..fafe117a4 --- /dev/null +++ b/platform/msvc2008/event/event.vcproj @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/filesystem/filesystem.vcproj b/platform/msvc2008/filesystem/filesystem.vcproj new file mode 100644 index 000000000..c8909b020 --- /dev/null +++ b/platform/msvc2008/filesystem/filesystem.vcproj @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/font/font.vcproj b/platform/msvc2008/font/font.vcproj new file mode 100644 index 000000000..92da2c720 --- /dev/null +++ b/platform/msvc2008/font/font.vcproj @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/graphics/graphics.vcproj b/platform/msvc2008/graphics/graphics.vcproj new file mode 100644 index 000000000..06fa520ed --- /dev/null +++ b/platform/msvc2008/graphics/graphics.vcproj @@ -0,0 +1,459 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/image/image.vcproj b/platform/msvc2008/image/image.vcproj new file mode 100644 index 000000000..e47cb3a08 --- /dev/null +++ b/platform/msvc2008/image/image.vcproj @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/joystick/joystick.vcproj b/platform/msvc2008/joystick/joystick.vcproj new file mode 100644 index 000000000..078f37ab3 --- /dev/null +++ b/platform/msvc2008/joystick/joystick.vcproj @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/keyboard/keyboard.vcproj b/platform/msvc2008/keyboard/keyboard.vcproj new file mode 100644 index 000000000..8d7531371 --- /dev/null +++ b/platform/msvc2008/keyboard/keyboard.vcproj @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/love.sln b/platform/msvc2008/love.sln index 30bdb7fde..4e41d0c1e 100644 --- a/platform/msvc2008/love.sln +++ b/platform/msvc2008/love.sln @@ -3,6 +3,79 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C++ Express 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "love", "love.vcproj", "{F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "common\common.vcproj", "{8273822F-45A4-4BE3-82F3-B8B3223C578C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filesystem", "filesystem\filesystem.vcproj", "{0A2BDA60-43BB-4837-921A-2E4955FD8AEC}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "image", "image\image.vcproj", "{55F35AEA-2D84-4A39-BF98-505106A15FF7}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + {0A2BDA60-43BB-4837-921A-2E4955FD8AEC} = {0A2BDA60-43BB-4837-921A-2E4955FD8AEC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sound", "sound\sound.vcproj", "{3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + {0A2BDA60-43BB-4837-921A-2E4955FD8AEC} = {0A2BDA60-43BB-4837-921A-2E4955FD8AEC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mouse", "mouse\mouse.vcproj", "{88881251-6818-485E-A262-DE1283096589}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "graphics\graphics.vcproj", "{8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + {0E3ACF52-EEB5-4E35-8631-43B3E9F4577E} = {0E3ACF52-EEB5-4E35-8631-43B3E9F4577E} + {55F35AEA-2D84-4A39-BF98-505106A15FF7} = {55F35AEA-2D84-4A39-BF98-505106A15FF7} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "font", "font\font.vcproj", "{0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + {0A2BDA60-43BB-4837-921A-2E4955FD8AEC} = {0A2BDA60-43BB-4837-921A-2E4955FD8AEC} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "keyboard", "keyboard\keyboard.vcproj", "{F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "audio", "audio\audio.vcproj", "{1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + {3D59D1E2-2682-4317-BB8D-D85E9BBC02E3} = {3D59D1E2-2682-4317-BB8D-D85E9BBC02E3} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "physics", "physics\physics.vcproj", "{39CDF8C8-016D-423E-94BA-7DD798CF0E15}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "event\event.vcproj", "{62C66448-36CB-4350-9D6E-02F49F05EDB4}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "joystick", "joystick\joystick.vcproj", "{C6C174AC-B339-4A39-A353-CFF523327B53}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timer", "timer\timer.vcproj", "{3DFF2849-C47D-4251-B2AC-E60EDBC29511}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "native", "native\native.vcproj", "{CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}" + ProjectSection(ProjectDependencies) = postProject + {8273822F-45A4-4BE3-82F3-B8B3223C578C} = {8273822F-45A4-4BE3-82F3-B8B3223C578C} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -13,6 +86,62 @@ Global {F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Debug|Win32.Build.0 = Debug|Win32 {F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Release|Win32.ActiveCfg = Release|Win32 {F2FDC53D-1ECD-4CF1-BA3F-3E59A2484DB9}.Release|Win32.Build.0 = Release|Win32 + {8273822F-45A4-4BE3-82F3-B8B3223C578C}.Debug|Win32.ActiveCfg = Debug|Win32 + {8273822F-45A4-4BE3-82F3-B8B3223C578C}.Debug|Win32.Build.0 = Debug|Win32 + {8273822F-45A4-4BE3-82F3-B8B3223C578C}.Release|Win32.ActiveCfg = Release|Win32 + {8273822F-45A4-4BE3-82F3-B8B3223C578C}.Release|Win32.Build.0 = Release|Win32 + {0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Debug|Win32.ActiveCfg = Debug|Win32 + {0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Debug|Win32.Build.0 = Debug|Win32 + {0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Release|Win32.ActiveCfg = Release|Win32 + {0A2BDA60-43BB-4837-921A-2E4955FD8AEC}.Release|Win32.Build.0 = Release|Win32 + {55F35AEA-2D84-4A39-BF98-505106A15FF7}.Debug|Win32.ActiveCfg = Debug|Win32 + {55F35AEA-2D84-4A39-BF98-505106A15FF7}.Debug|Win32.Build.0 = Debug|Win32 + {55F35AEA-2D84-4A39-BF98-505106A15FF7}.Release|Win32.ActiveCfg = Release|Win32 + {55F35AEA-2D84-4A39-BF98-505106A15FF7}.Release|Win32.Build.0 = Release|Win32 + {3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Debug|Win32.ActiveCfg = Debug|Win32 + {3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Debug|Win32.Build.0 = Debug|Win32 + {3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Release|Win32.ActiveCfg = Release|Win32 + {3D59D1E2-2682-4317-BB8D-D85E9BBC02E3}.Release|Win32.Build.0 = Release|Win32 + {88881251-6818-485E-A262-DE1283096589}.Debug|Win32.ActiveCfg = Debug|Win32 + {88881251-6818-485E-A262-DE1283096589}.Debug|Win32.Build.0 = Debug|Win32 + {88881251-6818-485E-A262-DE1283096589}.Release|Win32.ActiveCfg = Release|Win32 + {88881251-6818-485E-A262-DE1283096589}.Release|Win32.Build.0 = Release|Win32 + {8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Debug|Win32.ActiveCfg = Debug|Win32 + {8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Debug|Win32.Build.0 = Debug|Win32 + {8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Release|Win32.ActiveCfg = Release|Win32 + {8A97E9E7-8C48-4C33-A3ED-31487FE58E9E}.Release|Win32.Build.0 = Release|Win32 + {0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Debug|Win32.ActiveCfg = Debug|Win32 + {0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Debug|Win32.Build.0 = Debug|Win32 + {0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Release|Win32.ActiveCfg = Release|Win32 + {0E3ACF52-EEB5-4E35-8631-43B3E9F4577E}.Release|Win32.Build.0 = Release|Win32 + {F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Debug|Win32.ActiveCfg = Debug|Win32 + {F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Debug|Win32.Build.0 = Debug|Win32 + {F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Release|Win32.ActiveCfg = Release|Win32 + {F84CE42B-BBA4-4E32-824B-1F2CAD9236C3}.Release|Win32.Build.0 = Release|Win32 + {1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Debug|Win32.ActiveCfg = Debug|Win32 + {1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Debug|Win32.Build.0 = Debug|Win32 + {1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Release|Win32.ActiveCfg = Release|Win32 + {1E405CDD-5FD7-42E0-BCF1-147305DA3EA0}.Release|Win32.Build.0 = Release|Win32 + {39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Debug|Win32.ActiveCfg = Debug|Win32 + {39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Debug|Win32.Build.0 = Debug|Win32 + {39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Release|Win32.ActiveCfg = Release|Win32 + {39CDF8C8-016D-423E-94BA-7DD798CF0E15}.Release|Win32.Build.0 = Release|Win32 + {62C66448-36CB-4350-9D6E-02F49F05EDB4}.Debug|Win32.ActiveCfg = Debug|Win32 + {62C66448-36CB-4350-9D6E-02F49F05EDB4}.Debug|Win32.Build.0 = Debug|Win32 + {62C66448-36CB-4350-9D6E-02F49F05EDB4}.Release|Win32.ActiveCfg = Release|Win32 + {62C66448-36CB-4350-9D6E-02F49F05EDB4}.Release|Win32.Build.0 = Release|Win32 + {C6C174AC-B339-4A39-A353-CFF523327B53}.Debug|Win32.ActiveCfg = Debug|Win32 + {C6C174AC-B339-4A39-A353-CFF523327B53}.Debug|Win32.Build.0 = Debug|Win32 + {C6C174AC-B339-4A39-A353-CFF523327B53}.Release|Win32.ActiveCfg = Release|Win32 + {C6C174AC-B339-4A39-A353-CFF523327B53}.Release|Win32.Build.0 = Release|Win32 + {3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Debug|Win32.ActiveCfg = Debug|Win32 + {3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Debug|Win32.Build.0 = Debug|Win32 + {3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Release|Win32.ActiveCfg = Release|Win32 + {3DFF2849-C47D-4251-B2AC-E60EDBC29511}.Release|Win32.Build.0 = Release|Win32 + {CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Debug|Win32.ActiveCfg = Debug|Win32 + {CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Debug|Win32.Build.0 = Debug|Win32 + {CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Release|Win32.ActiveCfg = Release|Win32 + {CCAD89EC-2C3C-4F69-BF71-D9DA230FE109}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/platform/msvc2008/love.vcproj b/platform/msvc2008/love.vcproj index 02f942fbf..65683aeac 100644 --- a/platform/msvc2008/love.vcproj +++ b/platform/msvc2008/love.vcproj @@ -3297,14 +3297,6 @@ RelativePath="..\..\src\common\config.h" > - - - - diff --git a/platform/msvc2008/mouse/mouse.vcproj b/platform/msvc2008/mouse/mouse.vcproj new file mode 100644 index 000000000..9c8400cf5 --- /dev/null +++ b/platform/msvc2008/mouse/mouse.vcproj @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/native/native.vcproj b/platform/msvc2008/native/native.vcproj new file mode 100644 index 000000000..4212f0876 --- /dev/null +++ b/platform/msvc2008/native/native.vcproj @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/physics/physics.vcproj b/platform/msvc2008/physics/physics.vcproj new file mode 100644 index 000000000..c58841fc2 --- /dev/null +++ b/platform/msvc2008/physics/physics.vcproj @@ -0,0 +1,1031 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/sound/sound.vcproj b/platform/msvc2008/sound/sound.vcproj new file mode 100644 index 000000000..a0cee06ae --- /dev/null +++ b/platform/msvc2008/sound/sound.vcproj @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/msvc2008/timer/timer.vcproj b/platform/msvc2008/timer/timer.vcproj new file mode 100644 index 000000000..8637c8eb2 --- /dev/null +++ b/platform/msvc2008/timer/timer.vcproj @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/common/Data.h b/src/common/Data.h index 5743e97f0..d4bd7eeeb 100644 --- a/src/common/Data.h +++ b/src/common/Data.h @@ -22,6 +22,7 @@ #define LOVE_DATA_H // LOVE +#include "config.h" #include "Object.h" namespace love diff --git a/src/common/Object.h b/src/common/Object.h index 69ff911fe..becb75a94 100644 --- a/src/common/Object.h +++ b/src/common/Object.h @@ -21,6 +21,9 @@ #ifndef LOVE_OBJECT_H #define LOVE_OBJECT_H +// LOVE +#include "config.h" + namespace love { /** diff --git a/src/common/config.h b/src/common/config.h index 1b409867f..1d0b3c32f 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -21,9 +21,6 @@ #ifndef LOVE_CONFIG_H #define LOVE_CONFIG_H -// STD -#include - // Platform stuff. #if defined(WIN32) || defined(_WIN32) # define LOVE_WINDOWS 1 @@ -38,26 +35,20 @@ # define LOVE_MACOS 1 #endif +// Warnings. +#ifndef _CRT_SECURE_NO_WARNINGS +# define _CRT_SECURE_NO_WARNINGS +#endif + // Build. #define LOVE_BUILD_EXE 1 #define LOVE_BUILD_DLL 0 -// Version stuff. -const int LOVE_VERSION = 060; -const int LOVE_VERSION_COMPATIBILITY[] = { 0 }; -const std::string LOVE_VERSION_STR = "0.6.0"; -const std::string LOVE_VERSION_CODENAME = "Jiggly Juice"; -const std::string LOVE_VERSION_FULL_STR = std::string("LOVE ") + LOVE_VERSION_STR + std::string(" (") + LOVE_VERSION_CODENAME + std::string(")"); - // DLL-stuff. #ifdef LOVE_WINDOWS -# ifndef DECLSPEC -# define DECLSPEC __declspec(dllexport) -# endif +# define LOVE_EXPORT __declspec(dllexport) #else -# ifndef DECLSPEC -# define DECLSPEC -# endif +# define LOVE_EXPORT #endif #endif // LOVE_CONFIG_H diff --git a/src/common/constants.cpp b/src/common/constants.cpp deleted file mode 100644 index e207eeb43..000000000 --- a/src/common/constants.cpp +++ /dev/null @@ -1,279 +0,0 @@ -/** -* Copyright (c) 2006-2009 LOVE Development Team -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -**/ - -#include "constants.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace love -{ - // Constants. - const lua_constant_entry lua_constants[] = - { - { "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_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 }, - - { "key_repeat_delay", keyboard::Keyboard::KEY_REPEAT_DELAY }, - { "key_repeat_interval", keyboard::Keyboard::KEY_REPEAT_INTERVAL }, - - { "mouse_left", mouse::Mouse::MOUSE_LEFT }, - { "mouse_middle", mouse::Mouse::MOUSE_MIDDLE }, - { "mouse_right", mouse::Mouse::MOUSE_RIGHT }, - { "mouse_wheelup", mouse::Mouse::MOUSE_WHEELUP }, - { "mouse_wheeldown", mouse::Mouse::MOUSE_WHEELDOWN }, - - { "align_left", graphics::Graphics::ALIGN_LEFT }, - { "align_right", graphics::Graphics::ALIGN_RIGHT }, - { "align_center", graphics::Graphics::ALIGN_CENTER }, - - { "blend_alpha", graphics::Graphics::BLEND_ALPHA }, - { "blend_additive", graphics::Graphics::BLEND_ADDITIVE }, - { "color_replace", graphics::Graphics::COLOR_REPLACE }, - { "color_modulate", graphics::Graphics::COLOR_MODULATE }, - - { "file_closed", filesystem::File::CLOSED }, - { "file_read", filesystem::File::READ }, - { "file_write", filesystem::File::WRITE }, - { "file_append", filesystem::File::APPEND }, - - { "draw_line", graphics::Graphics::DRAW_LINE }, - { "draw_fill", graphics::Graphics::DRAW_FILL }, - - { "line_smooth", graphics::Graphics::LINE_SMOOTH }, - { "line_rough", graphics::Graphics::LINE_ROUGH }, - - { "point_smooth", graphics::Graphics::POINT_SMOOTH }, - { "point_rough", graphics::Graphics::POINT_ROUGH }, - - { "shape_circle", physics::Shape::SHAPE_CIRCLE }, - { "shape_polygon", physics::Shape::SHAPE_POLYGON }, - - { "joint_distance", physics::Joint::JOINT_DISTANCE }, - { "joint_revolute", physics::Joint::JOINT_REVOLUTE }, - { "joint_prismatic", physics::Joint::JOINT_PRISMATIC }, - { "joint_mouse", physics::Joint::JOINT_MOUSE }, - { "joint_pulley", physics::Joint::JOINT_PULLEY }, - { "joint_gear", physics::Joint::JOINT_GEAR }, - - { "joystick_axis_horizontal", joystick::Joystick::JOYSTICK_AXIS_HORIZONTAL }, - { "joystick_axis_vertical", joystick::Joystick::JOYSTICK_AXIS_VERITCAL }, - - { "joystick_hat_centered", joystick::Joystick::JOYSTICK_HAT_CENTERED }, - { "joystick_hat_up", joystick::Joystick::JOYSTICK_HAT_UP }, - { "joystick_hat_right", joystick::Joystick::JOYSTICK_HAT_RIGHT }, - { "joystick_hat_down", joystick::Joystick::JOYSTICK_HAT_DOWN }, - { "joystick_hat_left", joystick::Joystick::JOYSTICK_HAT_LEFT }, - { "joystick_hat_rightup", joystick::Joystick::JOYSTICK_HAT_RIGHTUP }, - { "joystick_hat_rightdown", joystick::Joystick::JOYSTICK_HAT_RIGHTDOWN }, - { "joystick_hat_leftup", joystick::Joystick::JOYSTICK_HAT_LEFTUP }, - { "joystick_hat_leftdown", joystick::Joystick::JOYSTICK_HAT_LEFTDOWN }, - - { "event_keypressed", event::Event::EVENT_KEYDOWN }, - { "event_keyreleased", event::Event::EVENT_KEYUP }, - { "event_mousepressed", event::Event::EVENT_MOUSEBUTTONDOWN }, - { "event_mousereleased", event::Event::EVENT_MOUSEBUTTONUP }, - { "event_joystickpressed", event::Event::EVENT_JOYBUTTONDOWN }, - { "event_joystickreleased", event::Event::EVENT_JOYBUTTONUP }, - { "event_quit", event::Event::EVENT_QUIT }, - - { "filter_linear", graphics::Image::FILTER_LINEAR }, - { "filter_nearest", graphics::Image::FILTER_NEAREST }, - - { "wrap_clamp", graphics::Image::WRAP_CLAMP }, - { "wrap_repeat", graphics::Image::WRAP_REPEAT }, - - /** - - // Vertex buffer geometry types. - - { "type_points", TYPE_POINTS }, - { "type_lines", TYPE_LINES }, - { "type_line_strip", TYPE_LINE_STRIP }, - { "type_triangles", TYPE_TRIANGLES }, - { "type_triangle_strip", TYPE_TRIANGLE_STRIP }, - { "type_triangle_fan", TYPE_TRIANGLE_FAN }, - { "type_num", TYPE_NUM }, - - // Vertex buffer usage hints. - - { "usage_array", USAGE_ARRAY }, - { "usage_dynamic", USAGE_DYNAMIC }, - { "usage_static", USAGE_STATIC }, - { "usage_stream", USAGE_STREAM }, - { "usage_num", USAGE_NUM }, - **/ - - {0, 0}, // Indicates the end - - }; // lua constants - -} // love diff --git a/src/common/runtime.cpp b/src/common/runtime.cpp index 227356a23..40842961a 100644 --- a/src/common/runtime.cpp +++ b/src/common/runtime.cpp @@ -103,8 +103,7 @@ namespace love int luax_register_gc(lua_State * L, const char * mname, Module * m) { - lua_getglobal(L, "love"); - lua_getfield(L, -1, "_fin"); + luax_getregistry(L, REGISTRY_GC); userdata * u = (userdata *)lua_newuserdata(L, sizeof(userdata)); u->own = true; @@ -117,7 +116,7 @@ namespace love lua_setfield(L, -2, mname); - lua_pop(L, 2); // _fin, love + lua_pop(L, 1); // Registry return 0; } @@ -155,10 +154,20 @@ namespace love return 0; } - int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const char * name) + int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const LuaConstant * constants, const char * name) { // Gets the love table. - lua_getglobal(L, "love"); + luax_insistglobal(L, "love"); + + // Install constants. + if(constants != 0) + { + for(int i = 0; constants[i].name != 0; i++) + { + lua_pushinteger(L, constants[i].value); + lua_setfield(L, -2, constants[i].name); + } + } // Create new table for module. lua_newtable(L); @@ -281,4 +290,59 @@ namespace love return luax_convobj(L, idx, "filesystem", "read"); } + int luax_insist(lua_State * L, int idx, const char * k) + { + lua_getfield(L, idx, k); + + // Create if necessary. + if(!lua_istable(L, -1)) + { + lua_pop(L, 1); // Pop the non-table. + lua_newtable(L); + lua_pushvalue(L, -1); // Duplicate the table to leave on top. + lua_setfield(L, -3, k); // k[idx] = table + } + + return 1; + } + + int luax_insistglobal(lua_State * L, const char * k) + { + lua_getglobal(L, k); + + if(!lua_istable(L, -1)) + { + lua_pop(L, 1); // Pop the non-table. + lua_newtable(L); + lua_pushvalue(L, -1); + lua_setglobal(L, k); + } + + return 1; + } + + int luax_insistlove(lua_State * L, const char * k) + { + luax_insistglobal(L, "love"); + luax_insist(L, -1, k); + + // The love table should be replaced with the top stack + // item. Only the reqested table should remain on the stack. + lua_replace(L, -2); + + return 1; + } + + int luax_getregistry(lua_State * L, Registry r) + { + switch(r) + { + case REGISTRY_GC: + return luax_insistlove(L, "_gc"); + default: + return luaL_error(L, "Attempted to use invalid registry."); + } + } + + } // love diff --git a/src/common/runtime.h b/src/common/runtime.h index 15ce3ac15..51690a471 100644 --- a/src/common/runtime.h +++ b/src/common/runtime.h @@ -35,6 +35,18 @@ namespace love { class Module; + enum Registry + { + REGISTRY_GC = 1, + }; + + // Type used for storing constants in an array. + struct LuaConstant + { + const char * name; + int value; + }; + void luax_printstack(lua_State * L); bool luax_toboolean(lua_State * L, int idx); void luax_pushboolean(lua_State * L, bool b); @@ -49,7 +61,7 @@ namespace love const char * provides, const char * desc, const char * author, lua_CFunction open); - int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const char * name); + int luax_register_module(lua_State * L, const luaL_Reg * fn, const lua_CFunction * types, const LuaConstant * constants, const char * name); int luax_preload(lua_State * L, lua_CFunction f, const char * name); int luax_register_type(lua_State * L, const char * tname, const luaL_Reg * fn); @@ -79,6 +91,15 @@ namespace love **/ int luax_strtofile(lua_State * L, int idx); + int luax_insist(lua_State * L, int idx, const char * k); + int luax_insistglobal(lua_State * L, const char * k); + int luax_insistlove(lua_State * L, const char * k); + + /** + * Gets (creates if needed) the specified Registry. + **/ + int luax_getregistry(lua_State * L, Registry r); + template T * luax_checktype(lua_State * L, int idx, const char * tname, love::bits type) { diff --git a/src/common/constants.h b/src/common/version.h similarity index 66% rename from src/common/constants.h rename to src/common/version.h index 8cc841c3d..42379c4a6 100644 --- a/src/common/constants.h +++ b/src/common/version.h @@ -18,21 +18,17 @@ * 3. This notice may not be removed or altered from any source distribution. **/ -#ifndef LOVE_CONSTANTS_H -#define LOVE_CONSTANTS_H +#ifndef LOVE_VERSION_H +#define LOVE_VERSION_H -namespace love -{ - // Type used for storing constants - // in an array. - typedef struct lua_constant_entry - { - const char * name; - int value; - } lua_constant_entry; +// STD +#include - extern const lua_constant_entry lua_constants[]; +// Version stuff. +const int LOVE_VERSION = 060; +const int LOVE_VERSION_COMPATIBILITY[] = { 0 }; +const std::string LOVE_VERSION_STR = "0.6.0"; +const std::string LOVE_VERSION_CODENAME = "Jiggly Juice"; +const std::string LOVE_VERSION_FULL_STR = std::string("LOVE ") + LOVE_VERSION_STR + std::string(" (") + LOVE_VERSION_CODENAME + std::string(")"); -} // love - -#endif // LOVE_CONSTANTS_H +#endif // LOVE_VERSION_H diff --git a/src/love.cpp b/src/love.cpp index 9428596d9..027b1227e 100644 --- a/src/love.cpp +++ b/src/love.cpp @@ -18,21 +18,20 @@ * 3. This notice may not be removed or altered from any source distribution. **/ -// STD - // SDL #include // LOVE #include +#include #include -#include #include // Modules #include