aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/jin.exebin548352 -> 549888 bytes
-rw-r--r--build/vs2015/jin.rcbin3262 -> 3340 bytes
-rw-r--r--build/vs2015/jin.vcxproj6
-rw-r--r--build/vs2015/jin.vcxproj.filters6
-rw-r--r--build/vs2015/libjin/libjin.vcxproj105
-rw-r--r--build/vs2015/libjin/libjin.vcxproj.filters306
-rw-r--r--src/libjin/Audio/source.cpp28
-rw-r--r--src/libjin/Graphics/Shapes.cpp122
-rw-r--r--src/libjin/Graphics/Shapes.h43
-rw-r--r--src/libjin/Graphics/Texture.h2
-rw-r--r--src/libjin/Physics/Physics.h2
-rw-r--r--src/libjin/Physics/Rigid.h0
-rw-r--r--src/libjin/jin.h1
-rw-r--r--src/libjin/physics/physics.h2
-rw-r--r--src/libjin/physics/rigid.h0
-rw-r--r--src/lua/modules/physics/physics.cpp16
16 files changed, 626 insertions, 13 deletions
diff --git a/bin/jin.exe b/bin/jin.exe
index 874ca50..33337d0 100644
--- a/bin/jin.exe
+++ b/bin/jin.exe
Binary files differ
diff --git a/build/vs2015/jin.rc b/build/vs2015/jin.rc
index 4b2f6af..85b96bd 100644
--- a/build/vs2015/jin.rc
+++ b/build/vs2015/jin.rc
Binary files differ
diff --git a/build/vs2015/jin.vcxproj b/build/vs2015/jin.vcxproj
index ff5846a..a9f1618 100644
--- a/build/vs2015/jin.vcxproj
+++ b/build/vs2015/jin.vcxproj
@@ -22,6 +22,7 @@
<ProjectGuid>{A3E35ECA-62EB-45CE-8152-674FBC7F7A3B}</ProjectGuid>
<RootNamespace>jin</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <ProjectName>jin(full version)</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -82,7 +83,7 @@
<Optimization>Custom</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>$(SolutionDir)..\..\src\;$(SolutionDir)libs\SDL2-2.0.5\include;$(SolutionDir)libs\LuaJIT-2.0.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\..\src\;$(SolutionDir)libs\SDL2-2.0.5\include;$(SolutionDir)libs\LuaJIT-2.0.5\include;$(SolutionDir)..\..\src\libjin\3rdparty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
@@ -110,7 +111,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>$(SolutionDir)..\..\src\;$(SolutionDir)libs\SDL2-2.0.5\include;$(SolutionDir)libs\LuaJIT-2.0.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\..\src\;$(SolutionDir)libs\SDL2-2.0.5\include;$(SolutionDir)libs\LuaJIT-2.0.5\include;$(SolutionDir)..\..\src\libjin\3rdparty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
@@ -159,6 +160,7 @@
<ClCompile Include="..\..\src\lua\modules\net\Buffer.cpp" />
<ClCompile Include="..\..\src\lua\modules\net\net.cpp" />
<ClCompile Include="..\..\src\lua\modules\net\socket.cpp" />
+ <ClCompile Include="..\..\src\lua\modules\physics\physics.cpp" />
<ClCompile Include="..\..\src\lua\modules\thread\thread.cpp" />
<ClCompile Include="..\..\src\lua\modules\time\time.cpp" />
<ClCompile Include="..\..\src\main.cpp" />
diff --git a/build/vs2015/jin.vcxproj.filters b/build/vs2015/jin.vcxproj.filters
index a8f6db7..5218536 100644
--- a/build/vs2015/jin.vcxproj.filters
+++ b/build/vs2015/jin.vcxproj.filters
@@ -67,6 +67,9 @@
<Filter Include="src\lua\resources">
<UniqueIdentifier>{0340fbad-0c07-4923-afd2-183424c70967}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\lua\modules\physics">
+ <UniqueIdentifier>{9670ec46-9794-4e7e-8f5a-0dc3ae1eaf06}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\main.cpp">
@@ -138,6 +141,9 @@
<ClCompile Include="..\..\src\lua\modules\jin.cpp">
<Filter>src\lua\modules</Filter>
</ClCompile>
+ <ClCompile Include="..\..\src\lua\modules\physics\physics.cpp">
+ <Filter>src\lua\modules\physics</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h">
diff --git a/build/vs2015/libjin/libjin.vcxproj b/build/vs2015/libjin/libjin.vcxproj
index 48bdb6f..d255f03 100644
--- a/build/vs2015/libjin/libjin.vcxproj
+++ b/build/vs2015/libjin/libjin.vcxproj
@@ -22,7 +22,8 @@
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{9EE02090-C15E-4520-9C05-C435E45EF2FC}</ProjectGuid>
<RootNamespace>libjin</RootNamespace>
- <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <ProjectName>libjin(full version)</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -82,10 +83,10 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
- <ConformanceMode>true</ConformanceMode>
+ <ConformanceMode>false</ConformanceMode>
<CompileAs>CompileAsCpp</CompileAs>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>$(SolutionDir)libs\SDL2-2.0.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)libs\SDL2-2.0.5\include;$(SolutionDir)..\..\src\libjin\3rdparty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
</ClCompile>
@@ -99,9 +100,9 @@
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
- <ConformanceMode>true</ConformanceMode>
+ <ConformanceMode>false</ConformanceMode>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>$(SolutionDir)libs\SDL2-2.0.5\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)libs\SDL2-2.0.5\include;$(SolutionDir)..\..\src\libjin\3rdparty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
</ClCompile>
@@ -129,6 +130,53 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Box2D.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2BroadPhase.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Collision.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Distance.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2DynamicTree.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2TimeOfImpact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2ChainShape.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2CircleShape.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2EdgeShape.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2PolygonShape.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2Shape.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2BlockAllocator.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Draw.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2GrowableStack.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Math.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Settings.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2StackAllocator.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Timer.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Body.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2ContactManager.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Fixture.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Island.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2TimeStep.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2World.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2WorldCallbacks.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndCircleContact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndPolygonContact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2CircleContact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2Contact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ContactSolver.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndCircleContact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndPolygonContact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonAndCircleContact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonContact.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2DistanceJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2FrictionJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2GearJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2Joint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MotorJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MouseJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PrismaticJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PulleyJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RevoluteJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RopeJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WeldJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WheelJoint.h" />
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Rope\b2Rope.h" />
<ClInclude Include="..\..\..\src\libjin\3rdparty\GLee\GLee.h" />
<ClInclude Include="..\..\..\src\libjin\3rdparty\smount\dirent.h" />
<ClInclude Include="..\..\..\src\libjin\3rdparty\smount\smount.h" />
@@ -177,7 +225,6 @@
<ClInclude Include="..\..\..\src\libjin\Net\Net.h" />
<ClInclude Include="..\..\..\src\libjin\Net\Socket.h" />
<ClInclude Include="..\..\..\src\libjin\Physics\Physics.h" />
- <ClInclude Include="..\..\..\src\libjin\Physics\Rigid.h" />
<ClInclude Include="..\..\..\src\libjin\Thread\Thread.h" />
<ClInclude Include="..\..\..\src\libjin\Tilemap\Tilemap.h" />
<ClInclude Include="..\..\..\src\libjin\Time\Timer.h" />
@@ -192,6 +239,52 @@
<None Include="..\..\..\src\libjin\README.md" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2BroadPhase.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2CollideCircle.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2CollideEdge.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2CollidePolygon.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Collision.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Distance.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2DynamicTree.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2TimeOfImpact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2ChainShape.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2CircleShape.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2EdgeShape.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2PolygonShape.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2BlockAllocator.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Draw.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Math.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Settings.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2StackAllocator.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Timer.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Body.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2ContactManager.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Fixture.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Island.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2World.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2WorldCallbacks.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndCircleContact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndPolygonContact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2CircleContact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2Contact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ContactSolver.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndCircleContact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndPolygonContact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonAndCircleContact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonContact.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2DistanceJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2FrictionJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2GearJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2Joint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MotorJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MouseJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PrismaticJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PulleyJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RevoluteJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RopeJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WeldJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WheelJoint.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Rope\b2Rope.cpp" />
<ClCompile Include="..\..\..\src\libjin\3rdparty\GLee\GLee.c" />
<ClCompile Include="..\..\..\src\libjin\3rdparty\smount\smount.c" />
<ClCompile Include="..\..\..\src\libjin\3rdparty\stb\stb_vorbis.c" />
diff --git a/build/vs2015/libjin/libjin.vcxproj.filters b/build/vs2015/libjin/libjin.vcxproj.filters
index 7452651..8485947 100644
--- a/build/vs2015/libjin/libjin.vcxproj.filters
+++ b/build/vs2015/libjin/libjin.vcxproj.filters
@@ -79,6 +79,30 @@
<Filter Include="Source\Time">
<UniqueIdentifier>{e11ee8ea-9e7d-4906-a6fd-8df56cb6a3e9}</UniqueIdentifier>
</Filter>
+ <Filter Include="Source\3rdparty\Box2D">
+ <UniqueIdentifier>{57ceb31d-2bc0-488a-8965-0d29111f9ecf}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source\3rdparty\Box2D\Common">
+ <UniqueIdentifier>{b8807b96-b968-4502-8034-b5d016189ab2}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source\3rdparty\Box2D\Collision">
+ <UniqueIdentifier>{648bd259-b5c0-4b9e-a561-1ff83ac0c34b}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source\3rdparty\Box2D\Collision\Shapes">
+ <UniqueIdentifier>{95228e09-6999-4472-8ac4-540fc8c9a692}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source\3rdparty\Box2D\Dynamics">
+ <UniqueIdentifier>{09d35646-0b60-405a-8288-9e3a4a1f9667}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source\3rdparty\Box2D\Dynamics\Joints">
+ <UniqueIdentifier>{ae410ff7-378a-4dc3-b6ca-52b685d4fcd2}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source\3rdparty\Box2D\Dynamics\Contacts">
+ <UniqueIdentifier>{e2930534-acb0-4705-96e1-725de73c17af}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source\3rdparty\Box2D\Rope">
+ <UniqueIdentifier>{bf260b45-984e-498b-8128-b32332aab23d}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\libjin\jin.h">
@@ -177,9 +201,6 @@
<ClInclude Include="..\..\..\src\libjin\Physics\Physics.h">
<Filter>Source\Physics</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\src\libjin\Physics\Rigid.h">
- <Filter>Source\Physics</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\libjin\Thread\Thread.h">
<Filter>Source\Thread</Filter>
</ClInclude>
@@ -255,6 +276,147 @@
<ClInclude Include="..\..\..\src\libjin\Graphics\Shapes.h">
<Filter>Source\Graphics</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Box2D.h">
+ <Filter>Source\3rdparty\Box2D</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2BlockAllocator.h">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Draw.h">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2GrowableStack.h">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Math.h">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Settings.h">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2StackAllocator.h">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Timer.h">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2ChainShape.h">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2CircleShape.h">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2EdgeShape.h">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2PolygonShape.h">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2Shape.h">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2BroadPhase.h">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Collision.h">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Distance.h">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2DynamicTree.h">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2TimeOfImpact.h">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2DistanceJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2FrictionJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2GearJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2Joint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MotorJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MouseJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PrismaticJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PulleyJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RevoluteJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RopeJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WeldJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WheelJoint.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Body.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2ContactManager.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Fixture.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Island.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2TimeStep.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2World.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2WorldCallbacks.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndCircleContact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndPolygonContact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2CircleContact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2Contact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ContactSolver.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndCircleContact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndPolygonContact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonAndCircleContact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonContact.h">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\3rdparty\Box2D\Rope\b2Rope.h">
+ <Filter>Source\3rdparty\Box2D\Rope</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\src\libjin\README.md">
@@ -364,5 +526,143 @@
<ClCompile Include="..\..\..\src\libjin\Graphics\Shapes.cpp">
<Filter>Source\Graphics</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2BlockAllocator.cpp">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Draw.cpp">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Math.cpp">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Settings.cpp">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2StackAllocator.cpp">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Common\b2Timer.cpp">
+ <Filter>Source\3rdparty\Box2D\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2ChainShape.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2CircleShape.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2EdgeShape.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\Shapes\b2PolygonShape.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision\Shapes</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2BroadPhase.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2CollideCircle.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2CollideEdge.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2CollidePolygon.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Collision.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2Distance.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2DynamicTree.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Collision\b2TimeOfImpact.cpp">
+ <Filter>Source\3rdparty\Box2D\Collision</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2DistanceJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2FrictionJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2GearJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2Joint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MotorJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2MouseJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PrismaticJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2PulleyJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RevoluteJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2RopeJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WeldJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Joints\b2WheelJoint.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Joints</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Body.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2ContactManager.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Fixture.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2Island.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2World.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\b2WorldCallbacks.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndCircleContact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ChainAndPolygonContact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2CircleContact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2Contact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2ContactSolver.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndCircleContact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2EdgeAndPolygonContact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonAndCircleContact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Dynamics\Contacts\b2PolygonContact.cpp">
+ <Filter>Source\3rdparty\Box2D\Dynamics\Contacts</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\3rdparty\Box2D\Rope\b2Rope.cpp">
+ <Filter>Source\3rdparty\Box2D\Rope</Filter>
+ </ClCompile>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/src/libjin/Audio/source.cpp b/src/libjin/Audio/source.cpp
new file mode 100644
index 0000000..61f4055
--- /dev/null
+++ b/src/libjin/Audio/source.cpp
@@ -0,0 +1,28 @@
+#include "../modules.h"
+#if JIN_MODULES_AUDIO
+
+#include <cstring>
+#include "source.h"
+
+namespace jin
+{
+namespace audio
+{
+
+ static int check_header(const void *data, int size, const char *str, int offset) {
+ int len = strlen(str);
+ return (size >= offset + len) && !memcmp((char*)data + offset, str, len);
+ }
+
+ SourceType Source::getType(const void* mem, int size)
+ {
+ if(check_header(mem, size, "WAVE", 8))
+ return SourceType::WAV;
+ if(check_header(mem, size, "OggS", 0))
+ return SourceType::OGG;
+ return SourceType::INVALID;
+ }
+
+}
+}
+#endif // JIN_MODULES_AUDIO \ No newline at end of file
diff --git a/src/libjin/Graphics/Shapes.cpp b/src/libjin/Graphics/Shapes.cpp
new file mode 100644
index 0000000..4b136a1
--- /dev/null
+++ b/src/libjin/Graphics/Shapes.cpp
@@ -0,0 +1,122 @@
+#include "../modules.h"
+#if JIN_MODULES_RENDER
+
+#include "Shapes.h"
+#include "../math/matrix.h"
+#include "../math/constant.h"
+#include <string>
+
+namespace jin
+{
+namespace graphics
+{
+
+ void point(int x, int y)
+ {
+ float vers[] = { x + 0.5f , y + 0.5f };
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glVertexPointer(2, GL_FLOAT, 0, (GLvoid*)vers);
+ glDrawArrays(GL_POINTS, 0, 1);
+ glDisableClientState(GL_VERTEX_ARRAY);
+ }
+
+ void points(int n, GLshort* p)
+ {
+ glEnableClientState(GL_VERTEX_ARRAY);
+
+ glVertexPointer(2, GL_SHORT, 0, (GLvoid*)p);
+ glDrawArrays(GL_POINTS, 0, n);
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ }
+
+ void line(int x1, int y1, int x2, int y2)
+ {
+ glDisable(GL_TEXTURE_2D);
+ float verts[] = {
+ x1, y1,
+ x2, y2
+ };
+
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glVertexPointer(2, GL_FLOAT, 0, (GLvoid*)verts);
+ glDrawArrays(GL_LINES, 0, 2);
+ glDisableClientState(GL_VERTEX_ARRAY);
+ }
+
+ void circle(RENDER_MODE mode, int x, int y, int r)
+ {
+ r = r < 0 ? 0 : r;
+
+ int points = 40;
+ float two_pi = static_cast<float>(PI * 2);
+ if (points <= 0) points = 1;
+ float angle_shift = (two_pi / points);
+ float phi = .0f;
+
+ float *coords = new float[2 * (points + 1)];
+ for (int i = 0; i < points; ++i, phi += angle_shift)
+ {
+ coords[2 * i] = x + r * cos(phi);
+ coords[2 * i + 1] = y + r * sin(phi);
+ }
+
+ coords[2 * points] = coords[0];
+ coords[2 * points + 1] = coords[1];
+
+ polygon(mode, coords, points);
+
+ delete[] coords;
+ }
+
+ void rect(RENDER_MODE mode, int x, int y, int w, int h)
+ {
+ float coords[] = { x, y, x + w, y, x + w, y + h, x, y + h };
+ polygon(mode, coords, 4);
+ }
+
+ void triangle(RENDER_MODE mode, int x1, int y1, int x2, int y2, int x3, int y3)
+ {
+ float coords[] = { x1, y1, x2, y2, x3, y3 };
+ polygon(mode, coords, 3);
+ }
+
+ void polygon_line(float* p, int count)
+ {
+ float* verts = new float[count * 4];
+ for (int i = 0; i < count; ++i)
+ {
+ // each line has two point n,n+1
+ verts[i * 4] = p[i * 2];
+ verts[i * 4 + 1] = p[i * 2 + 1];
+ verts[i * 4 + 2] = p[(i + 1) % count * 2];
+ verts[i * 4 + 3] = p[(i + 1) % count * 2 + 1];
+ }
+
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glVertexPointer(2, GL_FLOAT, 0, (GLvoid*)verts);
+ glDrawArrays(GL_LINES, 0, count * 2);
+ glDisableClientState(GL_VERTEX_ARRAY);
+
+ delete[] verts;
+ }
+
+ void polygon(RENDER_MODE mode, float* p, int count)
+ {
+ if (mode == LINE)
+ {
+ polygon_line(p, count);
+ }
+ else if (mode == FILL)
+ {
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glVertexPointer(2, GL_FLOAT, 0, (const GLvoid*)p);
+ glDrawArrays(GL_POLYGON, 0, count);
+ glDisableClientState(GL_VERTEX_ARRAY);
+ }
+ }
+
+}
+}
+
+#endif // JIN_MODULES_RENDER \ No newline at end of file
diff --git a/src/libjin/Graphics/Shapes.h b/src/libjin/Graphics/Shapes.h
new file mode 100644
index 0000000..742345e
--- /dev/null
+++ b/src/libjin/Graphics/Shapes.h
@@ -0,0 +1,43 @@
+#ifndef __JIN_GRAPHICS_SHAPES_H
+#define __JIN_GRAPHICS_SHAPES_H
+#include "../modules.h"
+#if JIN_MODULES_RENDER
+
+#include "color.h"
+#include "canvas.h"
+#include "texture.h"
+
+namespace jin
+{
+namespace graphics
+{
+
+ typedef enum {
+ NONE = 0,
+ FILL ,
+ LINE
+ }RENDER_MODE;
+
+ /**
+ * TODO:
+ * drawPixels(int n, points)
+ */
+ extern void line(int x1, int y1, int x2, int y2);
+
+ extern void rect(RENDER_MODE mode, int x, int y, int w, int h);
+
+ extern void triangle(RENDER_MODE mode, int x1, int y1, int x2, int y2, int x3, int y3);
+
+ extern void circle(RENDER_MODE mode, int x, int y, int r);
+
+ extern void point(int x, int y);
+
+ extern void points(int n, GLshort* p, GLubyte* c);
+
+ extern void polygon(RENDER_MODE mode, float* p, int count);
+
+}
+}
+
+#endif // JIN_MODULES_RENDER
+#endif // __JIN_GEOMETRY_H \ No newline at end of file
diff --git a/src/libjin/Graphics/Texture.h b/src/libjin/Graphics/Texture.h
index 47f8d53..1fdb50d 100644
--- a/src/libjin/Graphics/Texture.h
+++ b/src/libjin/Graphics/Texture.h
@@ -19,6 +19,8 @@ namespace graphics
static Texture* createTexture(const char* file);
static Texture* createTexture(const void* mem, size_t size);
+ static void destroyTexture(Texture* tex);
+
~Texture();
color getPixel(int x, int y);
diff --git a/src/libjin/Physics/Physics.h b/src/libjin/Physics/Physics.h
index 9927301..126911e 100644
--- a/src/libjin/Physics/Physics.h
+++ b/src/libjin/Physics/Physics.h
@@ -5,7 +5,7 @@ namespace jin
{
namespace physics
{
-
+ #include "../3rdparty/Box2D/Box2D.h"
}
}
diff --git a/src/libjin/Physics/Rigid.h b/src/libjin/Physics/Rigid.h
deleted file mode 100644
index e69de29..0000000
--- a/src/libjin/Physics/Rigid.h
+++ /dev/null
diff --git a/src/libjin/jin.h b/src/libjin/jin.h
index 239fddd..c8d1193 100644
--- a/src/libjin/jin.h
+++ b/src/libjin/jin.h
@@ -7,6 +7,7 @@
#ifdef JIN_MODULES_AUDIO && JIN_AUDIO_SDLAUDIO
#include "Audio/SDL/SDLAudio.h"
#endif // JIN_MODULES_AUDIO && JIN_AUDIO_SDLAUDIO
+#include "Physics/Physics.h"
#include "Core/Core.h"
#include "Filesystem/Filesystem.h"
#include "Input/Input.h"
diff --git a/src/libjin/physics/physics.h b/src/libjin/physics/physics.h
index 9927301..126911e 100644
--- a/src/libjin/physics/physics.h
+++ b/src/libjin/physics/physics.h
@@ -5,7 +5,7 @@ namespace jin
{
namespace physics
{
-
+ #include "../3rdparty/Box2D/Box2D.h"
}
}
diff --git a/src/libjin/physics/rigid.h b/src/libjin/physics/rigid.h
deleted file mode 100644
index e69de29..0000000
--- a/src/libjin/physics/rigid.h
+++ /dev/null
diff --git a/src/lua/modules/physics/physics.cpp b/src/lua/modules/physics/physics.cpp
new file mode 100644
index 0000000..a5b9162
--- /dev/null
+++ b/src/lua/modules/physics/physics.cpp
@@ -0,0 +1,16 @@
+#include "../luax.h"
+#include "libjin/Physics/Physics.h"
+
+namespace jin
+{
+namespace lua
+{
+
+ using namespace jin::physics;
+
+ int luaopen_physics(lua_State* L)
+ {
+ }
+
+} // physics
+} // jin \ No newline at end of file