aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-12-02 21:07:58 +0800
committerchai <chaifix@163.com>2021-12-02 21:07:58 +0800
commitb62f87c9496cb38f9c49139386edf85d4fa14390 (patch)
tree73862c5d4a25213db9c7db90610289251ef10c75
parentfdd228071a3112aeebda20766c7df3b20b8651aa (diff)
*misc
-rw-r--r--Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj3
-rw-r--r--Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters107
-rw-r--r--Client/Source/Phy2D/Common/Settings.h24
-rw-r--r--Client/Source/Phy2D/Tests/test_math.cpp11
-rw-r--r--Client/ThirdParty/fix32/fix32.hpp4
5 files changed, 79 insertions, 70 deletions
diff --git a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj
index 84b0365..51acc0e 100644
--- a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj
+++ b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj
@@ -125,7 +125,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>false</SDLCheck>
<ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>D:\Documents\VisualStudio2017\Projects\LOG\Client\Source\ThirdParty;D:\Documents\VisualStudio2017\Projects\LOG\Client\Source\ThirdParty\imgui;D:\Documents\VisualStudio2017\Projects\LOG\Client\Source\ThirdParty\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)..\..\ThirdParty;$(SolutionDir)..\..\ThirdParty\imgui;$(SolutionDir)..\..\ThirdParty\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -139,7 +139,6 @@
<ClCompile Include="..\..\..\Source\Phy2D\Common\Math.cpp" />
<ClCompile Include="..\..\..\Source\Phy2D\Tests\test_p2d.cpp" />
<ClCompile Include="..\..\..\Source\Phy2D\Tests\test_math.cpp" />
- <ClCompile Include="..\..\..\ThirdParty\fix32\fix32.cpp" />
<ClCompile Include="..\..\..\ThirdParty\glad\glad.c" />
<ClCompile Include="..\..\..\ThirdParty\imgui\backends\imgui_impl_opengl2.cpp" />
<ClCompile Include="..\..\..\ThirdParty\imgui\backends\imgui_impl_sdl.cpp" />
diff --git a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters
index cf32e27..1c1e5ec 100644
--- a/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters
+++ b/Client/Project/VisualStudio/Phy2D/Phy2D.vcxproj.filters
@@ -10,28 +10,28 @@
<Filter Include="Test">
<UniqueIdentifier>{6c1d51b9-5afe-46fb-a449-3100c2d58a72}</UniqueIdentifier>
</Filter>
- <Filter Include="libs">
+ <Filter Include="Rendering">
+ <UniqueIdentifier>{b4d78560-5498-4b35-8f8d-f87db40a4e52}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Dynamic">
+ <UniqueIdentifier>{596062aa-a263-4c8c-acf2-1267b28a0f97}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Libs">
<UniqueIdentifier>{e496beb9-5af2-42a7-afb5-29cf18b93f78}</UniqueIdentifier>
</Filter>
- <Filter Include="libs\libfixmath">
+ <Filter Include="Libs\libfixmath">
<UniqueIdentifier>{85bb91e1-cb20-476e-969b-9fd35bbca3f0}</UniqueIdentifier>
</Filter>
- <Filter Include="libs\fix32">
+ <Filter Include="Libs\fix32">
<UniqueIdentifier>{3fc1eb36-36c6-4b4c-8777-8f47c906eaff}</UniqueIdentifier>
</Filter>
- <Filter Include="Rendering">
- <UniqueIdentifier>{b4d78560-5498-4b35-8f8d-f87db40a4e52}</UniqueIdentifier>
- </Filter>
- <Filter Include="libs\glad">
+ <Filter Include="Libs\glad">
<UniqueIdentifier>{0fd3d9e4-aaf1-4d81-9dff-da02f4d227c6}</UniqueIdentifier>
</Filter>
- <Filter Include="libs\imgui">
+ <Filter Include="Libs\imgui">
<UniqueIdentifier>{4f477d90-081e-42f9-8a1a-146b2ecd4215}</UniqueIdentifier>
</Filter>
- <Filter Include="Dynamic">
- <UniqueIdentifier>{596062aa-a263-4c8c-acf2-1267b28a0f97}</UniqueIdentifier>
- </Filter>
- <Filter Include="libs\sll">
+ <Filter Include="Libs\sll">
<UniqueIdentifier>{fc4d6710-2d01-480a-892c-79a461ad0ec4}</UniqueIdentifier>
</Filter>
</ItemGroup>
@@ -46,58 +46,55 @@
<Filter>Test</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\glad\glad.c">
- <Filter>libs\glad</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\ThirdParty\fix32\fix32.cpp">
- <Filter>libs\fix32</Filter>
+ <Filter>Libs\glad</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\imgui\imgui_widgets.cpp">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\imgui\imgui_tables.cpp">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\imgui\imgui_draw.cpp">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\imgui\imgui_demo.cpp">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\imgui\imgui.cpp">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\imgui\backends\imgui_impl_opengl2.cpp">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\imgui\backends\imgui_impl_sdl.cpp">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16_exp.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16_fft.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16_sqrt.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16_str.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16_trig.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\fract32.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\libfixmath\libfixmath\uint32.c">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClCompile>
<ClCompile Include="..\..\..\ThirdParty\math-sll\math-sll.c">
- <Filter>libs\sll</Filter>
+ <Filter>Libs\sll</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
@@ -115,81 +112,81 @@
<Filter>Test</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\glad\glad.h">
- <Filter>libs\glad</Filter>
+ <Filter>Libs\glad</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\glad\khrplatform.h">
- <Filter>libs\glad</Filter>
+ <Filter>Libs\glad</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\imstb_truetype.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\imstb_textedit.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\imstb_rectpack.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\imgui_internal.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\imgui.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\imconfig.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\backends\imgui_impl_opengl2.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\imgui\backends\imgui_impl_sdl.h">
- <Filter>libs\imgui</Filter>
+ <Filter>Libs\imgui</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16.h">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16.hpp">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\libfixmath\libfixmath\fix16_trig_sin_lut.h">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\libfixmath\libfixmath\fixmath.h">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\libfixmath\libfixmath\fract32.h">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\libfixmath\libfixmath\int64.h">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\libfixmath\libfixmath\uint32.h">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\Phy2D\Common\Type.h">
<Filter>Common</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\math-sll\math-sll.h">
- <Filter>libs\sll</Filter>
+ <Filter>Libs\sll</Filter>
</ClInclude>
<ClInclude Include="..\..\..\ThirdParty\fix32\fix32.hpp">
- <Filter>libs\fix32</Filter>
+ <Filter>Libs\fix32</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Text Include="..\..\..\Source\Phy2D\README.txt" />
<Text Include="..\..\..\ThirdParty\libfixmath\libfixmath\code_style.txt">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</Text>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\ThirdParty\libfixmath\libfixmath\libfixmath.cbp">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</None>
<None Include="..\..\..\ThirdParty\libfixmath\libfixmath\libfixmath.cmake">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</None>
<None Include="..\..\..\ThirdParty\libfixmath\libfixmath\Makefile">
- <Filter>libs\libfixmath</Filter>
+ <Filter>Libs\libfixmath</Filter>
</None>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/Client/Source/Phy2D/Common/Settings.h b/Client/Source/Phy2D/Common/Settings.h
index 318a76c..b03ecad 100644
--- a/Client/Source/Phy2D/Common/Settings.h
+++ b/Client/Source/Phy2D/Common/Settings.h
@@ -1,16 +1,19 @@
#pragma once
-#define NUMBER_FLOAT 1
-#define NUMBER_LIBFIX 2
-#define NUMBER_FPM 3
+#define NUMBER_FLOAT 1
+#define NUMBER_LIBFIX 2
+#define NUMBER_FPM 3
+#define NUMBER_FIX32 4
-#define NUMBER_ALIAS NUMBER_FPM
+#define NUMBER_ALIAS NUMBER_FIX32
#if NUMBER_ALIAS == NUMBER_LIBFIX
#include "libfixmath/libfixmath/fixmath.h"
#elif NUMBER_ALIAS == NUMBER_FPM
#include "fpm/include/fpm/fixed.hpp"
#include "fpm/include/fpm/math.hpp"
+#elif NUMBER_ALIAS == NUMBER_FIX32
+#include "fix32/fix32.hpp"
#endif
namespace Phy2D
@@ -28,7 +31,6 @@ namespace Phy2D
#elif NUMBER_ALIAS == NUMBER_LIBFIX
- // 同时一定要开启内联函数扩展,否则执行效率会非常低
typedef Fix16 fixed;
#define NUMBER_MAX (fix16_maximum)
#define NUMBER_MIN (fix16_minimum)
@@ -92,6 +94,18 @@ namespace Phy2D
#define COS(a) (fpm::cos((a)))
#define PI (fixed::pi())
+#elif NUMBER_ALIAS == NUMBER_FIX32
+
+ typedef Fix32 fixed32; // Q32.32
+ typedef fixed32 fixed;
+
+#define NUMBER_MAX (CONST_MAX)
+#define NUMBER_MIN (CONST_MIN)
+#define SQRT(a) ((a).sqrt())
+#define SIN(a) ((a).sin())
+#define COS(a) ((a).cos())
+#define PI (CONST_PI)
+
#endif
} \ No newline at end of file
diff --git a/Client/Source/Phy2D/Tests/test_math.cpp b/Client/Source/Phy2D/Tests/test_math.cpp
index f88170d..36e834c 100644
--- a/Client/Source/Phy2D/Tests/test_math.cpp
+++ b/Client/Source/Phy2D/Tests/test_math.cpp
@@ -4,17 +4,18 @@
#include <iostream>
#include "../Common/Math.h"
+#include "../Common/Settings.h"
#include "fix32/fix32.hpp"
-using namespace std;
+using namespace Phy2D;
int main(int argc, char **argv)
{
- Fix32 a = 1.3;
- Fix32 b = 2.4;
- Fix32 c = a * b;
+ fixed32 a = 1111.33333;
+ fixed32 b = 23333.44444;
+ fixed32 c = a / b;
- cout << (double)c;
+ std::cout << (double)c;
getchar();
diff --git a/Client/ThirdParty/fix32/fix32.hpp b/Client/ThirdParty/fix32/fix32.hpp
index 7999ad4..e6945d8 100644
--- a/Client/ThirdParty/fix32/fix32.hpp
+++ b/Client/ThirdParty/fix32/fix32.hpp
@@ -5,13 +5,11 @@ extern "C" {
#include "math-sll/math-sll.h"
}
-typedef sll fixed32_t;
-
// Q32.32
class Fix32
{
public:
- sll value;
+ sll value; // signed long long
inline Fix32() { value = 0; }
inline Fix32(const Fix32 &inValue) { value = inValue.value; }