aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/Jin.exebin0 -> 491008 bytes
-rw-r--r--build/vc++/3rdparty/GLee/GLee.vcxproj137
-rw-r--r--build/vc++/3rdparty/GLee/GLee.vcxproj.filters18
-rw-r--r--build/vc++/3rdparty/GLee/GLee.vcxproj.user4
-rw-r--r--build/vc++/3rdparty/ogl2d/ogl2d.vcxproj123
-rw-r--r--build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.filters13
-rw-r--r--build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.user4
-rw-r--r--build/vc++/3rdparty/smount/smount.vcxproj138
-rw-r--r--build/vc++/3rdparty/smount/smount.vcxproj.filters21
-rw-r--r--build/vc++/3rdparty/smount/smount.vcxproj.user4
-rw-r--r--build/vc++/3rdparty/stb/stb.vcxproj138
-rw-r--r--build/vc++/3rdparty/stb/stb.vcxproj.filters21
-rw-r--r--build/vc++/3rdparty/stb/stb.vcxproj.user4
-rw-r--r--build/vc++/3rdparty/tekcos/tekcos.vcxproj137
-rw-r--r--build/vc++/3rdparty/tekcos/tekcos.vcxproj.filters18
-rw-r--r--build/vc++/3rdparty/tekcos/tekcos.vcxproj.user4
-rw-r--r--build/vc++/3rdparty/wav/wav.vcxproj137
-rw-r--r--build/vc++/3rdparty/wav/wav.vcxproj.filters18
-rw-r--r--build/vc++/3rdparty/wav/wav.vcxproj.user4
-rw-r--r--build/vc++/jin.sln63
-rw-r--r--build/vc++/jin.vcxproj4
-rw-r--r--build/vc++/libjin/libjin.vcxproj42
-rw-r--r--build/vc++/libjin/libjin.vcxproj.filters78
-rw-r--r--res/font.pngbin7615 -> 7543 bytes
-rw-r--r--src/3rdparty/GLee/GLee.c (renamed from src/libjin/3rdparty/GLee/GLee.c)0
-rw-r--r--src/3rdparty/GLee/GLee.h (renamed from src/libjin/3rdparty/GLee/GLee.h)0
-rw-r--r--src/3rdparty/ogl/OpenGL.h178
-rw-r--r--src/3rdparty/smount/dirent.h (renamed from src/libjin/3rdparty/smount/dirent.h)0
-rw-r--r--src/3rdparty/smount/smount.c (renamed from src/libjin/3rdparty/smount/smount.c)0
-rw-r--r--src/3rdparty/smount/smount.h (renamed from src/libjin/3rdparty/smount/smount.h)0
-rw-r--r--src/3rdparty/stb/stb_image.h (renamed from src/libjin/3rdparty/stb/stb_image.h)0
-rw-r--r--src/3rdparty/stb/stb_truetype.h (renamed from src/libjin/3rdparty/stb/stb_truetype.h)0
-rw-r--r--src/3rdparty/stb/stb_vorbis.c (renamed from src/libjin/3rdparty/stb/stb_vorbis.c)0
-rw-r--r--src/3rdparty/tekcos/README (renamed from src/libjin/3rdparty/tekcos/README)0
-rw-r--r--src/3rdparty/tekcos/tekcos.c (renamed from src/libjin/3rdparty/tekcos/tekcos.c)0
-rw-r--r--src/3rdparty/tekcos/tekcos.h (renamed from src/libjin/3rdparty/tekcos/tekcos.h)0
-rw-r--r--src/3rdparty/wav/wav.c (renamed from src/libjin/3rdparty/wav/wav.c)0
-rw-r--r--src/3rdparty/wav/wav.h (renamed from src/libjin/3rdparty/wav/wav.h)0
-rw-r--r--src/libjin/3rdparty/base64/base64.h186
-rw-r--r--src/libjin/3rdparty/ogl/OpenGL.h520
-rw-r--r--src/libjin/Audio/SDL/je_sdl_source.cpp5
-rw-r--r--src/libjin/Filesystem/je_asset_database.h2
-rw-r--r--src/libjin/Game/je_application.cpp (renamed from src/libjin/Game/je_game.cpp)12
-rw-r--r--src/libjin/Game/je_application.h (renamed from src/libjin/Game/je_game.h)8
-rw-r--r--src/libjin/Graphics/Font/je_texture_font.cpp6
-rw-r--r--src/libjin/Graphics/Font/je_ttf.cpp4
-rw-r--r--src/libjin/Graphics/Font/je_ttf.h3
-rw-r--r--src/libjin/Graphics/Shader/je_shader.cpp2
-rw-r--r--src/libjin/Graphics/Shader/je_shader.h2
-rw-r--r--src/libjin/Graphics/je_bitmap.cpp2
-rw-r--r--src/libjin/Graphics/je_bitmap.h3
-rw-r--r--src/libjin/Graphics/je_gl.h5
-rw-r--r--src/libjin/Graphics/je_image.cpp3
-rw-r--r--src/libjin/Graphics/je_texture.h2
-rw-r--r--src/libjin/Net/je_socket.h2
-rw-r--r--src/libjin/jin.h2
-rw-r--r--src/lua/modules/core/je_lua_core.cpp8
-rw-r--r--src/lua/resources/font.ttf.h713
58 files changed, 1608 insertions, 1190 deletions
diff --git a/bin/Jin.exe b/bin/Jin.exe
new file mode 100644
index 0000000..e1f37c2
--- /dev/null
+++ b/bin/Jin.exe
Binary files differ
diff --git a/build/vc++/3rdparty/GLee/GLee.vcxproj b/build/vc++/3rdparty/GLee/GLee.vcxproj
new file mode 100644
index 0000000..007dc38
--- /dev/null
+++ b/build/vc++/3rdparty/GLee/GLee.vcxproj
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}</ProjectGuid>
+ <RootNamespace>GLee</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\GLee\GLee.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\GLee\GLee.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/GLee/GLee.vcxproj.filters b/build/vc++/3rdparty/GLee/GLee.vcxproj.filters
new file mode 100644
index 0000000..2822148
--- /dev/null
+++ b/build/vc++/3rdparty/GLee/GLee.vcxproj.filters
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="source">
+ <UniqueIdentifier>{eebe1ebb-f43f-4b31-9c61-4cd44565461e}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\GLee\GLee.c">
+ <Filter>source</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\GLee\GLee.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/GLee/GLee.vcxproj.user b/build/vc++/3rdparty/GLee/GLee.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/vc++/3rdparty/GLee/GLee.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj b/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj
new file mode 100644
index 0000000..546afbb
--- /dev/null
+++ b/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{D17F6928-AF98-4ED9-A2B9-1DC0B2765D4F}</ProjectGuid>
+ <RootNamespace>ogl2d</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup />
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\ogl\OpenGL.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.filters b/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.filters
new file mode 100644
index 0000000..74f0b2e
--- /dev/null
+++ b/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.filters
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="source">
+ <UniqueIdentifier>{9eb6b640-ac80-4c15-b76c-2a7c5536ca5c}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\ogl\OpenGL.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.user b/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/vc++/3rdparty/ogl2d/ogl2d.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/smount/smount.vcxproj b/build/vc++/3rdparty/smount/smount.vcxproj
new file mode 100644
index 0000000..c174850
--- /dev/null
+++ b/build/vc++/3rdparty/smount/smount.vcxproj
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{3FC3E8B7-380E-41E6-91FF-82FA5E622D29}</ProjectGuid>
+ <RootNamespace>smount</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\smount\dirent.h" />
+ <ClInclude Include="..\..\..\..\src\3rdparty\smount\smount.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\smount\smount.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/smount/smount.vcxproj.filters b/build/vc++/3rdparty/smount/smount.vcxproj.filters
new file mode 100644
index 0000000..ad2b2c5
--- /dev/null
+++ b/build/vc++/3rdparty/smount/smount.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="source">
+ <UniqueIdentifier>{65960c95-e385-4c08-8b67-a7158e39289f}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\smount\dirent.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\3rdparty\smount\smount.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\smount\smount.c">
+ <Filter>source</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/smount/smount.vcxproj.user b/build/vc++/3rdparty/smount/smount.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/vc++/3rdparty/smount/smount.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/stb/stb.vcxproj b/build/vc++/3rdparty/stb/stb.vcxproj
new file mode 100644
index 0000000..6cb9b3f
--- /dev/null
+++ b/build/vc++/3rdparty/stb/stb.vcxproj
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}</ProjectGuid>
+ <RootNamespace>stb</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\stb\stb_image.h" />
+ <ClInclude Include="..\..\..\..\src\3rdparty\stb\stb_truetype.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\stb\stb_vorbis.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/stb/stb.vcxproj.filters b/build/vc++/3rdparty/stb/stb.vcxproj.filters
new file mode 100644
index 0000000..dba3009
--- /dev/null
+++ b/build/vc++/3rdparty/stb/stb.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="source">
+ <UniqueIdentifier>{2704930f-d8dd-4b99-8e27-6b5d8fdab710}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\stb\stb_image.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\src\3rdparty\stb\stb_truetype.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\stb\stb_vorbis.c">
+ <Filter>source</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/stb/stb.vcxproj.user b/build/vc++/3rdparty/stb/stb.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/vc++/3rdparty/stb/stb.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/tekcos/tekcos.vcxproj b/build/vc++/3rdparty/tekcos/tekcos.vcxproj
new file mode 100644
index 0000000..3148e63
--- /dev/null
+++ b/build/vc++/3rdparty/tekcos/tekcos.vcxproj
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}</ProjectGuid>
+ <RootNamespace>tekcos</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\tekcos\tekcos.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\tekcos\tekcos.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/tekcos/tekcos.vcxproj.filters b/build/vc++/3rdparty/tekcos/tekcos.vcxproj.filters
new file mode 100644
index 0000000..cccacab
--- /dev/null
+++ b/build/vc++/3rdparty/tekcos/tekcos.vcxproj.filters
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="source">
+ <UniqueIdentifier>{2cee3ae8-b50d-4592-8545-5e489b1e3f2a}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\tekcos\tekcos.c">
+ <Filter>source</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\tekcos\tekcos.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/tekcos/tekcos.vcxproj.user b/build/vc++/3rdparty/tekcos/tekcos.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/vc++/3rdparty/tekcos/tekcos.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/wav/wav.vcxproj b/build/vc++/3rdparty/wav/wav.vcxproj
new file mode 100644
index 0000000..bba56a1
--- /dev/null
+++ b/build/vc++/3rdparty/wav/wav.vcxproj
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <VCProjectVersion>15.0</VCProjectVersion>
+ <ProjectGuid>{9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}</ProjectGuid>
+ <RootNamespace>wav</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v141</PlatformToolset>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)..\..\bin</OutDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MinSpace</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>false</ConformanceMode>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <ConformanceMode>true</ConformanceMode>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\wav\wav.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\wav\wav.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/wav/wav.vcxproj.filters b/build/vc++/3rdparty/wav/wav.vcxproj.filters
new file mode 100644
index 0000000..ac7d2a6
--- /dev/null
+++ b/build/vc++/3rdparty/wav/wav.vcxproj.filters
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="source">
+ <UniqueIdentifier>{b990a338-a227-4467-8414-90e49768bf59}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\3rdparty\wav\wav.c">
+ <Filter>source</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\3rdparty\wav\wav.h">
+ <Filter>source</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/vc++/3rdparty/wav/wav.vcxproj.user b/build/vc++/3rdparty/wav/wav.vcxproj.user
new file mode 100644
index 0000000..be25078
--- /dev/null
+++ b/build/vc++/3rdparty/wav/wav.vcxproj.user
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project> \ No newline at end of file
diff --git a/build/vc++/jin.sln b/build/vc++/jin.sln
index 8441c11..1838ac4 100644
--- a/build/vc++/jin.sln
+++ b/build/vc++/jin.sln
@@ -11,6 +11,22 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Example", "Example", "{6FC1
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ParticleSystem", "examples\ParticleSystem\ParticleSystem.vcxproj", "{984764C1-0471-4A36-9B2B-BF846817C95F}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rdParty", "3rdParty", "{65DFFFA6-F434-47FB-9DB2-DCF019060B92}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stb", "3rdparty\stb\stb.vcxproj", "{E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLee", "3rdparty\GLee\GLee.vcxproj", "{8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tekcos", "3rdparty\tekcos\tekcos.vcxproj", "{B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "smount", "3rdparty\smount\smount.vcxproj", "{3FC3E8B7-380E-41E6-91FF-82FA5E622D29}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wav", "3rdparty\wav\wav.vcxproj", "{9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Library", "Library", "{60F334B9-B068-47CE-8CD9-431A356CB31B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Runner", "Runner", "{2D5BA0D9-04A7-43BB-BD30-000D39317B07}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -43,12 +59,59 @@ Global
{984764C1-0471-4A36-9B2B-BF846817C95F}.Release|x64.Build.0 = Release|x64
{984764C1-0471-4A36-9B2B-BF846817C95F}.Release|x86.ActiveCfg = Release|Win32
{984764C1-0471-4A36-9B2B-BF846817C95F}.Release|x86.Build.0 = Release|Win32
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Debug|x64.ActiveCfg = Debug|x64
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Debug|x64.Build.0 = Debug|x64
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Debug|x86.ActiveCfg = Debug|Win32
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Debug|x86.Build.0 = Debug|Win32
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Release|x64.ActiveCfg = Release|x64
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Release|x64.Build.0 = Release|x64
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Release|x86.ActiveCfg = Release|Win32
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0}.Release|x86.Build.0 = Release|Win32
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Debug|x64.ActiveCfg = Debug|x64
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Debug|x64.Build.0 = Debug|x64
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Debug|x86.ActiveCfg = Debug|Win32
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Debug|x86.Build.0 = Debug|Win32
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Release|x64.ActiveCfg = Release|x64
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Release|x64.Build.0 = Release|x64
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Release|x86.ActiveCfg = Release|Win32
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A}.Release|x86.Build.0 = Release|Win32
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Debug|x64.ActiveCfg = Debug|x64
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Debug|x64.Build.0 = Debug|x64
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Debug|x86.ActiveCfg = Debug|Win32
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Debug|x86.Build.0 = Debug|Win32
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Release|x64.ActiveCfg = Release|x64
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Release|x64.Build.0 = Release|x64
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Release|x86.ActiveCfg = Release|Win32
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744}.Release|x86.Build.0 = Release|Win32
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Debug|x64.ActiveCfg = Debug|x64
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Debug|x64.Build.0 = Debug|x64
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Debug|x86.ActiveCfg = Debug|Win32
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Debug|x86.Build.0 = Debug|Win32
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Release|x64.ActiveCfg = Release|x64
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Release|x64.Build.0 = Release|x64
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Release|x86.ActiveCfg = Release|Win32
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29}.Release|x86.Build.0 = Release|Win32
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Debug|x64.ActiveCfg = Debug|x64
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Debug|x64.Build.0 = Debug|x64
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Debug|x86.ActiveCfg = Debug|Win32
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Debug|x86.Build.0 = Debug|Win32
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Release|x64.ActiveCfg = Release|x64
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Release|x64.Build.0 = Release|x64
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Release|x86.ActiveCfg = Release|Win32
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {A3E35ECA-62EB-45CE-8152-674FBC7F7A3B} = {2D5BA0D9-04A7-43BB-BD30-000D39317B07}
+ {9EE02090-C15E-4520-9C05-C435E45EF2FC} = {60F334B9-B068-47CE-8CD9-431A356CB31B}
{984764C1-0471-4A36-9B2B-BF846817C95F} = {6FC112F9-B317-4444-B4FB-2E0BF70328F1}
+ {E9A7ECC9-1437-45A8-B970-E9E75BD1F8E0} = {65DFFFA6-F434-47FB-9DB2-DCF019060B92}
+ {8828F6B1-F167-4BC9-B7C7-7CC34CDDEE8A} = {65DFFFA6-F434-47FB-9DB2-DCF019060B92}
+ {B88DC691-FE8A-4C5E-8D57-EBCC6B13C744} = {65DFFFA6-F434-47FB-9DB2-DCF019060B92}
+ {3FC3E8B7-380E-41E6-91FF-82FA5E622D29} = {65DFFFA6-F434-47FB-9DB2-DCF019060B92}
+ {9A0EAD3F-5A23-41C8-8FFD-8F6B71F43342} = {65DFFFA6-F434-47FB-9DB2-DCF019060B92}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {633D8D43-3349-43F7-8835-7D7F58BAD2A8}
diff --git a/build/vc++/jin.vcxproj b/build/vc++/jin.vcxproj
index 01b3a9a..e830a09 100644
--- a/build/vc++/jin.vcxproj
+++ b/build/vc++/jin.vcxproj
@@ -84,7 +84,7 @@
<WarningLevel>Level3</WarningLevel>
<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\3rdparty\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
@@ -113,7 +113,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\3rdparty\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
diff --git a/build/vc++/libjin/libjin.vcxproj b/build/vc++/libjin/libjin.vcxproj
index 6d1d3f5..6497e24 100644
--- a/build/vc++/libjin/libjin.vcxproj
+++ b/build/vc++/libjin/libjin.vcxproj
@@ -86,7 +86,7 @@
<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\3rdparty\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
</ClCompile>
@@ -98,13 +98,14 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
+ <Optimization>MinSpace</Optimization>
<SDLCheck>true</SDLCheck>
<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\3rdparty\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -130,15 +131,6 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\base64\base64.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\GLee\GLee.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\ogl\OpenGL.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\smount\dirent.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\smount\smount.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\stb\stb_image.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\stb\stb_truetype.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\tekcos\tekcos.h" />
- <ClInclude Include="..\..\..\src\libjin\3rdparty\wav\wav.h" />
<ClInclude Include="..\..\..\src\libjin\ai\je_behavior_tree.h" />
<ClInclude Include="..\..\..\src\libjin\ai\je_state_machine.h" />
<ClInclude Include="..\..\..\src\libjin\Audio\je_audio_manager.h" />
@@ -162,7 +154,7 @@
<ClInclude Include="..\..\..\src\libjin\Filesystem\je_buffer.h" />
<ClInclude Include="..\..\..\src\libjin\Filesystem\je_asset_database.h" />
<ClInclude Include="..\..\..\src\libjin\Game\je_entity.h" />
- <ClInclude Include="..\..\..\src\libjin\Game\je_game.h" />
+ <ClInclude Include="..\..\..\src\libjin\Game\je_application.h" />
<ClInclude Include="..\..\..\src\libjin\Game\je_game_object.h" />
<ClInclude Include="..\..\..\src\libjin\game\je_scene.h" />
<ClInclude Include="..\..\..\src\libjin\graphics\animation\je_animator.h" />
@@ -227,11 +219,6 @@
<None Include="..\..\..\src\libjin\README.md" />
</ItemGroup>
<ItemGroup>
- <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" />
- <ClCompile Include="..\..\..\src\libjin\3rdparty\tekcos\tekcos.c" />
- <ClCompile Include="..\..\..\src\libjin\3rdparty\wav\wav.c" />
<ClCompile Include="..\..\..\src\libjin\ai\je_behavior_tree.cpp" />
<ClCompile Include="..\..\..\src\libjin\ai\je_state_machine.cpp" />
<ClCompile Include="..\..\..\src\libjin\Audio\je_audio_manager.cpp" />
@@ -243,7 +230,7 @@
<ClCompile Include="..\..\..\src\libjin\Filesystem\je_asset_database.cpp" />
<ClCompile Include="..\..\..\src\libjin\Game\je_entity.cpp" />
<ClCompile Include="..\..\..\src\libjin\Game\je_game_object.cpp" />
- <ClCompile Include="..\..\..\src\libjin\Game\je_game.cpp" />
+ <ClCompile Include="..\..\..\src\libjin\Game\je_application.cpp" />
<ClCompile Include="..\..\..\src\libjin\Game\je_scene.cpp" />
<ClCompile Include="..\..\..\src\libjin\graphics\animation\je_animator.cpp" />
<ClCompile Include="..\..\..\src\libjin\graphics\animation\je_animation.cpp" />
@@ -283,6 +270,23 @@
<ClCompile Include="..\..\..\src\libjin\Utils\je_log.cpp" />
<ClCompile Include="..\..\..\src\libjin\Utils\je_unittest.cpp" />
</ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\3rdparty\GLee\GLee.vcxproj">
+ <Project>{8828f6b1-f167-4bc9-b7c7-7cc34cddee8a}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\3rdparty\smount\smount.vcxproj">
+ <Project>{3fc3e8b7-380e-41e6-91ff-82fa5e622d29}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\3rdparty\stb\stb.vcxproj">
+ <Project>{e9a7ecc9-1437-45a8-b970-e9e75bd1f8e0}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\3rdparty\tekcos\tekcos.vcxproj">
+ <Project>{b88dc691-fe8a-4c5e-8d57-ebcc6b13c744}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\3rdparty\wav\wav.vcxproj">
+ <Project>{9a0ead3f-5a23-41c8-8ffd-8f6b71f43342}</Project>
+ </ProjectReference>
+ </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
diff --git a/build/vc++/libjin/libjin.vcxproj.filters b/build/vc++/libjin/libjin.vcxproj.filters
index 7df2cf0..1a6a27b 100644
--- a/build/vc++/libjin/libjin.vcxproj.filters
+++ b/build/vc++/libjin/libjin.vcxproj.filters
@@ -4,30 +4,6 @@
<Filter Include="source">
<UniqueIdentifier>{708c6303-1b76-4db4-bac5-be6fa9179e98}</UniqueIdentifier>
</Filter>
- <Filter Include="source\3rdparty">
- <UniqueIdentifier>{3634a892-8e97-442c-b855-80a26dff2143}</UniqueIdentifier>
- </Filter>
- <Filter Include="source\3rdparty\GLee">
- <UniqueIdentifier>{230b5ce5-8893-4aed-8f96-576d5f0aa3a2}</UniqueIdentifier>
- </Filter>
- <Filter Include="source\3rdparty\stb">
- <UniqueIdentifier>{d3f9b98c-e18c-4603-be4a-40cf5270c8a0}</UniqueIdentifier>
- </Filter>
- <Filter Include="source\3rdparty\wav">
- <UniqueIdentifier>{6f4aa0ff-3d1b-40ff-8da9-ce7292ac83b2}</UniqueIdentifier>
- </Filter>
- <Filter Include="source\3rdparty\tekcos">
- <UniqueIdentifier>{06d4dd93-7a6d-4b9e-a841-c7f8fbccafe0}</UniqueIdentifier>
- </Filter>
- <Filter Include="source\3rdparty\smount">
- <UniqueIdentifier>{60deec03-f023-4417-a058-c955d23f01d4}</UniqueIdentifier>
- </Filter>
- <Filter Include="source\3rdparty\ogl2d">
- <UniqueIdentifier>{c582e534-7e96-484c-ae1b-a9e7962ab6c2}</UniqueIdentifier>
- </Filter>
- <Filter Include="source\3rdparty\base64">
- <UniqueIdentifier>{086e2fe7-2366-4d52-b059-212ada075da4}</UniqueIdentifier>
- </Filter>
<Filter Include="source\utils">
<UniqueIdentifier>{6259760f-501a-4b52-b9a1-4abb4d788a99}</UniqueIdentifier>
</Filter>
@@ -87,33 +63,9 @@
</Filter>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\GLee\GLee.h">
- <Filter>source\3rdparty\GLee</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\stb\stb_image.h">
- <Filter>source\3rdparty\stb</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\stb\stb_truetype.h">
- <Filter>source\3rdparty\stb</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\wav\wav.h">
- <Filter>source\3rdparty\wav</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\tekcos\tekcos.h">
- <Filter>source\3rdparty\tekcos</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\smount\dirent.h">
- <Filter>source\3rdparty\smount</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\smount\smount.h">
- <Filter>source\3rdparty\smount</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\libjin\jin.h">
<Filter>source</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\ogl\OpenGL.h">
- <Filter>source\3rdparty\ogl2d</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\libjin\Graphics\je_mesh.h">
<Filter>source\graphics</Filter>
</ClInclude>
@@ -225,9 +177,6 @@
<ClInclude Include="..\..\..\src\libjin\Input\je_event.h">
<Filter>source\input</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\src\libjin\Game\je_game.h">
- <Filter>source\game</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\libjin\Filesystem\je_buffer.h">
<Filter>source\filesystem</Filter>
</ClInclude>
@@ -264,9 +213,6 @@
<ClInclude Include="..\..\..\src\libjin\Audio\SDL\je_sdl_audio.h">
<Filter>source\audio\sdl</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\src\libjin\3rdparty\base64\base64.h">
- <Filter>source\3rdparty\base64</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\libjin\core\je_configuration.h">
<Filter>source\core</Filter>
</ClInclude>
@@ -357,6 +303,9 @@
<ClInclude Include="..\..\..\src\libjin\Graphics\Shader\shaders\je_texture.shader.h">
<Filter>source\graphics\shader\shaders</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\libjin\Game\je_application.h">
+ <Filter>source\game</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\src\libjin\README.md">
@@ -370,21 +319,6 @@
</None>
</ItemGroup>
<ItemGroup>
- <ClCompile Include="..\..\..\src\libjin\3rdparty\GLee\GLee.c">
- <Filter>source\3rdparty\GLee</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\src\libjin\3rdparty\stb\stb_vorbis.c">
- <Filter>source\3rdparty\stb</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\src\libjin\3rdparty\wav\wav.c">
- <Filter>source\3rdparty\wav</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\src\libjin\3rdparty\tekcos\tekcos.c">
- <Filter>source\3rdparty\tekcos</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\src\libjin\3rdparty\smount\smount.c">
- <Filter>source\3rdparty\smount</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\src\libjin\Graphics\je_mesh.cpp">
<Filter>source\graphics</Filter>
</ClCompile>
@@ -457,9 +391,6 @@
<ClCompile Include="..\..\..\src\libjin\Input\je_event.cpp">
<Filter>source\input</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\src\libjin\Game\je_game.cpp">
- <Filter>source\game</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\src\libjin\Common\je_exception.cpp">
<Filter>source\common</Filter>
</ClCompile>
@@ -535,5 +466,8 @@
<ClCompile Include="..\..\..\src\libjin\Graphics\je_graphic_sheet.cpp">
<Filter>source\graphics</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\src\libjin\Game\je_application.cpp">
+ <Filter>source\game</Filter>
+ </ClCompile>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/res/font.png b/res/font.png
index f3259f5..9185093 100644
--- a/res/font.png
+++ b/res/font.png
Binary files differ
diff --git a/src/libjin/3rdparty/GLee/GLee.c b/src/3rdparty/GLee/GLee.c
index 0f32273..0f32273 100644
--- a/src/libjin/3rdparty/GLee/GLee.c
+++ b/src/3rdparty/GLee/GLee.c
diff --git a/src/libjin/3rdparty/GLee/GLee.h b/src/3rdparty/GLee/GLee.h
index 1e9a297..1e9a297 100644
--- a/src/libjin/3rdparty/GLee/GLee.h
+++ b/src/3rdparty/GLee/GLee.h
diff --git a/src/3rdparty/ogl/OpenGL.h b/src/3rdparty/ogl/OpenGL.h
new file mode 100644
index 0000000..04043fe
--- /dev/null
+++ b/src/3rdparty/ogl/OpenGL.h
@@ -0,0 +1,178 @@
+#ifndef __OGL2D_H
+#define __OGL2D_H
+#include <vector>
+
+/* include gl.h before this file */
+namespace ogl2d
+{
+ /* 2d wrap of opengl 3.0 */
+ class OpenGL
+ {
+ public:
+ OpenGL();
+ ~OpenGL();
+
+ inline void enable(GLenum cap)
+ {
+ glEnable(cap);
+ }
+
+ inline void disable(GLenum cap)
+ {
+ glDisable(cap);
+ }
+
+ inline void setBlendFunc(GLenum sfactor, GLenum dfactor)
+ {
+ glBlendFunc(sfactor, dfactor);
+ }
+
+ inline void setClearColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a)
+ {
+ glClearColor(r / 255.f, g / 255.f, b / 255.f, a / 255.f);
+ }
+
+ void pushColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a = 255);
+ void popColor();
+ void flushError();
+ GLuint genTexture();
+ void bindTexture(GLuint texture = 0);
+ inline GLuint curTexture()
+ {
+ return _texture;
+ }
+ void setTexParameter(GLenum pname, GLint param);
+ void texImage(GLint internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels = NULL);
+ void texSubImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+ void activeTexUnit(unsigned int unit = 0);
+
+ inline void drawArrays(GLenum mode, GLint first, GLsizei count)
+ {
+ glDrawArrays(mode, first, count);
+ }
+
+ inline void drawBuffer(GLenum mode)
+ {
+
+ }
+
+ inline void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
+ {
+
+ }
+
+ inline void enableClientState(GLenum arr)
+ {
+ glEnableClientState(arr);
+ }
+
+ inline void disableClientState(GLenum arr)
+ {
+ glDisableClientState(arr);
+ }
+
+ inline GLuint genFrameBuffer()
+ {
+ GLuint fbo;
+ glGenFramebuffers(1, &fbo);
+ return fbo;
+ }
+
+ inline void bindFrameBuffer(GLuint fbo)
+ {
+ glBindFramebuffer(GL_FRAMEBUFFER, fbo);
+ }
+
+ // Ļһ
+ inline void ortho(int w, float radio)
+ {
+ glOrtho(0, w, w*radio, 0, -1, 1);
+ }
+
+ inline void orthox(int w, int h)
+ {
+ glOrtho(0, w, h, 0, -1, 1);
+ }
+
+ protected:
+ struct { GLubyte r, g, b, a; } _color; // current draw color
+ struct { GLubyte r, g, b, a; } _precolor; // previous draw color
+ GLuint _texture; // current binded texture
+
+ };
+
+ ///* OpenGL instance singleton */
+ extern OpenGL gl;
+
+#if defined(OGL2D_IMPLEMENT)
+
+ OpenGL gl;
+
+ OpenGL::OpenGL()
+ {
+ memset(&_color, 0xff, sizeof(_color));
+ memset(&_precolor, 0xff, sizeof(_precolor));
+ }
+
+ OpenGL::~OpenGL()
+ {
+ }
+
+ void OpenGL::pushColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a)
+ {
+ memcpy(&_precolor, &_color, sizeof(_precolor));
+ _color.r = r;
+ _color.g = g;
+ _color.b = b;
+ _color.a = a;
+ glColor4ub(r, g, b, a);
+ }
+
+ void OpenGL::popColor()
+ {
+ memcpy(&_color, &_precolor, sizeof(_precolor));
+ glColor4ub(_color.r, _color.g, _color.b, _color.a);
+ }
+
+ void OpenGL::flushError()
+ {
+ while (glGetError() != GL_NO_ERROR);
+ }
+
+ GLuint OpenGL::genTexture()
+ {
+ GLuint t;
+ glGenTextures(1, &t);
+ return t;
+ }
+
+ void OpenGL::bindTexture(GLuint texture)
+ {
+ glBindTexture(GL_TEXTURE_2D, texture);
+ }
+
+ void OpenGL::setTexParameter(GLenum pname, GLint param)
+ {
+ glTexParameteri(GL_TEXTURE_2D, pname, param);
+ }
+
+ void OpenGL::texImage(GLint internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
+ {
+ glTexImage2D(GL_TEXTURE_2D, 0, internalformat, width, height, 0, format, type, pixels);
+ }
+
+ void OpenGL::texSubImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
+ {
+ glTexSubImage2D(GL_TEXTURE_2D, 0, xoffset, yoffset, width, height, format, type, pixels);
+ }
+
+ void OpenGL::activeTexUnit(unsigned int unit)
+ {
+ // glActiveTexture selects which texture unit subsequent texture state calls will affect.
+ glActiveTexture(GL_TEXTURE0 + unit);
+ }
+
+#endif // OGL2D_IMPLEMENT
+}
+
+#endif \ No newline at end of file
diff --git a/src/libjin/3rdparty/smount/dirent.h b/src/3rdparty/smount/dirent.h
index 832b164..832b164 100644
--- a/src/libjin/3rdparty/smount/dirent.h
+++ b/src/3rdparty/smount/dirent.h
diff --git a/src/libjin/3rdparty/smount/smount.c b/src/3rdparty/smount/smount.c
index 6214800..6214800 100644
--- a/src/libjin/3rdparty/smount/smount.c
+++ b/src/3rdparty/smount/smount.c
diff --git a/src/libjin/3rdparty/smount/smount.h b/src/3rdparty/smount/smount.h
index 0f8f774..0f8f774 100644
--- a/src/libjin/3rdparty/smount/smount.h
+++ b/src/3rdparty/smount/smount.h
diff --git a/src/libjin/3rdparty/stb/stb_image.h b/src/3rdparty/stb/stb_image.h
index 4df317a..4df317a 100644
--- a/src/libjin/3rdparty/stb/stb_image.h
+++ b/src/3rdparty/stb/stb_image.h
diff --git a/src/libjin/3rdparty/stb/stb_truetype.h b/src/3rdparty/stb/stb_truetype.h
index 927ee21..927ee21 100644
--- a/src/libjin/3rdparty/stb/stb_truetype.h
+++ b/src/3rdparty/stb/stb_truetype.h
diff --git a/src/libjin/3rdparty/stb/stb_vorbis.c b/src/3rdparty/stb/stb_vorbis.c
index a863042..a863042 100644
--- a/src/libjin/3rdparty/stb/stb_vorbis.c
+++ b/src/3rdparty/stb/stb_vorbis.c
diff --git a/src/libjin/3rdparty/tekcos/README b/src/3rdparty/tekcos/README
index fe5ede1..fe5ede1 100644
--- a/src/libjin/3rdparty/tekcos/README
+++ b/src/3rdparty/tekcos/README
diff --git a/src/libjin/3rdparty/tekcos/tekcos.c b/src/3rdparty/tekcos/tekcos.c
index e2b7e5c..e2b7e5c 100644
--- a/src/libjin/3rdparty/tekcos/tekcos.c
+++ b/src/3rdparty/tekcos/tekcos.c
diff --git a/src/libjin/3rdparty/tekcos/tekcos.h b/src/3rdparty/tekcos/tekcos.h
index cddc8f3..cddc8f3 100644
--- a/src/libjin/3rdparty/tekcos/tekcos.h
+++ b/src/3rdparty/tekcos/tekcos.h
diff --git a/src/libjin/3rdparty/wav/wav.c b/src/3rdparty/wav/wav.c
index 6f9b2ab..6f9b2ab 100644
--- a/src/libjin/3rdparty/wav/wav.c
+++ b/src/3rdparty/wav/wav.c
diff --git a/src/libjin/3rdparty/wav/wav.h b/src/3rdparty/wav/wav.h
index c12cd5d..c12cd5d 100644
--- a/src/libjin/3rdparty/wav/wav.h
+++ b/src/3rdparty/wav/wav.h
diff --git a/src/libjin/3rdparty/base64/base64.h b/src/libjin/3rdparty/base64/base64.h
deleted file mode 100644
index 2519797..0000000
--- a/src/libjin/3rdparty/base64/base64.h
+++ /dev/null
@@ -1,186 +0,0 @@
-#ifndef BASE64_H
-#define BASE64_H
-
-#define BASE64_ENCODE_OUT_SIZE(s) ((unsigned int)((((s) + 2) / 3) * 4 + 1))
-#define BASE64_DECODE_OUT_SIZE(s) ((unsigned int)(((s) / 4) * 3))
-
-/*
-* out is null-terminated encode string.
-* return values is out length, exclusive terminating `\0'
-*/
-unsigned int
-base64_encode(const unsigned char *in, unsigned int inlen, char *out);
-
-/*
-* return values is out length
-*/
-unsigned int
-base64_decode(const char *in, unsigned int inlen, unsigned char *out);
-
-#endif /* BASE64_H */
-
-#ifdef BASE64_IMPLEMENT
-
-/* This is a public domain base64 implementation written by WEI Zhicheng. */
-
-#define BASE64_PAD '='
-
-/* BASE 64 encode table */
-static const char base64en[] = {
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
- 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
- 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
- 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
- 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
- 'w', 'x', 'y', 'z', '0', '1', '2', '3',
- '4', '5', '6', '7', '8', '9', '+', '/',
-};
-
-/* ASCII order for BASE 64 decode, 255 in unused character */
-static const unsigned char base64de[] = {
- /* nul, soh, stx, etx, eot, enq, ack, bel, */
- 255, 255, 255, 255, 255, 255, 255, 255,
-
- /* bs, ht, nl, vt, np, cr, so, si, */
- 255, 255, 255, 255, 255, 255, 255, 255,
-
- /* dle, dc1, dc2, dc3, dc4, nak, syn, etb, */
- 255, 255, 255, 255, 255, 255, 255, 255,
-
- /* can, em, sub, esc, fs, gs, rs, us, */
- 255, 255, 255, 255, 255, 255, 255, 255,
-
- /* sp, '!', '"', '#', '$', '%', '&', ''', */
- 255, 255, 255, 255, 255, 255, 255, 255,
-
- /* '(', ')', '*', '+', ',', '-', '.', '/', */
- 255, 255, 255, 62, 255, 255, 255, 63,
-
- /* '0', '1', '2', '3', '4', '5', '6', '7', */
- 52, 53, 54, 55, 56, 57, 58, 59,
-
- /* '8', '9', ':', ';', '<', '=', '>', '?', */
- 60, 61, 255, 255, 255, 255, 255, 255,
-
- /* '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', */
- 255, 0, 1, 2, 3, 4, 5, 6,
-
- /* 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', */
- 7, 8, 9, 10, 11, 12, 13, 14,
-
- /* 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', */
- 15, 16, 17, 18, 19, 20, 21, 22,
-
- /* 'X', 'Y', 'Z', '[', '\', ']', '^', '_', */
- 23, 24, 25, 255, 255, 255, 255, 255,
-
- /* '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', */
- 255, 26, 27, 28, 29, 30, 31, 32,
-
- /* 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', */
- 33, 34, 35, 36, 37, 38, 39, 40,
-
- /* 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', */
- 41, 42, 43, 44, 45, 46, 47, 48,
-
- /* 'x', 'y', 'z', '{', '|', '}', '~', del, */
- 49, 50, 51, 255, 255, 255, 255, 255
-};
-
-unsigned int
-base64_encode(const unsigned char *in, unsigned int inlen, char *out)
-{
- int s;
- unsigned int i;
- unsigned int j;
- unsigned char c;
- unsigned char l;
-
- s = 0;
- l = 0;
- for (i = j = 0; i < inlen; i++) {
- c = in[i];
-
- switch (s) {
- case 0:
- s = 1;
- out[j++] = base64en[(c >> 2) & 0x3F];
- break;
- case 1:
- s = 2;
- out[j++] = base64en[((l & 0x3) << 4) | ((c >> 4) & 0xF)];
- break;
- case 2:
- s = 0;
- out[j++] = base64en[((l & 0xF) << 2) | ((c >> 6) & 0x3)];
- out[j++] = base64en[c & 0x3F];
- break;
- }
- l = c;
- }
-
- switch (s) {
- case 1:
- out[j++] = base64en[(l & 0x3) << 4];
- out[j++] = BASE64_PAD;
- out[j++] = BASE64_PAD;
- break;
- case 2:
- out[j++] = base64en[(l & 0xF) << 2];
- out[j++] = BASE64_PAD;
- break;
- }
-
- out[j] = 0;
-
- return j;
-}
-
-unsigned int
-base64_decode(const char *in, unsigned int inlen, unsigned char *out)
-{
- unsigned int i;
- unsigned int j;
- unsigned char c;
-
- if (inlen & 0x3) {
- return 0;
- }
-
- for (i = j = 0; i < inlen; i++) {
- if (in[i] == BASE64_PAD) {
- break;
- }
- if (in[i] < 0) {
- return 0;
- }
-
- c = base64de[in[i]];
- if (c == 255) {
- return 0;
- }
-
- switch (i & 0x3) {
- case 0:
- out[j] = (c << 2) & 0xFF;
- break;
- case 1:
- out[j++] |= (c >> 4) & 0x3;
- out[j] = (c & 0xF) << 4;
- break;
- case 2:
- out[j++] |= (c >> 2) & 0xF;
- out[j] = (c & 0x3) << 6;
- break;
- case 3:
- out[j++] |= c;
- break;
- }
- }
- out[j] = '\0';
-
- return j;
-}
-
-#endif
diff --git a/src/libjin/3rdparty/ogl/OpenGL.h b/src/libjin/3rdparty/ogl/OpenGL.h
deleted file mode 100644
index 3984b49..0000000
--- a/src/libjin/3rdparty/ogl/OpenGL.h
+++ /dev/null
@@ -1,520 +0,0 @@
-#ifndef __OGL2D_H
-#define __OGL2D_H
-#include <vector>
-
-/* include gl.h before this file */
-namespace ogl2d
-{
- /* 2d wrap of opengl 3.0 */
- class OpenGL
- {
- public:
- OpenGL();
- ~OpenGL();
-
- inline void enable(GLenum cap)
- {
- glEnable(cap);
- }
-
- inline void disable(GLenum cap)
- {
- glDisable(cap);
- }
-
- inline void setBlendFunc(GLenum sfactor, GLenum dfactor)
- {
- glBlendFunc(sfactor, dfactor);
- }
-
- inline void setClearColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a)
- {
- glClearColor(r / 255.f, g / 255.f, b / 255.f, a / 255.f);
- }
-
- void pushColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a = 255);
- void popColor();
- void flushError();
- GLuint genTexture();
- void bindTexture(GLuint texture = 0);
- inline GLuint curTexture()
- {
- return _texture;
- }
- void setTexParameter(GLenum pname, GLint param);
- void texImage(GLint internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels = NULL);
- void texSubImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
- void activeTexUnit(unsigned int unit = 0);
-
- inline void drawArrays(GLenum mode, GLint first, GLsizei count)
- {
- glDrawArrays(mode, first, count);
- }
-
- inline void drawBuffer(GLenum mode)
- {
-
- }
-
- inline void drawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
- {
-
- }
-
- inline void enableClientState(GLenum arr)
- {
- glEnableClientState(arr);
- }
-
- inline void disableClientState(GLenum arr)
- {
- glDisableClientState(arr);
- }
-
- inline GLuint genFrameBuffer()
- {
- GLuint fbo;
- glGenFramebuffers(1, &fbo);
- return fbo;
- }
-
- inline void bindFrameBuffer(GLuint fbo)
- {
- glBindFramebuffer(GL_FRAMEBUFFER, fbo);
- }
-
- // Ļһ
- inline void ortho(int w, float radio)
- {
- glOrtho(0, w, w*radio, 0, -1, 1);
- }
-
- inline void orthox(int w, int h)
- {
- glOrtho(0, w, h, 0, -1, 1);
- }
-
- protected:
- struct { GLubyte r, g, b, a; } _color; // current draw color
- struct { GLubyte r, g, b, a; } _precolor; // previous draw color
- GLuint _texture; // current binded texture
-
- };
-
- ///* OpenGL instance singleton */
- extern OpenGL gl;
-
-#if defined(OGL2D_IMPLEMENT)
-
- OpenGL gl;
-
- OpenGL::OpenGL()
- {
- memset(&_color, 0xff, sizeof(_color));
- memset(&_precolor, 0xff, sizeof(_precolor));
- }
-
- OpenGL::~OpenGL()
- {
- }
-
- void OpenGL::pushColor(GLubyte r, GLubyte g, GLubyte b, GLubyte a)
- {
- memcpy(&_precolor, &_color, sizeof(_precolor));
- _color.r = r;
- _color.g = g;
- _color.b = b;
- _color.a = a;
- glColor4ub(r, g, b, a);
- }
-
- void OpenGL::popColor()
- {
- memcpy(&_color, &_precolor, sizeof(_precolor));
- glColor4ub(_color.r, _color.g, _color.b, _color.a);
- }
-
- void OpenGL::flushError()
- {
- while (glGetError() != GL_NO_ERROR);
- }
-
- GLuint OpenGL::genTexture()
- {
- GLuint t;
- glGenTextures(1, &t);
- return t;
- }
-
- void OpenGL::bindTexture(GLuint texture)
- {
- glBindTexture(GL_TEXTURE_2D, texture);
- }
-
- void OpenGL::setTexParameter(GLenum pname, GLint param)
- {
- glTexParameteri(GL_TEXTURE_2D, pname, param);
- }
-
- void OpenGL::texImage(GLint internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
- {
- glTexImage2D(GL_TEXTURE_2D, 0, internalformat, width, height, 0, format, type, pixels);
- }
-
- void OpenGL::texSubImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
- {
- glTexSubImage2D(GL_TEXTURE_2D, 0, xoffset, yoffset, width, height, format, type, pixels);
- }
-
- void OpenGL::activeTexUnit(unsigned int unit)
- {
- // glActiveTexture selects which texture unit subsequent texture state calls will affect.
- glActiveTexture(GL_TEXTURE0 + unit);
- }
-
-#endif // OGL2D_IMPLEMENT
-}
-
-#endif
-
-
-/* GL.h
-
-WINGDIAPI void APIENTRY glAccum(GLenum op, GLfloat value);
-WINGDIAPI void APIENTRY glAlphaFunc(GLenum func, GLclampf ref);
-WINGDIAPI GLboolean APIENTRY glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences);
-WINGDIAPI void APIENTRY glArrayElement(GLint i);
-WINGDIAPI void APIENTRY glBegin(GLenum mode);
-WINGDIAPI void APIENTRY glBindTexture(GLenum target, GLuint texture);
-WINGDIAPI void APIENTRY glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
-WINGDIAPI void APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor);
-WINGDIAPI void APIENTRY glCallList(GLuint list);
-WINGDIAPI void APIENTRY glCallLists(GLsizei n, GLenum type, const GLvoid *lists);
-WINGDIAPI void APIENTRY glClear(GLbitfield mask);
-WINGDIAPI void APIENTRY glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-WINGDIAPI void APIENTRY glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-WINGDIAPI void APIENTRY glClearDepth(GLclampd depth);
-WINGDIAPI void APIENTRY glClearIndex(GLfloat c);
-WINGDIAPI void APIENTRY glClearStencil(GLint s);
-WINGDIAPI void APIENTRY glClipPlane(GLenum plane, const GLdouble *equation);
-WINGDIAPI void APIENTRY glColor3b(GLbyte red, GLbyte green, GLbyte blue);
-WINGDIAPI void APIENTRY glColor3bv(const GLbyte *v);
-WINGDIAPI void APIENTRY glColor3d(GLdouble red, GLdouble green, GLdouble blue);
-WINGDIAPI void APIENTRY glColor3dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glColor3f(GLfloat red, GLfloat green, GLfloat blue);
-WINGDIAPI void APIENTRY glColor3fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glColor3i(GLint red, GLint green, GLint blue);
-WINGDIAPI void APIENTRY glColor3iv(const GLint *v);
-WINGDIAPI void APIENTRY glColor3s(GLshort red, GLshort green, GLshort blue);
-WINGDIAPI void APIENTRY glColor3sv(const GLshort *v);
-WINGDIAPI void APIENTRY glColor3ub(GLubyte red, GLubyte green, GLubyte blue);
-WINGDIAPI void APIENTRY glColor3ubv(const GLubyte *v);
-WINGDIAPI void APIENTRY glColor3ui(GLuint red, GLuint green, GLuint blue);
-WINGDIAPI void APIENTRY glColor3uiv(const GLuint *v);
-WINGDIAPI void APIENTRY glColor3us(GLushort red, GLushort green, GLushort blue);
-WINGDIAPI void APIENTRY glColor3usv(const GLushort *v);
-WINGDIAPI void APIENTRY glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
-WINGDIAPI void APIENTRY glColor4bv(const GLbyte *v);
-WINGDIAPI void APIENTRY glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
-WINGDIAPI void APIENTRY glColor4dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-WINGDIAPI void APIENTRY glColor4fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glColor4i(GLint red, GLint green, GLint blue, GLint alpha);
-WINGDIAPI void APIENTRY glColor4iv(const GLint *v);
-WINGDIAPI void APIENTRY glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha);
-WINGDIAPI void APIENTRY glColor4sv(const GLshort *v);
-WINGDIAPI void APIENTRY glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-WINGDIAPI void APIENTRY glColor4ubv(const GLubyte *v);
-WINGDIAPI void APIENTRY glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha);
-WINGDIAPI void APIENTRY glColor4uiv(const GLuint *v);
-WINGDIAPI void APIENTRY glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha);
-WINGDIAPI void APIENTRY glColor4usv(const GLushort *v);
-WINGDIAPI void APIENTRY glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-WINGDIAPI void APIENTRY glColorMaterial(GLenum face, GLenum mode);
-WINGDIAPI void APIENTRY glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-WINGDIAPI void APIENTRY glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
-WINGDIAPI void APIENTRY glCopyTexImage1D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
-WINGDIAPI void APIENTRY glCopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-WINGDIAPI void APIENTRY glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-WINGDIAPI void APIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-WINGDIAPI void APIENTRY glCullFace(GLenum mode);
-WINGDIAPI void APIENTRY glDeleteLists(GLuint list, GLsizei range);
-WINGDIAPI void APIENTRY glDeleteTextures(GLsizei n, const GLuint *textures);
-WINGDIAPI void APIENTRY glDepthFunc(GLenum func);
-WINGDIAPI void APIENTRY glDepthMask(GLboolean flag);
-WINGDIAPI void APIENTRY glDepthRange(GLclampd zNear, GLclampd zFar);
-WINGDIAPI void APIENTRY glDisable(GLenum cap);
-WINGDIAPI void APIENTRY glDisableClientState(GLenum array);
-WINGDIAPI void APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count);
-WINGDIAPI void APIENTRY glDrawBuffer(GLenum mode);
-WINGDIAPI void APIENTRY glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
-WINGDIAPI void APIENTRY glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-WINGDIAPI void APIENTRY glEdgeFlag(GLboolean flag);
-WINGDIAPI void APIENTRY glEdgeFlagPointer(GLsizei stride, const GLvoid *pointer);
-WINGDIAPI void APIENTRY glEdgeFlagv(const GLboolean *flag);
-WINGDIAPI void APIENTRY glEnable(GLenum cap);
-WINGDIAPI void APIENTRY glEnableClientState(GLenum array);
-WINGDIAPI void APIENTRY glEnd(void);
-WINGDIAPI void APIENTRY glEndList(void);
-WINGDIAPI void APIENTRY glEvalCoord1d(GLdouble u);
-WINGDIAPI void APIENTRY glEvalCoord1dv(const GLdouble *u);
-WINGDIAPI void APIENTRY glEvalCoord1f(GLfloat u);
-WINGDIAPI void APIENTRY glEvalCoord1fv(const GLfloat *u);
-WINGDIAPI void APIENTRY glEvalCoord2d(GLdouble u, GLdouble v);
-WINGDIAPI void APIENTRY glEvalCoord2dv(const GLdouble *u);
-WINGDIAPI void APIENTRY glEvalCoord2f(GLfloat u, GLfloat v);
-WINGDIAPI void APIENTRY glEvalCoord2fv(const GLfloat *u);
-WINGDIAPI void APIENTRY glEvalMesh1(GLenum mode, GLint i1, GLint i2);
-WINGDIAPI void APIENTRY glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
-WINGDIAPI void APIENTRY glEvalPoint1(GLint i);
-WINGDIAPI void APIENTRY glEvalPoint2(GLint i, GLint j);
-WINGDIAPI void APIENTRY glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer);
-WINGDIAPI void APIENTRY glFinish(void);
-WINGDIAPI void APIENTRY glFlush(void);
-WINGDIAPI void APIENTRY glFogf(GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glFogfv(GLenum pname, const GLfloat *params);
-WINGDIAPI void APIENTRY glFogi(GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glFogiv(GLenum pname, const GLint *params);
-WINGDIAPI void APIENTRY glFrontFace(GLenum mode);
-WINGDIAPI void APIENTRY glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-WINGDIAPI GLuint APIENTRY glGenLists(GLsizei range);
-WINGDIAPI void APIENTRY glGenTextures(GLsizei n, GLuint *textures);
-WINGDIAPI void APIENTRY glGetBooleanv(GLenum pname, GLboolean *params);
-WINGDIAPI void APIENTRY glGetClipPlane(GLenum plane, GLdouble *equation);
-WINGDIAPI void APIENTRY glGetDoublev(GLenum pname, GLdouble *params);
-WINGDIAPI GLenum APIENTRY glGetError(void);
-WINGDIAPI void APIENTRY glGetFloatv(GLenum pname, GLfloat *params);
-WINGDIAPI void APIENTRY glGetIntegerv(GLenum pname, GLint *params);
-WINGDIAPI void APIENTRY glGetLightfv(GLenum light, GLenum pname, GLfloat *params);
-WINGDIAPI void APIENTRY glGetLightiv(GLenum light, GLenum pname, GLint *params);
-WINGDIAPI void APIENTRY glGetMapdv(GLenum target, GLenum query, GLdouble *v);
-WINGDIAPI void APIENTRY glGetMapfv(GLenum target, GLenum query, GLfloat *v);
-WINGDIAPI void APIENTRY glGetMapiv(GLenum target, GLenum query, GLint *v);
-WINGDIAPI void APIENTRY glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
-WINGDIAPI void APIENTRY glGetMaterialiv(GLenum face, GLenum pname, GLint *params);
-WINGDIAPI void APIENTRY glGetPixelMapfv(GLenum map, GLfloat *values);
-WINGDIAPI void APIENTRY glGetPixelMapuiv(GLenum map, GLuint *values);
-WINGDIAPI void APIENTRY glGetPixelMapusv(GLenum map, GLushort *values);
-WINGDIAPI void APIENTRY glGetPointerv(GLenum pname, GLvoid* *params);
-WINGDIAPI void APIENTRY glGetPolygonStipple(GLubyte *mask);
-WINGDIAPI const GLubyte * APIENTRY glGetString(GLenum name);
-WINGDIAPI void APIENTRY glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
-WINGDIAPI void APIENTRY glGetTexEnviv(GLenum target, GLenum pname, GLint *params);
-WINGDIAPI void APIENTRY glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params);
-WINGDIAPI void APIENTRY glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
-WINGDIAPI void APIENTRY glGetTexGeniv(GLenum coord, GLenum pname, GLint *params);
-WINGDIAPI void APIENTRY glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
-WINGDIAPI void APIENTRY glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
-WINGDIAPI void APIENTRY glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
-WINGDIAPI void APIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
-WINGDIAPI void APIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
-WINGDIAPI void APIENTRY glHint(GLenum target, GLenum mode);
-WINGDIAPI void APIENTRY glIndexMask(GLuint mask);
-WINGDIAPI void APIENTRY glIndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
-WINGDIAPI void APIENTRY glIndexd(GLdouble c);
-WINGDIAPI void APIENTRY glIndexdv(const GLdouble *c);
-WINGDIAPI void APIENTRY glIndexf(GLfloat c);
-WINGDIAPI void APIENTRY glIndexfv(const GLfloat *c);
-WINGDIAPI void APIENTRY glIndexi(GLint c);
-WINGDIAPI void APIENTRY glIndexiv(const GLint *c);
-WINGDIAPI void APIENTRY glIndexs(GLshort c);
-WINGDIAPI void APIENTRY glIndexsv(const GLshort *c);
-WINGDIAPI void APIENTRY glIndexub(GLubyte c);
-WINGDIAPI void APIENTRY glIndexubv(const GLubyte *c);
-WINGDIAPI void APIENTRY glInitNames(void);
-WINGDIAPI void APIENTRY glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer);
-WINGDIAPI GLboolean APIENTRY glIsEnabled(GLenum cap);
-WINGDIAPI GLboolean APIENTRY glIsList(GLuint list);
-WINGDIAPI GLboolean APIENTRY glIsTexture(GLuint texture);
-WINGDIAPI void APIENTRY glLightModelf(GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glLightModelfv(GLenum pname, const GLfloat *params);
-WINGDIAPI void APIENTRY glLightModeli(GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glLightModeliv(GLenum pname, const GLint *params);
-WINGDIAPI void APIENTRY glLightf(GLenum light, GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glLightfv(GLenum light, GLenum pname, const GLfloat *params);
-WINGDIAPI void APIENTRY glLighti(GLenum light, GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glLightiv(GLenum light, GLenum pname, const GLint *params);
-WINGDIAPI void APIENTRY glLineStipple(GLint factor, GLushort pattern);
-WINGDIAPI void APIENTRY glLineWidth(GLfloat width);
-WINGDIAPI void APIENTRY glListBase(GLuint base);
-WINGDIAPI void APIENTRY glLoadIdentity(void);
-WINGDIAPI void APIENTRY glLoadMatrixd(const GLdouble *m);
-WINGDIAPI void APIENTRY glLoadMatrixf(const GLfloat *m);
-WINGDIAPI void APIENTRY glLoadName(GLuint name);
-WINGDIAPI void APIENTRY glLogicOp(GLenum opcode);
-WINGDIAPI void APIENTRY glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
-WINGDIAPI void APIENTRY glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
-WINGDIAPI void APIENTRY glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
-WINGDIAPI void APIENTRY glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
-WINGDIAPI void APIENTRY glMapGrid1d(GLint un, GLdouble u1, GLdouble u2);
-WINGDIAPI void APIENTRY glMapGrid1f(GLint un, GLfloat u1, GLfloat u2);
-WINGDIAPI void APIENTRY glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
-WINGDIAPI void APIENTRY glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
-WINGDIAPI void APIENTRY glMaterialf(GLenum face, GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glMaterialfv(GLenum face, GLenum pname, const GLfloat *params);
-WINGDIAPI void APIENTRY glMateriali(GLenum face, GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glMaterialiv(GLenum face, GLenum pname, const GLint *params);
-WINGDIAPI void APIENTRY glMatrixMode(GLenum mode);
-WINGDIAPI void APIENTRY glMultMatrixd(const GLdouble *m);
-WINGDIAPI void APIENTRY glMultMatrixf(const GLfloat *m);
-WINGDIAPI void APIENTRY glNewList(GLuint list, GLenum mode);
-WINGDIAPI void APIENTRY glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz);
-WINGDIAPI void APIENTRY glNormal3bv(const GLbyte *v);
-WINGDIAPI void APIENTRY glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz);
-WINGDIAPI void APIENTRY glNormal3dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
-WINGDIAPI void APIENTRY glNormal3fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glNormal3i(GLint nx, GLint ny, GLint nz);
-WINGDIAPI void APIENTRY glNormal3iv(const GLint *v);
-WINGDIAPI void APIENTRY glNormal3s(GLshort nx, GLshort ny, GLshort nz);
-WINGDIAPI void APIENTRY glNormal3sv(const GLshort *v);
-WINGDIAPI void APIENTRY glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
-WINGDIAPI void APIENTRY glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-WINGDIAPI void APIENTRY glPassThrough(GLfloat token);
-WINGDIAPI void APIENTRY glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values);
-WINGDIAPI void APIENTRY glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values);
-WINGDIAPI void APIENTRY glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values);
-WINGDIAPI void APIENTRY glPixelStoref(GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glPixelStorei(GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glPixelTransferf(GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glPixelTransferi(GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glPixelZoom(GLfloat xfactor, GLfloat yfactor);
-WINGDIAPI void APIENTRY glPointSize(GLfloat size);
-WINGDIAPI void APIENTRY glPolygonMode(GLenum face, GLenum mode);
-WINGDIAPI void APIENTRY glPolygonOffset(GLfloat factor, GLfloat units);
-WINGDIAPI void APIENTRY glPolygonStipple(const GLubyte *mask);
-WINGDIAPI void APIENTRY glPopAttrib(void);
-WINGDIAPI void APIENTRY glPopClientAttrib(void);
-WINGDIAPI void APIENTRY glPopMatrix(void);
-WINGDIAPI void APIENTRY glPopName(void);
-WINGDIAPI void APIENTRY glPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities);
-WINGDIAPI void APIENTRY glPushAttrib(GLbitfield mask);
-WINGDIAPI void APIENTRY glPushClientAttrib(GLbitfield mask);
-WINGDIAPI void APIENTRY glPushMatrix(void);
-WINGDIAPI void APIENTRY glPushName(GLuint name);
-WINGDIAPI void APIENTRY glRasterPos2d(GLdouble x, GLdouble y);
-WINGDIAPI void APIENTRY glRasterPos2dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glRasterPos2f(GLfloat x, GLfloat y);
-WINGDIAPI void APIENTRY glRasterPos2fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glRasterPos2i(GLint x, GLint y);
-WINGDIAPI void APIENTRY glRasterPos2iv(const GLint *v);
-WINGDIAPI void APIENTRY glRasterPos2s(GLshort x, GLshort y);
-WINGDIAPI void APIENTRY glRasterPos2sv(const GLshort *v);
-WINGDIAPI void APIENTRY glRasterPos3d(GLdouble x, GLdouble y, GLdouble z);
-WINGDIAPI void APIENTRY glRasterPos3dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glRasterPos3f(GLfloat x, GLfloat y, GLfloat z);
-WINGDIAPI void APIENTRY glRasterPos3fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glRasterPos3i(GLint x, GLint y, GLint z);
-WINGDIAPI void APIENTRY glRasterPos3iv(const GLint *v);
-WINGDIAPI void APIENTRY glRasterPos3s(GLshort x, GLshort y, GLshort z);
-WINGDIAPI void APIENTRY glRasterPos3sv(const GLshort *v);
-WINGDIAPI void APIENTRY glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-WINGDIAPI void APIENTRY glRasterPos4dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-WINGDIAPI void APIENTRY glRasterPos4fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glRasterPos4i(GLint x, GLint y, GLint z, GLint w);
-WINGDIAPI void APIENTRY glRasterPos4iv(const GLint *v);
-WINGDIAPI void APIENTRY glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w);
-WINGDIAPI void APIENTRY glRasterPos4sv(const GLshort *v);
-WINGDIAPI void APIENTRY glReadBuffer(GLenum mode);
-WINGDIAPI void APIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-WINGDIAPI void APIENTRY glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
-WINGDIAPI void APIENTRY glRectdv(const GLdouble *v1, const GLdouble *v2);
-WINGDIAPI void APIENTRY glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
-WINGDIAPI void APIENTRY glRectfv(const GLfloat *v1, const GLfloat *v2);
-WINGDIAPI void APIENTRY glRecti(GLint x1, GLint y1, GLint x2, GLint y2);
-WINGDIAPI void APIENTRY glRectiv(const GLint *v1, const GLint *v2);
-WINGDIAPI void APIENTRY glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
-WINGDIAPI void APIENTRY glRectsv(const GLshort *v1, const GLshort *v2);
-WINGDIAPI GLint APIENTRY glRenderMode(GLenum mode);
-WINGDIAPI void APIENTRY glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
-WINGDIAPI void APIENTRY glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-WINGDIAPI void APIENTRY glScaled(GLdouble x, GLdouble y, GLdouble z);
-WINGDIAPI void APIENTRY glScalef(GLfloat x, GLfloat y, GLfloat z);
-WINGDIAPI void APIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
-WINGDIAPI void APIENTRY glSelectBuffer(GLsizei size, GLuint *buffer);
-WINGDIAPI void APIENTRY glShadeModel(GLenum mode);
-WINGDIAPI void APIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask);
-WINGDIAPI void APIENTRY glStencilMask(GLuint mask);
-WINGDIAPI void APIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
-WINGDIAPI void APIENTRY glTexCoord1d(GLdouble s);
-WINGDIAPI void APIENTRY glTexCoord1dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glTexCoord1f(GLfloat s);
-WINGDIAPI void APIENTRY glTexCoord1fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glTexCoord1i(GLint s);
-WINGDIAPI void APIENTRY glTexCoord1iv(const GLint *v);
-WINGDIAPI void APIENTRY glTexCoord1s(GLshort s);
-WINGDIAPI void APIENTRY glTexCoord1sv(const GLshort *v);
-WINGDIAPI void APIENTRY glTexCoord2d(GLdouble s, GLdouble t);
-WINGDIAPI void APIENTRY glTexCoord2dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glTexCoord2f(GLfloat s, GLfloat t);
-WINGDIAPI void APIENTRY glTexCoord2fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glTexCoord2i(GLint s, GLint t);
-WINGDIAPI void APIENTRY glTexCoord2iv(const GLint *v);
-WINGDIAPI void APIENTRY glTexCoord2s(GLshort s, GLshort t);
-WINGDIAPI void APIENTRY glTexCoord2sv(const GLshort *v);
-WINGDIAPI void APIENTRY glTexCoord3d(GLdouble s, GLdouble t, GLdouble r);
-WINGDIAPI void APIENTRY glTexCoord3dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glTexCoord3f(GLfloat s, GLfloat t, GLfloat r);
-WINGDIAPI void APIENTRY glTexCoord3fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glTexCoord3i(GLint s, GLint t, GLint r);
-WINGDIAPI void APIENTRY glTexCoord3iv(const GLint *v);
-WINGDIAPI void APIENTRY glTexCoord3s(GLshort s, GLshort t, GLshort r);
-WINGDIAPI void APIENTRY glTexCoord3sv(const GLshort *v);
-WINGDIAPI void APIENTRY glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-WINGDIAPI void APIENTRY glTexCoord4dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-WINGDIAPI void APIENTRY glTexCoord4fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glTexCoord4i(GLint s, GLint t, GLint r, GLint q);
-WINGDIAPI void APIENTRY glTexCoord4iv(const GLint *v);
-WINGDIAPI void APIENTRY glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q);
-WINGDIAPI void APIENTRY glTexCoord4sv(const GLshort *v);
-WINGDIAPI void APIENTRY glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-WINGDIAPI void APIENTRY glTexEnvf(GLenum target, GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
-WINGDIAPI void APIENTRY glTexEnvi(GLenum target, GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glTexEnviv(GLenum target, GLenum pname, const GLint *params);
-WINGDIAPI void APIENTRY glTexGend(GLenum coord, GLenum pname, GLdouble param);
-WINGDIAPI void APIENTRY glTexGendv(GLenum coord, GLenum pname, const GLdouble *params);
-WINGDIAPI void APIENTRY glTexGenf(GLenum coord, GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glTexGenfv(GLenum coord, GLenum pname, const GLfloat *params);
-WINGDIAPI void APIENTRY glTexGeni(GLenum coord, GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glTexGeniv(GLenum coord, GLenum pname, const GLint *params);
-WINGDIAPI void APIENTRY glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-WINGDIAPI void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-WINGDIAPI void APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param);
-WINGDIAPI void APIENTRY glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
-WINGDIAPI void APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param);
-WINGDIAPI void APIENTRY glTexParameteriv(GLenum target, GLenum pname, const GLint *params);
-WINGDIAPI void APIENTRY glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
-WINGDIAPI void APIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-WINGDIAPI void APIENTRY glTranslated(GLdouble x, GLdouble y, GLdouble z);
-WINGDIAPI void APIENTRY glTranslatef(GLfloat x, GLfloat y, GLfloat z);
-WINGDIAPI void APIENTRY glVertex2d(GLdouble x, GLdouble y);
-WINGDIAPI void APIENTRY glVertex2dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glVertex2f(GLfloat x, GLfloat y);
-WINGDIAPI void APIENTRY glVertex2fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glVertex2i(GLint x, GLint y);
-WINGDIAPI void APIENTRY glVertex2iv(const GLint *v);
-WINGDIAPI void APIENTRY glVertex2s(GLshort x, GLshort y);
-WINGDIAPI void APIENTRY glVertex2sv(const GLshort *v);
-WINGDIAPI void APIENTRY glVertex3d(GLdouble x, GLdouble y, GLdouble z);
-WINGDIAPI void APIENTRY glVertex3dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z);
-WINGDIAPI void APIENTRY glVertex3fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glVertex3i(GLint x, GLint y, GLint z);
-WINGDIAPI void APIENTRY glVertex3iv(const GLint *v);
-WINGDIAPI void APIENTRY glVertex3s(GLshort x, GLshort y, GLshort z);
-WINGDIAPI void APIENTRY glVertex3sv(const GLshort *v);
-WINGDIAPI void APIENTRY glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-WINGDIAPI void APIENTRY glVertex4dv(const GLdouble *v);
-WINGDIAPI void APIENTRY glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-WINGDIAPI void APIENTRY glVertex4fv(const GLfloat *v);
-WINGDIAPI void APIENTRY glVertex4i(GLint x, GLint y, GLint z, GLint w);
-WINGDIAPI void APIENTRY glVertex4iv(const GLint *v);
-WINGDIAPI void APIENTRY glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w);
-WINGDIAPI void APIENTRY glVertex4sv(const GLshort *v);
-WINGDIAPI void APIENTRY glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-WINGDIAPI void APIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
-
-*/
diff --git a/src/libjin/Audio/SDL/je_sdl_source.cpp b/src/libjin/Audio/SDL/je_sdl_source.cpp
index 72607dd..9e09e61 100644
--- a/src/libjin/Audio/SDL/je_sdl_source.cpp
+++ b/src/libjin/Audio/SDL/je_sdl_source.cpp
@@ -6,10 +6,11 @@
#include <climits>
#define STB_VORBIS_HEADER_ONLY
-#include "../../3rdparty/stb/stb_vorbis.c"
+#include "stb/stb_vorbis.c"
+#include "wav/wav.h"
+
#include "../../math/je_math.h"
#include "../../utils/je_macros.h"
-#include "../../3rdparty/wav/wav.h"
#include "je_sdl_audio.h"
#include "je_sdl_source.h"
diff --git a/src/libjin/Filesystem/je_asset_database.h b/src/libjin/Filesystem/je_asset_database.h
index 1d50a2f..c85b378 100644
--- a/src/libjin/Filesystem/je_asset_database.h
+++ b/src/libjin/Filesystem/je_asset_database.h
@@ -6,7 +6,7 @@
#include <vector>
-#include "../3rdparty/smount/smount.h"
+#include "smount/smount.h"
#include "je_buffer.h"
diff --git a/src/libjin/Game/je_game.cpp b/src/libjin/Game/je_application.cpp
index 7562831..a5a8812 100644
--- a/src/libjin/Game/je_game.cpp
+++ b/src/libjin/Game/je_application.cpp
@@ -8,7 +8,7 @@
#include "../graphics/je_window.h"
#include "../math/je_math.h"
-#include "je_game.h"
+#include "je_application.h"
namespace JinEngine
{
@@ -20,10 +20,10 @@ namespace JinEngine
using namespace JinEngine::Time;
using namespace JinEngine::Math;
- Game::Game() :_running(true) {};
+ Application::Application() :_running(true) {};
/* default game loop */
- void Game::run()
+ void Application::run()
{
if (_onLoad != nullptr)
_onLoad();
@@ -57,11 +57,11 @@ namespace JinEngine
quitloop:;
}
- bool Game::initSystem(const SettingBase* setting)
+ bool Application::initSystem(const SettingBase* setting)
{
if (setting == nullptr)
return false;
- Game::Setting* s = (Game::Setting*) setting;
+ Application::Setting* s = (Application::Setting*) setting;
_onEvent = s->eventHandler;
_onUpdate = s->updater;
_onDraw = s->drawer;
@@ -69,7 +69,7 @@ namespace JinEngine
return true;
}
- void Game::quitSystem()
+ void Application::quitSystem()
{
}
diff --git a/src/libjin/Game/je_game.h b/src/libjin/Game/je_application.h
index 2ccc428..f740c22 100644
--- a/src/libjin/Game/je_game.h
+++ b/src/libjin/Game/je_application.h
@@ -18,7 +18,7 @@ namespace JinEngine
///
/// Game class.
///
- class Game : public Subsystem<Game>
+ class Application : public Subsystem<Application>
{
public:
@@ -63,10 +63,10 @@ namespace JinEngine
private:
- Game();
- ~Game() {};
+ Application();
+ ~Application() {};
- singleton(Game);
+ singleton(Application);
onEvent _onEvent;
onUpdate _onUpdate;
diff --git a/src/libjin/Graphics/Font/je_texture_font.cpp b/src/libjin/Graphics/Font/je_texture_font.cpp
index 5834140..15d0ace 100644
--- a/src/libjin/Graphics/Font/je_texture_font.cpp
+++ b/src/libjin/Graphics/Font/je_texture_font.cpp
@@ -6,14 +6,14 @@
#include "je_texture_font.h"
+using namespace std;
+using namespace JinEngine::Math;
+
namespace JinEngine
{
namespace Graphics
{
- using namespace std;
- using namespace Math;
-
TextureFont * TextureFont::createTextureFont(const Bitmap* bitmap, const Content& codepoints, int cellw, int cellh)
{
TextureFont* tf = new TextureFont(bitmap, codepoints, cellw, cellh);
diff --git a/src/libjin/Graphics/Font/je_ttf.cpp b/src/libjin/Graphics/Font/je_ttf.cpp
index 72e5da9..52547c9 100644
--- a/src/libjin/Graphics/Font/je_ttf.cpp
+++ b/src/libjin/Graphics/Font/je_ttf.cpp
@@ -13,7 +13,7 @@
#include "je_page.h"
#define STB_TRUETYPE_IMPLEMENTATION
-#include "../../3rdparty/stb/stb_truetype.h"
+#include "stb/stb_truetype.h"
namespace JinEngine
{
@@ -144,7 +144,7 @@ namespace JinEngine
// TTF
/////////////////////////////////////////////////////////////////////////////
- #include "../shader/je_font.shader.h"
+ #include "../shader/shaders/je_font.shader.h"
using namespace std;
using namespace JinEngine::Math;
diff --git a/src/libjin/Graphics/Font/je_ttf.h b/src/libjin/Graphics/Font/je_ttf.h
index 42e7e62..b2c1802 100644
--- a/src/libjin/Graphics/Font/je_ttf.h
+++ b/src/libjin/Graphics/Font/je_ttf.h
@@ -6,7 +6,8 @@
#include <vector>
#include <map>
-#include "../../3rdparty/stb/stb_truetype.h"
+#include "stb/stb_truetype.h"
+
#include "../../math/je_quad.h"
#include "../je_color.h"
diff --git a/src/libjin/Graphics/Shader/je_shader.cpp b/src/libjin/Graphics/Shader/je_shader.cpp
index e6f82a4..8e909d8 100644
--- a/src/libjin/Graphics/Shader/je_shader.cpp
+++ b/src/libjin/Graphics/Shader/je_shader.cpp
@@ -23,7 +23,7 @@ namespace JinEngine
// SHADER_FORMAT_SIZE
// formatShader
//
- #include "je_default.shader.h"
+ #include "shaders/je_default.shader.h"
//
// https://stackoverflow.com/questions/27941496/use-sampler-without-passing-through-value
diff --git a/src/libjin/Graphics/Shader/je_shader.h b/src/libjin/Graphics/Shader/je_shader.h
index f721b5d..039efb5 100644
--- a/src/libjin/Graphics/Shader/je_shader.h
+++ b/src/libjin/Graphics/Shader/je_shader.h
@@ -7,7 +7,7 @@
#include <string>
#include <map>
-#include "../../3rdparty/GLee/GLee.h"
+#include "GLee/GLee.h"
#include "../je_color.h"
#include "../je_texture.h"
diff --git a/src/libjin/Graphics/je_bitmap.cpp b/src/libjin/Graphics/je_bitmap.cpp
index 0747f0b..14cf3c6 100644
--- a/src/libjin/Graphics/je_bitmap.cpp
+++ b/src/libjin/Graphics/je_bitmap.cpp
@@ -1,5 +1,5 @@
#define STB_IMAGE_IMPLEMENTATION
-#include "../3rdparty/stb/stb_image.h"
+#include "stb/stb_image.h"
#include "../filesystem/je_asset_database.h"
#include "../math/je_math.h"
diff --git a/src/libjin/Graphics/je_bitmap.h b/src/libjin/Graphics/je_bitmap.h
index 8f0c30d..9d10106 100644
--- a/src/libjin/Graphics/je_bitmap.h
+++ b/src/libjin/Graphics/je_bitmap.h
@@ -3,7 +3,8 @@
#include "../core/je_configuration.h"
#if defined(jin_graphics)
-#include "../3rdparty/GLee/GLee.h"
+#include "GLee/GLee.h"
+
#include "../common/je_types.h"
#include "../math/je_vector2.hpp"
diff --git a/src/libjin/Graphics/je_gl.h b/src/libjin/Graphics/je_gl.h
index cda8bf9..f1e7a2b 100644
--- a/src/libjin/Graphics/je_gl.h
+++ b/src/libjin/Graphics/je_gl.h
@@ -1,8 +1,9 @@
#ifndef __JE_OPENGL_H
#define __JE_OPENGL_H
-#include "../3rdparty/GLee/GLee.h"
-#include "../3rdparty/ogl/OpenGL.h"
+#include "GLee/GLee.h"
+#include "ogl/OpenGL.h"
+
#include "../math/je_matrix.h"
namespace JinEngine
diff --git a/src/libjin/Graphics/je_image.cpp b/src/libjin/Graphics/je_image.cpp
index f800423..171bba0 100644
--- a/src/libjin/Graphics/je_image.cpp
+++ b/src/libjin/Graphics/je_image.cpp
@@ -1,4 +1,5 @@
-#include "../3rdparty/stb/stb_image.h"
+#include "stb/stb_image.h"
+
#include "../filesystem/je_asset_database.h"
#include "je_image.h"
diff --git a/src/libjin/Graphics/je_texture.h b/src/libjin/Graphics/je_texture.h
index 656ccd7..dff3f40 100644
--- a/src/libjin/Graphics/je_texture.h
+++ b/src/libjin/Graphics/je_texture.h
@@ -3,7 +3,7 @@
#include "../core/je_configuration.h"
#if defined(jin_graphics)
-#include "../3rdparty/GLee/GLee.h"
+#include "GLee/GLee.h"
#include "je_color.h"
#include "je_graphic_single.h"
diff --git a/src/libjin/Net/je_socket.h b/src/libjin/Net/je_socket.h
index d496fcb..df2a2bf 100644
--- a/src/libjin/Net/je_socket.h
+++ b/src/libjin/Net/je_socket.h
@@ -3,7 +3,7 @@
#include "../core/je_configuration.h"
#if defined(jin_net)
-#include "../3rdparty/tekcos/tekcos.h"
+#include "tekcos/tekcos.h"
namespace JinEngine
{
diff --git a/src/libjin/jin.h b/src/libjin/jin.h
index b47a56d..88276ca 100644
--- a/src/libjin/jin.h
+++ b/src/libjin/jin.h
@@ -7,7 +7,7 @@
#if jin_audio == jin_audio_sdl
#include "audio/sdl/je_sdl_audio.h"
#endif
-#include "game/je_game.h"
+#include "game/je_application.h"
#include "filesystem/je_asset_database.h"
#include "filesystem/je_buffer.h"
#include "input/je_input.h"
diff --git a/src/lua/modules/core/je_lua_core.cpp b/src/lua/modules/core/je_lua_core.cpp
index a576bec..1b7d762 100644
--- a/src/lua/modules/core/je_lua_core.cpp
+++ b/src/lua/modules/core/je_lua_core.cpp
@@ -6,11 +6,11 @@ namespace JinEngine
namespace Lua
{
- using namespace JinEngine::Core;
+ using namespace JinEngine::Game;
static int l_running(lua_State* L)
{
- static Game* game = Game::get();
+ static Application* game = Application::get();
bool running = game->running();
luax_pushboolean(L, running);
return 1;
@@ -18,13 +18,13 @@ namespace JinEngine
static int l_stop(lua_State* L)
{
- Game::get()->stop();
+ Application::get()->stop();
return 0;
}
static int l_quit(lua_State* L)
{
- Game::get()->quit();
+ Application::get()->quit();
return 0;
}
diff --git a/src/lua/resources/font.ttf.h b/src/lua/resources/font.ttf.h
index a4dff31..124e83f 100644
--- a/src/lua/resources/font.ttf.h
+++ b/src/lua/resources/font.ttf.h
@@ -2,364 +2,361 @@ static const char
default_font_bitmap[] =
{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,3,154,0,0,0,14,8,6,0,0,0,78,
234,99,67,0,0,0,4,103,65,77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,
-0,0,14,193,0,0,14,193,1,184,145,107,237,0,0,0,25,116,69,88,116,83,111,102,116,
-119,97,114,101,0,112,97,105,110,116,46,110,101,116,32,52,46,48,46,50,49,241,
-32,105,149,0,0,29,60,73,68,65,84,120,94,237,92,61,168,117,75,82,125,8,134,166,
-26,138,32,152,152,12,8,34,6,3,142,163,32,98,160,78,48,42,226,24,24,56,129,201,
-203,20,52,80,49,120,32,42,200,68,79,3,3,25,5,5,49,18,49,246,39,50,209,68,76,
-52,82,16,197,68,68,142,189,106,117,157,90,245,211,231,236,115,191,239,225,19,
-166,14,235,222,221,85,171,171,171,171,171,123,239,125,238,247,222,7,183,15,
-110,55,224,131,34,174,159,108,46,202,121,196,131,92,225,93,225,64,174,242,32,
-143,120,87,253,40,239,21,238,86,189,247,24,182,234,165,184,170,92,237,167,188,
-87,184,91,117,148,171,92,229,157,184,143,108,144,43,125,31,245,135,188,202,
-219,205,167,242,62,253,190,47,142,139,115,175,250,124,198,115,249,36,248,202,
-185,194,219,205,135,162,254,174,244,121,196,63,233,93,158,217,85,174,112,175,
-112,38,209,126,87,251,190,202,135,92,237,115,149,87,229,149,126,87,120,175,
-250,122,223,92,200,171,252,42,87,251,190,50,198,251,246,233,188,19,87,237,39,
-142,202,85,238,39,229,239,255,27,239,93,244,213,230,114,178,191,170,119,121,
-102,135,92,181,87,206,179,126,144,19,199,245,213,118,210,187,168,253,196,113,
-121,43,119,171,146,92,181,239,102,146,79,147,237,36,222,231,147,232,119,133,
-163,242,42,223,229,222,239,222,187,160,106,114,43,80,53,185,21,168,154,147,94,
-49,107,137,125,165,14,246,212,108,114,170,31,19,83,57,134,219,237,227,133,143,
-208,82,49,102,230,110,75,136,49,30,112,182,150,254,31,240,84,96,187,243,190,
-112,191,66,124,144,143,239,154,133,221,165,201,178,133,15,199,213,121,222,110,
-255,185,240,37,209,249,213,151,22,254,101,225,243,98,131,124,126,1,122,216,
-183,215,209,47,198,78,241,111,236,30,143,5,60,233,115,236,103,172,204,123,37,
-79,219,210,197,152,23,184,198,202,188,196,13,77,183,185,152,245,96,47,182,177,
-63,196,88,175,243,182,246,44,133,255,78,126,223,202,185,183,4,166,207,220,219,
-237,23,83,43,128,125,149,53,236,175,26,69,229,159,252,46,152,31,126,66,59,241,
-161,171,218,231,60,250,87,187,162,207,171,249,76,253,31,197,208,109,185,85,
-237,101,156,132,39,92,139,137,159,35,7,112,73,250,234,27,152,252,75,123,232,
-147,91,19,248,9,205,16,159,225,213,218,90,48,251,85,255,128,114,227,30,145,
-161,113,60,242,85,115,81,184,22,155,183,47,112,33,119,221,3,126,226,157,160,
-253,203,88,9,15,120,109,156,183,248,204,179,200,224,39,107,180,149,253,16,167,
-53,3,170,191,43,235,187,174,92,18,7,200,188,171,254,128,220,114,212,249,156,
-114,88,121,87,199,125,33,62,155,47,63,207,245,30,231,180,30,117,14,157,51,251,
-124,162,119,49,235,3,59,196,24,131,253,174,169,49,241,185,235,171,246,219,117,
-101,30,46,171,21,125,53,191,53,167,222,191,142,85,252,54,59,177,71,203,2,189,
-112,12,219,52,74,226,214,90,24,106,32,181,52,174,26,51,63,108,85,191,143,250,
-229,49,179,237,234,120,181,95,129,203,106,101,102,245,121,66,237,23,243,251,
-112,193,158,249,167,220,217,152,170,81,84,159,207,248,14,237,87,109,142,170,
-201,173,64,213,228,86,160,106,110,183,111,177,171,170,87,204,90,98,95,169,3,
-155,60,196,180,161,31,139,185,114,12,159,230,23,205,159,177,159,241,34,247,27,
-98,91,216,93,154,24,75,120,134,175,189,104,54,49,102,230,110,75,23,99,94,224,
-26,43,243,18,55,52,221,230,98,86,183,127,246,126,69,160,157,53,187,87,22,99,
-189,206,219,218,179,20,254,59,249,125,43,103,183,80,111,255,181,128,195,116,
-91,237,227,45,8,106,243,63,236,42,228,195,116,131,0,114,142,81,167,42,157,207,
-49,171,240,64,7,234,26,205,252,15,19,135,188,58,54,230,55,237,69,160,114,63,
-106,113,2,28,27,15,36,159,89,208,252,205,251,81,247,115,182,249,213,233,28,
-128,127,140,19,235,193,49,234,28,32,237,204,88,250,28,123,172,221,20,59,224,
-57,157,242,232,54,156,121,106,129,207,252,112,6,196,250,251,28,84,56,159,190,
-166,19,247,227,39,181,133,120,84,162,102,250,252,231,90,128,85,99,225,195,72,
-173,243,92,179,115,172,46,185,6,116,125,151,70,114,222,235,37,252,198,60,2,19,
-31,243,175,107,2,30,98,183,241,54,122,141,113,29,34,7,193,227,25,16,188,83,76,
-104,67,255,25,225,122,157,84,97,60,206,139,53,132,15,23,206,163,214,5,239,217,
-206,205,126,28,228,212,53,153,253,113,125,125,158,16,206,1,62,130,103,235,4,
-217,154,200,75,230,185,191,90,135,31,183,113,231,57,231,252,1,221,151,75,222,
-151,28,87,243,205,181,212,58,157,121,204,97,157,199,158,179,105,175,232,35,
-223,211,121,161,251,103,90,179,217,231,19,189,139,89,31,216,33,198,40,118,233,
-129,53,168,123,169,159,101,212,165,115,21,178,108,225,155,181,135,53,251,168,
-229,148,253,78,103,251,239,45,252,214,66,175,1,98,143,150,5,122,225,24,182,
-105,148,196,101,45,96,108,196,251,249,86,43,81,163,61,110,214,16,99,133,70,
-227,96,14,188,198,242,122,135,158,245,169,57,138,241,16,79,206,3,99,224,158,
-131,70,199,203,113,250,62,166,127,234,125,238,209,7,96,236,24,7,18,115,9,125,
-31,11,96,222,242,89,85,115,151,91,191,188,128,88,128,175,152,174,250,140,57,0,
-117,207,199,92,192,115,86,240,51,170,38,183,2,85,195,159,223,184,240,75,11,
-223,181,219,19,239,47,22,190,167,233,21,179,150,216,87,234,216,22,8,98,218,
-208,143,197,92,57,6,223,116,165,139,49,51,119,91,66,140,241,128,179,181,244,
-255,128,167,2,219,157,199,130,193,2,98,147,127,166,22,203,238,210,196,88,194,
-51,92,157,39,54,86,62,128,212,90,109,144,231,135,27,121,253,176,36,118,143,
-199,2,158,244,57,246,51,86,230,189,146,167,109,233,98,204,11,92,99,101,94,226,
-134,166,219,92,204,234,118,30,138,200,45,15,210,154,255,161,63,196,88,175,243,
-182,246,44,133,255,78,126,223,194,185,95,177,158,254,117,97,190,153,0,165,54,
-247,111,220,88,242,139,15,115,236,135,119,61,208,177,111,234,141,55,223,196,8,
-240,168,235,123,164,243,251,58,66,184,71,84,171,188,233,70,23,92,244,61,189,
-116,221,185,150,211,224,247,253,168,57,203,54,191,138,90,84,59,253,99,28,222,
-252,248,155,55,241,122,147,43,235,98,49,241,51,113,224,195,125,58,48,22,206,
-68,218,212,2,196,216,113,227,39,224,19,49,230,216,185,254,136,5,124,228,197,
-45,224,195,79,127,137,239,243,245,118,62,235,233,219,253,232,218,58,159,58,
-189,65,3,190,62,161,65,27,252,92,95,225,91,227,192,3,97,60,4,49,6,71,172,31,
-218,234,11,40,118,91,27,90,122,189,224,139,79,141,43,44,145,27,215,0,140,177,
-114,49,71,136,174,19,199,210,47,86,57,22,184,154,19,92,127,52,240,224,11,57,
-225,28,53,30,229,230,188,0,193,211,245,38,79,125,58,111,170,11,240,32,168,207,
-190,79,0,250,195,28,125,206,225,175,175,7,198,195,60,193,57,141,171,235,4,68,
-78,159,215,45,81,235,15,253,24,163,230,187,215,75,207,33,252,194,127,125,33,
-69,93,33,127,182,231,23,162,110,158,243,114,45,16,156,51,63,207,245,58,111,
-213,211,246,155,11,94,43,152,111,61,23,103,159,79,244,46,102,125,96,135,24,
-163,216,119,11,113,241,172,12,59,4,122,204,39,234,139,181,143,124,1,166,53,63,
-234,155,235,202,125,211,107,3,57,231,179,102,214,35,119,208,227,133,164,219,
-137,174,161,182,89,44,168,131,36,110,212,8,126,99,220,188,46,172,61,143,45,
-127,105,81,115,161,245,205,28,160,78,89,219,90,211,236,23,57,87,159,28,47,242,
-174,53,201,126,225,83,199,139,56,89,127,212,250,220,160,39,115,190,7,48,254,
-243,53,250,212,126,190,7,127,97,1,188,47,47,228,250,193,88,188,194,248,136,25,
-243,66,63,198,167,57,1,152,51,212,71,189,71,2,232,139,61,155,107,42,115,2,85,
-147,91,129,170,225,207,159,95,248,199,5,172,57,45,202,1,110,183,111,93,248,
-239,166,87,240,231,15,47,252,192,190,6,190,205,126,239,150,58,222,229,57,108,
-230,184,10,212,133,4,124,211,101,109,231,198,194,4,234,98,76,28,247,159,181,
-185,165,208,113,89,188,177,249,181,176,129,184,202,168,113,1,87,231,137,190,
-185,191,90,187,111,221,148,143,121,24,187,63,216,130,151,53,51,166,56,213,238,
-168,227,2,185,21,184,234,19,168,92,180,213,238,152,198,175,126,149,51,249,209,
-177,162,6,248,208,82,107,224,20,115,141,227,10,239,196,81,188,79,191,175,114,
-226,202,111,46,56,20,163,246,248,113,46,164,214,102,180,149,199,28,163,62,243,
-193,239,200,49,64,252,32,175,92,238,177,190,79,19,127,60,175,200,227,30,217,
-28,136,177,220,206,195,254,122,156,192,52,54,45,243,126,60,229,40,60,71,45,
-170,157,254,49,14,198,3,39,30,22,235,222,41,235,98,49,241,51,113,226,91,244,
-176,162,31,214,159,53,160,253,128,152,51,110,180,254,114,0,11,126,67,159,99,
-231,250,207,231,163,206,69,181,121,190,174,197,245,233,101,204,214,181,0,241,
-192,119,255,203,83,239,131,56,152,119,229,70,46,114,61,148,125,99,57,102,43,
-252,152,197,62,206,131,36,187,244,235,245,18,15,31,177,214,68,248,112,13,208,
-185,190,30,128,230,158,107,49,63,228,49,95,4,174,115,62,200,171,107,131,223,
-104,143,127,9,188,183,52,231,253,12,174,245,17,62,93,3,112,124,96,206,1,48,
-223,59,56,182,206,25,8,127,142,137,167,118,196,133,122,224,252,171,63,230,6,
-118,93,175,211,30,133,15,214,201,137,183,90,146,195,240,221,199,197,120,90,
-167,115,126,116,13,136,136,67,121,62,46,63,207,245,26,155,234,129,156,99,142,
-175,26,183,231,218,57,235,87,75,197,172,15,236,16,99,20,251,110,205,117,54,
-229,5,57,47,121,54,63,234,155,28,228,119,170,13,248,132,237,209,139,230,87,90,
-63,194,175,114,221,240,163,188,62,121,145,196,253,29,251,137,249,240,11,67,
-180,213,206,185,32,63,125,207,210,22,177,232,26,213,126,252,212,126,168,205,
-92,199,180,69,126,31,217,116,60,214,9,114,136,88,48,46,218,49,190,215,92,173,
-35,254,117,17,62,157,15,222,227,245,101,63,223,67,222,167,215,40,207,32,112,
-38,57,213,155,159,189,62,23,8,116,136,199,115,29,247,227,232,237,248,238,133,
-63,110,218,219,237,223,22,126,108,183,2,185,5,193,207,127,88,248,62,107,221,
-110,223,188,112,226,117,189,226,118,251,53,251,73,249,149,5,104,255,125,225,
-155,156,163,14,44,209,16,211,134,30,130,159,154,200,233,207,199,16,112,252,97,
-198,165,111,194,40,36,20,189,75,126,200,33,7,11,81,37,191,104,198,141,70,227,
-227,226,106,65,116,95,245,27,98,252,84,31,40,76,110,16,229,145,91,231,137,121,
-228,127,26,64,222,59,253,211,217,5,140,67,223,153,215,15,112,234,221,47,14,49,
-23,223,32,46,211,183,111,62,46,250,249,154,48,135,202,35,23,63,53,79,140,239,
-154,79,62,204,204,245,240,124,173,1,142,141,181,129,47,196,24,121,160,31,141,
-45,255,51,166,62,70,206,161,174,11,53,113,160,101,30,242,201,252,100,94,196,
-219,125,97,108,206,63,218,117,124,248,85,14,230,146,215,161,143,237,60,29,27,
-253,225,71,133,126,157,19,89,65,28,238,15,126,128,167,47,52,11,209,47,243,34,
-103,91,171,178,52,213,175,142,79,14,45,39,255,137,111,168,251,142,60,238,17,
-213,230,243,160,197,153,48,251,236,99,19,28,75,53,128,230,44,219,252,42,106,
-68,237,17,27,246,14,214,45,98,228,71,185,105,93,44,127,103,14,252,232,26,2,
-200,17,244,252,173,253,128,60,231,168,15,250,132,254,225,25,230,130,235,133,
-200,121,238,51,173,69,207,105,225,185,224,122,3,177,77,231,91,173,133,152,71,
-62,31,16,123,206,55,144,243,169,99,198,250,117,30,36,217,165,95,159,27,234,45,
-230,7,187,91,200,237,95,184,212,156,97,44,60,164,224,11,1,232,97,143,181,208,
-156,196,61,19,125,97,7,232,71,243,145,121,240,9,127,49,102,62,35,226,138,246,
-56,199,248,161,133,113,33,78,173,193,200,147,107,136,103,118,227,184,108,77,
-228,176,214,65,204,7,136,252,233,94,15,142,231,14,127,193,32,175,215,21,56,
-122,206,130,119,250,87,24,152,51,236,46,221,95,110,161,79,175,81,32,94,214,
-185,14,172,145,233,75,185,90,247,81,15,202,91,189,44,127,252,60,215,235,26,
-170,30,136,252,69,126,213,174,235,147,245,88,99,228,114,140,205,5,109,177,53,
-59,196,24,98,23,54,115,214,243,228,117,29,245,149,247,163,229,185,249,198,250,
-185,207,186,150,236,223,239,35,174,119,212,181,37,252,42,226,162,182,115,185,
-198,147,76,249,229,30,242,152,213,206,185,176,142,160,209,177,34,23,92,115,
-157,43,251,69,173,106,63,218,162,230,122,63,196,4,159,143,95,52,213,22,249,
-195,152,46,113,214,48,254,254,126,162,115,139,107,230,33,88,125,61,24,7,158,
-95,193,101,255,202,137,154,7,23,207,166,200,21,248,140,169,214,128,230,75,253,
-70,76,184,38,39,250,248,213,119,46,252,225,194,223,47,252,248,93,235,184,221,
-62,183,240,71,118,165,47,156,157,247,35,11,127,181,91,127,182,240,171,118,221,
-121,188,170,122,197,237,246,63,11,223,190,91,127,0,197,146,223,93,184,247,83,
-7,182,145,32,166,13,61,4,147,246,5,137,194,81,14,121,72,18,95,60,168,193,239,
-126,120,80,15,94,44,114,95,140,232,75,13,198,69,59,111,32,22,165,23,142,107,
-185,96,122,160,240,112,134,47,22,239,124,40,99,83,163,72,160,65,155,115,81,30,
-185,117,158,104,79,15,3,239,242,162,25,241,204,155,102,122,176,69,63,223,20,
-208,32,191,16,240,209,134,125,90,15,207,173,207,223,219,211,131,39,231,26,26,
-140,1,238,52,23,245,9,109,204,41,115,35,46,106,124,30,121,173,201,197,216,28,
-207,181,97,67,44,58,94,62,20,162,6,152,251,190,94,97,163,6,126,224,175,222,44,
-97,247,117,130,38,250,5,7,125,121,48,83,227,47,199,94,243,152,71,246,203,248,
-160,71,158,208,175,31,180,87,198,206,55,179,224,171,159,56,28,125,60,92,199,
-90,246,253,8,63,176,169,244,111,70,53,103,75,83,197,216,153,159,214,204,56,
-180,244,121,5,95,229,180,71,49,39,21,206,43,236,41,206,13,228,194,101,170,189,
-58,182,202,180,31,35,247,217,230,87,167,57,122,108,16,196,100,22,203,77,207,
-95,170,135,11,28,228,197,125,198,248,212,77,251,93,215,7,124,228,27,58,244,
-129,190,198,222,226,129,224,122,131,245,166,154,190,22,240,193,189,242,128,
-167,130,246,2,231,54,159,151,42,62,78,206,21,239,37,176,65,88,47,176,228,7,11,
-29,79,243,151,125,1,197,46,253,24,167,114,99,63,98,124,207,55,192,51,164,206,
-137,103,133,174,37,174,1,140,197,117,225,248,60,67,242,126,246,43,207,231,189,
-198,246,167,242,224,11,243,192,23,31,244,247,152,203,181,11,75,88,195,151,213,
-199,70,228,201,53,196,51,187,114,28,152,11,243,87,207,48,230,216,215,23,194,
-24,149,199,179,83,235,44,174,235,26,144,171,192,216,211,115,0,214,69,159,23,
-224,55,159,71,132,95,197,186,83,155,253,197,125,66,101,122,129,194,56,117,220,
-233,188,100,109,214,113,78,122,141,79,245,64,206,223,244,165,79,216,178,30,49,
-34,39,217,103,205,177,174,21,97,49,170,24,67,236,251,42,106,168,250,96,77,34,
-166,88,143,188,31,231,253,193,243,2,182,241,75,131,33,150,187,222,197,172,217,
-174,115,142,184,208,238,115,239,147,23,73,220,103,121,140,154,194,124,25,149,
-219,242,179,66,158,43,115,16,57,210,126,180,197,126,215,126,28,15,253,48,191,
-233,175,150,177,94,90,215,180,121,13,193,14,104,141,35,142,211,31,83,80,95,16,
-244,197,23,114,228,134,244,117,228,28,224,27,99,112,156,202,137,220,98,62,0,
-198,130,111,196,57,189,188,98,76,231,197,250,82,199,60,114,204,175,72,159,159,
-88,248,253,5,204,225,231,22,104,113,123,240,252,234,59,22,254,124,225,111,22,
-190,152,56,192,237,246,167,11,63,187,91,223,187,128,255,116,234,235,6,30,175,
-170,94,209,53,95,127,191,222,26,117,176,203,115,60,88,240,211,147,237,114,122,
-9,65,18,85,11,93,125,96,0,199,19,122,26,51,113,54,232,95,53,81,116,85,88,192,
-206,139,130,225,141,178,23,34,248,88,104,215,196,6,81,30,208,231,137,126,121,
-60,242,222,250,162,137,24,233,15,150,185,80,79,47,154,244,75,77,204,161,182,
-115,191,202,3,122,174,129,206,243,252,215,53,158,124,66,7,110,157,247,181,181,
-6,122,238,35,55,244,143,141,200,155,56,180,122,128,69,13,32,174,233,191,119,
-11,27,53,243,220,226,80,246,152,25,147,30,136,228,32,78,0,254,192,241,195,109,
-206,3,227,243,57,196,225,169,235,31,126,125,108,94,235,216,113,21,241,163,173,
-126,120,56,250,88,94,247,209,206,254,32,176,233,122,186,239,135,47,13,85,22,
-167,250,141,189,179,249,248,157,244,15,248,6,93,227,224,105,142,8,229,149,56,
-11,184,158,85,59,141,77,112,44,213,0,154,179,108,243,171,168,55,181,71,108,
-254,215,169,152,7,63,202,77,235,98,249,123,204,1,176,198,248,205,121,146,133,
-235,233,76,175,115,6,31,253,127,106,1,250,211,25,118,143,7,130,235,133,200,
-121,238,227,122,149,126,211,215,254,75,227,130,235,13,206,167,247,211,90,240,
-248,17,103,206,85,60,80,57,15,210,254,105,165,140,137,57,114,253,204,98,31,
-231,65,146,93,250,49,30,229,70,79,205,95,228,190,214,56,207,10,112,112,175,64,
-159,120,49,241,181,36,56,111,221,251,49,79,196,225,247,26,203,105,226,229,17,
-61,31,228,209,58,249,196,120,158,107,206,89,121,92,67,141,21,136,60,185,134,
-120,102,215,113,145,3,172,235,125,236,50,151,186,190,0,99,213,245,237,231,107,
-212,92,61,19,87,203,101,107,230,56,179,63,96,222,7,17,95,172,59,218,252,4,143,
-246,168,97,142,203,61,173,60,214,136,175,27,4,121,103,238,149,183,231,129,223,
-162,59,235,117,13,85,15,196,152,156,111,93,3,222,119,250,153,125,210,199,186,
-186,212,51,202,98,84,129,238,110,143,156,158,99,226,24,200,183,174,155,95,133,
-141,218,176,112,174,240,249,126,95,52,243,154,169,180,123,210,118,51,74,225,
-110,45,5,109,177,65,242,190,204,118,191,66,92,249,124,101,14,226,156,209,126,
-180,33,111,60,207,180,31,199,225,94,129,70,215,221,107,65,247,129,107,184,63,
-49,22,98,113,173,215,63,190,8,163,207,83,125,17,190,166,184,135,193,23,230,14,
-31,152,127,126,222,200,123,18,118,60,151,213,251,23,250,234,187,145,202,135,
-67,189,177,102,116,76,90,152,95,94,51,167,209,231,215,237,39,102,18,158,178,
-95,32,183,190,127,225,159,22,254,58,105,129,219,237,135,164,5,252,224,194,55,
-36,13,224,87,85,175,152,181,196,190,82,7,187,4,199,34,196,162,112,193,9,92,79,
-15,37,181,0,102,46,57,44,76,71,63,96,58,199,253,171,70,199,200,220,233,127,
-153,28,11,171,54,160,251,136,13,162,60,160,207,19,253,152,159,204,123,203,139,
-38,54,12,190,93,136,27,73,47,84,230,70,117,212,135,95,106,98,14,181,157,251,
-85,30,208,115,13,116,222,105,141,39,159,17,95,230,94,91,107,160,231,62,114,
-195,67,8,192,56,216,248,121,77,162,6,24,67,175,129,176,81,51,207,45,251,137,7,
-110,173,225,92,111,120,97,64,204,240,75,127,248,182,170,62,184,176,15,56,88,
-251,249,69,147,7,166,143,253,163,11,240,127,229,175,149,176,7,39,30,168,38,
-201,121,3,24,23,198,100,76,4,215,77,121,225,183,174,39,209,247,121,236,29,229,
-121,236,53,71,133,63,158,87,228,221,99,112,49,150,219,135,56,141,195,107,142,
-237,45,199,52,54,45,61,15,128,230,44,219,252,202,235,163,230,58,234,46,234,1,
-99,156,30,146,238,235,98,49,233,60,7,206,2,230,23,255,105,64,232,166,51,189,
-174,143,199,230,200,123,153,121,101,254,66,235,192,88,152,75,61,127,116,190,
-97,169,115,125,92,91,158,167,103,255,141,166,143,213,243,201,189,165,152,214,
-143,57,102,11,243,129,29,60,248,169,227,214,188,59,24,143,106,114,79,207,95,
-228,177,230,130,177,186,127,228,13,92,95,35,244,241,254,204,169,198,22,103,19,
-215,130,28,92,215,7,180,227,92,77,223,125,134,159,205,129,36,222,188,214,184,
-134,46,239,131,232,21,99,103,187,158,135,62,23,179,180,113,131,171,232,126,25,
-59,124,77,146,215,236,138,63,128,243,243,250,3,34,7,202,163,191,158,159,58,15,
-173,11,98,246,23,247,1,7,226,235,231,205,242,254,48,95,248,173,122,142,199,
-251,142,234,1,246,241,218,235,62,87,235,165,177,92,239,168,246,213,170,98,12,
-183,179,127,222,135,106,7,104,71,254,116,221,148,17,249,238,231,5,247,216,33,
-46,211,14,122,23,179,102,187,206,57,226,66,187,143,1,65,92,147,212,251,215,30,
-145,130,182,216,244,220,102,221,169,61,234,136,118,125,214,136,125,223,215,
-155,182,200,189,246,227,120,177,239,117,110,156,127,236,37,112,221,166,181,71,
-141,3,190,32,125,157,8,109,249,60,225,3,247,65,232,224,23,250,188,119,99,45,
-192,135,111,206,85,57,156,75,244,15,46,25,53,22,218,128,200,13,175,113,238,
-192,71,223,207,252,201,255,46,243,118,251,231,133,47,154,206,237,153,135,151,
-200,191,92,248,219,133,159,52,221,204,235,168,154,147,94,49,107,137,125,165,
-14,118,9,14,69,200,4,32,121,104,225,55,100,122,40,65,146,238,55,154,5,112,217,
-206,60,36,22,122,47,22,252,254,114,225,160,111,60,108,243,55,218,121,3,177,
-152,177,104,44,88,106,209,55,127,147,64,30,124,240,160,213,162,7,24,187,250,
-128,79,142,175,188,224,70,33,113,60,246,205,188,119,249,167,179,145,187,30,43,
-198,158,30,108,195,47,53,234,47,183,115,191,202,3,56,71,229,1,212,3,174,57,
-173,49,124,66,175,92,246,213,131,131,220,107,107,77,46,227,82,109,216,248,127,
-4,99,11,191,153,11,183,71,13,80,223,227,240,152,17,15,52,248,13,121,244,64,
-128,47,5,56,199,126,19,242,188,130,227,113,129,139,118,255,203,11,15,44,159,
-31,198,102,77,233,33,156,15,125,160,115,56,79,248,208,122,206,55,170,136,159,
-177,7,16,39,247,166,106,99,46,62,15,239,159,215,40,230,93,215,30,124,180,107,
-157,196,60,67,59,207,235,196,175,28,242,184,71,86,203,197,88,110,63,199,9,160,
-61,213,94,26,219,124,210,114,218,143,145,51,213,115,108,128,253,122,29,122,
-110,49,30,52,200,57,246,195,244,87,190,186,46,61,31,157,227,254,116,222,184,
-158,206,244,105,125,188,63,114,151,215,147,115,115,59,230,231,22,207,245,163,
-127,78,103,243,117,49,150,242,206,107,230,253,169,155,111,236,202,71,124,240,
-81,191,101,199,248,202,155,214,143,177,177,5,63,176,131,199,104,131,167,251,
-89,243,23,99,43,55,251,69,28,224,144,103,86,251,4,191,159,3,117,126,24,19,247,
-186,30,91,228,203,215,39,242,151,107,81,99,74,115,53,125,246,233,235,226,53,
-27,208,122,228,217,164,53,229,99,143,127,21,218,87,49,118,182,215,51,51,91,
-251,62,192,184,202,99,222,116,206,172,49,69,196,215,247,41,230,12,187,242,166,
-127,186,93,115,227,235,155,231,195,220,128,11,63,115,158,1,237,79,205,92,83,
-121,46,231,60,59,111,206,87,143,147,57,255,160,229,3,168,249,171,123,241,60,
-214,60,135,197,82,65,91,108,205,14,49,134,219,123,189,101,59,160,57,15,61,125,
-177,133,216,248,220,168,113,211,55,81,231,227,253,249,105,122,23,179,102,187,
-113,246,85,170,133,253,81,94,159,188,72,225,110,45,5,109,177,249,92,98,31,169,
-157,107,54,215,79,228,151,231,143,246,163,13,177,243,12,237,253,34,175,87,109,
-177,223,57,30,225,177,65,168,175,235,17,231,101,196,170,99,232,181,51,1,230,3,
-125,0,92,115,108,229,48,63,152,39,108,240,133,151,87,248,155,115,173,57,161,
-95,8,106,31,127,180,192,111,72,190,79,70,111,224,179,11,127,178,48,253,165,18,
-127,193,252,187,133,159,94,8,139,114,128,220,10,84,205,73,175,152,181,196,190,
-82,7,150,20,136,105,67,15,65,130,93,176,24,44,56,229,144,135,68,251,127,139,6,
-193,195,70,46,48,128,133,228,9,134,192,95,94,96,114,116,92,112,48,118,126,0,
-204,55,92,23,22,146,30,114,44,134,40,166,90,136,44,16,47,86,72,124,227,175,60,
-114,225,159,27,146,192,92,250,28,222,253,127,6,228,243,207,115,166,254,255,
-234,69,179,230,137,55,162,186,198,225,19,255,211,36,23,230,168,230,254,234,90,
-3,61,247,225,171,199,150,15,69,214,128,114,114,14,123,28,115,173,231,67,139,
-53,142,54,63,149,131,120,57,239,218,167,215,160,114,61,206,250,127,80,243,43,
-223,63,248,157,107,157,241,96,12,21,142,153,57,188,177,47,141,237,123,90,0,
-196,145,115,195,245,244,125,237,210,95,26,98,222,117,45,230,179,32,230,161,18,
-235,171,243,122,196,87,14,121,220,35,171,229,178,244,225,43,226,4,192,83,97,
-77,43,3,224,216,247,181,52,159,180,112,44,229,2,186,175,178,222,107,140,227,
-156,207,34,174,45,225,243,174,103,193,180,46,95,29,56,186,191,39,255,200,193,
-213,23,77,0,252,158,167,200,235,20,23,199,235,107,154,226,113,49,150,242,206,
-181,5,137,125,216,243,121,175,5,1,218,156,151,107,250,254,135,212,7,115,198,
-198,22,198,67,94,49,87,70,27,188,233,188,113,25,95,170,196,175,247,97,124,102,
-181,79,226,239,43,175,11,93,203,199,253,117,237,162,15,230,130,28,106,13,104,
-76,105,174,166,239,62,39,201,53,18,107,168,124,228,188,215,69,180,98,236,108,
-135,76,249,133,112,238,202,229,250,234,184,228,148,243,213,101,107,220,255,
-244,151,242,90,227,240,221,231,193,113,61,191,144,249,44,100,189,164,253,102,
-113,240,83,253,105,157,158,206,214,26,223,105,255,33,54,62,23,101,61,248,121,
-253,168,119,191,253,188,224,250,34,54,206,161,143,133,121,97,172,122,38,34,6,
-248,204,250,213,91,5,109,177,53,59,196,24,110,143,23,19,214,152,245,176,143,
-183,32,152,15,226,213,121,210,23,91,17,179,230,152,122,244,251,104,170,93,235,
-207,79,211,187,152,53,219,141,179,175,34,46,106,27,119,187,25,165,112,183,150,
-130,182,216,188,166,176,222,189,134,105,139,88,116,31,212,126,234,55,250,241,
-222,163,185,163,45,234,238,145,77,199,227,30,241,188,171,32,6,213,231,251,36,
-235,18,62,227,188,38,124,31,205,123,136,177,232,153,209,191,72,162,239,17,79,
-114,13,193,111,181,6,116,13,170,141,248,92,211,220,110,191,45,173,64,213,228,
-86,160,106,78,122,197,172,37,246,149,58,176,164,64,76,27,122,136,182,136,122,
-232,2,44,130,142,186,9,167,133,169,254,78,139,215,199,205,45,5,63,108,85,127,
-53,38,181,17,81,148,213,114,154,103,141,13,237,172,243,171,217,247,219,253,
-134,62,107,102,76,254,212,238,152,198,200,173,64,207,103,28,48,202,3,42,119,
-94,107,222,28,170,118,138,213,175,38,155,142,85,199,169,243,155,227,152,242,
-144,91,161,85,75,182,77,168,121,152,226,7,230,57,224,128,194,161,138,195,149,
-35,187,229,228,71,231,81,56,46,119,93,157,243,149,216,136,220,170,184,58,231,
-5,139,135,159,208,78,252,26,43,32,60,151,213,82,30,117,222,170,120,226,19,72,
-253,31,241,171,173,248,121,37,39,79,125,1,87,56,19,106,63,160,244,77,115,6,
-122,159,220,154,192,79,104,134,49,32,171,149,121,181,149,129,115,6,15,11,124,
-96,80,139,248,55,191,97,201,241,199,222,202,200,235,211,125,220,45,246,9,205,
-201,31,80,215,252,145,95,160,250,174,173,103,208,254,37,223,9,121,61,143,49,
-153,254,141,62,147,77,161,254,92,163,173,236,135,184,62,238,75,235,11,73,28,
-160,174,217,105,108,126,66,115,109,220,145,103,113,188,213,223,213,248,120,47,
-233,255,153,130,247,175,121,60,233,129,26,91,141,137,207,5,184,183,231,151,
-218,179,79,203,129,139,89,31,216,33,198,112,187,62,107,45,77,179,147,3,27,95,
-162,66,79,110,176,240,66,114,254,235,119,157,167,247,231,167,233,93,204,154,
-237,198,105,26,106,155,101,187,25,165,112,183,150,130,182,216,124,46,243,11,
-53,95,214,49,127,190,172,235,92,227,165,137,47,154,186,126,236,23,207,129,234,
-147,227,69,222,53,175,236,23,62,117,188,90,95,39,212,58,186,218,175,174,99,
-244,227,30,153,56,171,245,72,140,173,252,240,137,249,235,23,65,46,24,43,247,
-139,222,25,85,147,91,129,170,201,173,64,213,156,244,138,89,75,236,43,117,176,
-211,210,19,179,213,73,42,103,99,91,179,64,47,156,145,103,140,39,28,136,177,46,
-240,32,198,60,240,138,13,130,197,229,2,19,40,242,254,207,218,136,237,37,11,
-244,194,49,222,254,176,29,7,83,63,180,136,237,41,139,177,10,111,127,84,103,
-250,43,2,158,244,57,246,51,86,230,29,7,48,166,114,245,128,41,221,26,119,181,
-84,182,118,126,209,20,110,104,186,205,197,172,7,123,177,141,253,33,198,122,
-157,183,181,103,41,252,107,126,121,176,199,55,169,247,158,246,185,238,231,192,
-113,41,220,171,62,143,60,23,99,191,103,190,49,50,231,10,111,107,103,41,220,
-167,125,96,19,94,226,227,183,232,238,122,23,179,62,176,171,24,243,9,215,24,79,
-56,147,88,175,220,239,105,95,216,133,251,148,15,177,30,23,250,24,235,10,79,25,
-64,125,200,56,244,131,24,243,9,239,10,7,82,120,239,141,11,49,246,11,252,42,
-214,251,66,223,171,60,200,85,238,27,121,141,107,214,108,111,28,21,216,132,119,
-228,26,235,147,243,247,233,231,249,63,245,59,236,27,211,94,211,223,109,46,104,
-139,13,194,7,118,125,233,32,102,254,214,187,152,85,237,241,76,21,208,121,248,
-179,214,182,141,62,244,133,39,244,198,133,108,141,115,244,149,101,51,206,113,
-155,118,208,187,152,53,219,27,199,5,122,225,24,182,105,148,194,221,90,10,218,
-98,211,89,245,63,130,112,205,48,247,211,151,218,176,67,242,95,191,67,207,47,
-255,116,93,98,60,172,13,125,187,134,49,160,15,159,199,117,188,117,117,69,74,
-159,119,234,151,90,212,52,206,35,49,118,225,167,214,9,218,175,218,28,85,147,
-91,129,170,201,173,64,213,156,244,138,89,75,236,43,117,176,211,210,19,179,213,
-73,42,103,99,91,179,64,47,156,145,103,140,39,28,136,177,46,240,32,198,60,240,
-138,13,130,159,40,122,23,22,127,63,16,129,237,37,11,244,194,49,222,254,176,
-205,67,15,194,13,121,56,108,171,24,171,240,246,71,117,166,191,34,224,73,159,
-99,63,99,101,222,113,0,99,42,151,7,243,215,94,52,31,72,225,95,243,27,135,247,
-163,155,167,233,170,92,225,184,20,238,85,159,71,158,139,177,223,51,223,24,153,
-115,133,183,181,179,20,238,211,62,176,9,47,241,241,91,116,119,189,139,89,31,
-216,85,140,249,132,107,140,39,156,73,172,87,238,247,180,47,236,194,125,202,
-135,88,143,11,125,140,117,129,87,197,122,93,236,103,204,39,188,43,28,72,225,
-189,55,46,196,216,47,240,171,88,239,11,125,175,242,32,87,185,111,228,53,174,
-89,179,189,113,84,96,19,222,145,107,172,79,206,223,167,159,199,47,47,63,184,
-125,97,65,245,187,191,105,175,233,239,54,23,180,197,246,230,177,92,204,170,
-246,252,204,230,18,255,25,131,143,183,224,178,90,213,199,149,23,77,34,63,179,
-109,198,57,110,211,14,122,23,179,102,123,227,184,64,47,28,195,54,141,82,184,
-91,75,65,91,108,102,79,45,157,167,228,208,160,125,177,142,106,123,212,47,175,
-121,182,93,29,111,93,93,145,210,231,189,246,51,198,19,142,138,177,95,224,187,
-88,47,239,163,189,21,85,147,91,129,170,201,173,64,213,156,244,138,89,75,216,
-207,219,237,127,1,190,39,240,204,169,220,136,220,0,0,0,0,73,69,78,68,174,66,
-96,130 };
+0,0,14,191,0,0,14,191,1,56,5,83,36,0,0,0,24,116,69,88,116,83,111,102,116,119,
+97,114,101,0,112,97,105,110,116,46,110,101,116,32,52,46,49,46,49,99,42,156,75,
+0,0,28,245,73,68,65,84,120,94,237,92,59,200,117,75,82,189,8,134,166,26,138,32,
+152,152,12,8,34,6,3,142,163,32,98,160,78,48,42,226,24,24,56,160,201,205,20,52,
+80,49,184,32,42,200,68,87,3,131,97,20,20,196,72,196,216,71,100,162,137,152,
+104,164,32,138,137,136,28,123,213,234,58,181,234,209,231,236,243,63,152,59,48,
+117,88,223,183,187,106,117,117,117,117,117,239,189,207,247,223,251,193,237,
+131,219,13,248,160,136,235,39,155,139,114,30,241,32,87,120,87,56,144,171,60,
+200,35,222,85,63,202,123,133,187,85,239,60,134,173,98,107,208,95,145,171,253,
+148,247,10,119,171,142,114,149,171,188,19,247,145,13,114,165,239,163,254,144,
+87,121,187,249,84,222,165,223,119,197,113,113,238,85,159,207,120,46,239,131,
+175,156,43,188,221,124,40,234,239,74,159,71,252,147,222,229,153,93,229,10,247,
+10,103,18,237,119,181,239,171,124,200,213,62,87,121,85,94,233,119,133,247,170,
+175,119,205,133,188,202,175,114,181,239,43,99,188,107,159,206,59,113,213,126,
+226,168,92,229,190,47,127,95,107,188,183,209,87,155,203,201,254,170,222,229,
+153,29,114,213,94,57,207,250,65,78,28,215,87,219,73,239,162,246,19,199,229,77,
+185,91,149,228,170,125,55,147,124,146,108,39,241,62,239,163,223,21,142,202,
+171,124,151,123,191,123,239,130,170,201,173,64,213,228,86,160,106,78,122,197,
+172,37,246,149,58,216,83,179,201,169,126,76,76,229,24,110,183,143,23,62,66,75,
+197,152,153,187,45,33,198,120,192,217,90,250,127,192,83,129,237,206,251,220,
+253,10,241,65,62,190,107,22,118,151,38,203,22,62,28,87,231,121,187,253,247,
+194,23,68,231,87,95,88,248,183,133,207,138,13,242,217,5,232,97,223,94,71,191,
+191,176,128,24,178,126,181,174,136,245,186,208,207,88,153,247,74,158,182,165,
+139,49,47,112,141,149,121,137,27,154,110,115,49,235,193,94,108,99,127,136,177,
+94,231,109,237,89,10,255,173,252,190,41,231,222,18,152,62,115,111,183,95,73,
+173,0,246,85,214,176,191,106,20,149,127,242,187,96,126,248,9,237,196,135,174,
+106,159,243,232,95,237,138,62,175,230,51,245,127,20,67,183,229,86,181,151,113,
+18,158,112,45,38,126,142,28,192,37,233,171,111,96,242,47,237,161,79,110,77,
+224,39,52,67,124,134,87,107,107,193,236,87,253,3,202,141,123,68,134,198,241,
+200,87,205,69,225,90,108,222,190,192,133,220,117,15,248,137,119,130,246,47,99,
+37,60,224,181,113,222,196,103,158,69,6,63,89,163,173,236,135,56,173,25,80,253,
+93,89,223,117,229,146,56,64,230,93,245,7,228,150,163,206,231,148,195,202,187,
+58,238,11,241,217,124,249,121,174,247,56,167,245,168,115,232,156,217,231,19,
+189,139,89,31,216,33,198,24,236,119,77,141,137,207,93,95,177,223,174,43,243,
+112,89,173,232,171,249,173,57,245,254,117,172,226,183,217,137,61,90,22,232,
+133,99,216,166,81,18,183,214,194,80,3,169,165,113,213,152,249,97,171,250,125,
+212,47,143,153,109,87,199,171,253,10,92,86,43,51,171,207,19,106,191,152,223,
+135,11,246,204,63,229,206,198,84,141,162,250,124,198,119,104,191,106,115,84,
+77,110,5,170,38,183,2,85,115,187,125,155,93,85,189,98,214,18,251,74,29,216,
+228,33,166,13,253,88,204,149,99,248,36,191,104,254,156,253,140,23,185,223,22,
+219,194,238,210,196,88,194,51,124,253,69,179,137,49,51,119,91,186,24,243,2,
+215,88,153,151,184,161,233,54,23,179,186,253,211,247,43,2,237,172,217,189,178,
+24,235,117,222,214,158,165,240,223,202,239,155,114,118,11,245,246,63,11,56,76,
+183,213,62,222,130,160,54,255,203,174,66,62,76,55,8,32,231,216,191,212,113,
+233,124,142,89,133,7,58,80,215,104,230,127,152,56,228,213,177,49,191,105,47,2,
+149,251,81,139,19,224,216,120,32,249,212,130,230,15,253,211,23,87,155,31,251,
+57,219,252,234,116,14,192,63,198,137,245,224,24,117,14,144,118,102,44,125,142,
+61,214,110,138,29,240,156,78,121,116,27,207,155,0,124,230,135,51,32,214,223,
+231,160,194,249,244,53,157,184,31,63,169,45,196,163,18,53,211,231,63,215,2,
+172,26,11,31,70,106,157,231,154,157,99,117,201,53,160,235,187,52,146,243,94,
+47,225,55,230,17,152,248,152,127,93,19,240,16,187,141,183,209,107,140,235,16,
+57,8,30,207,128,224,157,98,66,27,250,79,9,215,235,164,10,227,113,94,172,33,
+124,184,112,30,181,46,120,207,118,110,246,227,32,167,174,201,236,143,235,235,
+243,132,112,14,240,17,60,91,39,200,214,68,94,50,207,253,213,58,252,184,141,59,
+207,57,231,15,232,190,92,242,190,228,184,154,111,174,165,214,233,204,99,14,
+235,60,246,156,77,123,69,31,249,158,206,11,221,63,211,154,205,62,159,232,93,
+204,250,192,14,49,70,177,75,15,172,65,221,75,253,44,163,46,157,171,144,101,11,
+223,172,61,172,217,71,45,167,236,119,58,219,255,112,225,119,23,122,13,16,123,
+180,44,208,11,199,176,77,163,36,46,107,1,99,35,222,207,182,90,137,26,237,113,
+179,134,24,43,52,26,7,115,224,53,150,215,59,244,172,79,205,81,140,135,120,114,
+30,24,3,247,28,52,58,94,142,211,247,49,253,83,239,115,143,62,0,99,199,56,144,
+152,75,232,251,88,0,243,150,207,170,154,187,220,250,181,5,196,2,124,201,116,
+213,103,204,1,168,123,62,230,2,158,179,130,159,81,53,185,21,168,26,254,252,
+230,133,95,93,248,158,221,158,120,127,181,240,125,77,175,152,181,196,190,82,
+199,182,64,16,211,134,126,44,230,202,49,248,166,43,93,140,153,185,219,18,98,
+140,7,156,173,165,255,7,60,21,216,238,60,22,12,22,16,155,252,83,181,88,118,
+151,38,198,18,158,225,234,60,177,177,242,1,164,214,106,131,60,63,220,200,251,
+250,139,230,146,208,116,155,139,89,221,206,67,17,185,229,65,90,243,63,244,135,
+24,235,117,222,214,158,165,240,223,202,239,155,112,238,87,172,229,127,95,152,
+111,38,64,169,205,253,27,55,150,252,226,195,28,251,225,93,15,116,212,108,189,
+241,230,155,24,1,30,117,125,143,116,126,95,71,8,31,40,84,171,188,233,70,23,92,
+244,61,189,116,221,185,150,211,224,191,207,23,77,252,230,77,188,222,228,202,
+186,88,76,252,76,28,248,112,159,14,140,133,51,145,54,181,0,49,118,220,248,9,
+248,68,140,57,118,174,63,98,1,223,206,200,13,240,225,167,191,196,247,249,122,
+59,159,245,244,237,126,116,109,157,79,157,222,160,1,95,159,208,160,13,126,174,
+175,240,173,113,224,129,48,30,130,24,131,35,214,15,109,245,5,20,187,173,13,45,
+189,94,240,197,167,198,21,150,200,141,107,0,198,88,185,152,35,68,215,137,99,
+233,23,171,28,11,92,205,9,174,63,26,120,240,133,156,112,142,26,143,114,115,94,
+128,224,233,122,147,167,62,157,55,213,5,120,16,212,103,223,39,0,253,97,142,62,
+231,240,215,215,3,227,97,158,224,156,198,213,117,2,34,167,207,235,150,168,245,
+135,126,140,81,243,221,235,165,231,16,126,225,191,190,144,162,174,144,63,219,
+243,11,81,55,207,121,185,22,8,206,153,159,231,122,157,183,234,105,251,157,5,
+175,21,204,183,158,139,179,207,39,122,23,179,62,176,67,140,81,236,187,133,184,
+120,86,134,29,2,61,230,19,245,197,218,71,190,0,211,154,31,245,205,117,229,190,
+233,181,129,156,243,89,51,235,145,59,232,241,66,210,237,68,215,80,219,44,22,
+212,65,18,55,106,4,191,49,110,94,23,214,158,199,150,191,180,168,185,208,250,
+102,14,80,167,172,109,173,105,246,139,156,171,79,142,23,121,215,154,100,191,
+240,169,227,69,156,172,63,106,125,110,208,147,57,223,3,24,255,249,26,125,106,
+63,223,131,191,188,0,222,23,23,114,253,96,44,94,97,124,196,140,121,161,31,227,
+211,156,0,204,25,234,163,222,35,1,244,197,158,205,53,149,57,129,170,201,173,
+64,213,240,231,47,45,252,243,2,214,156,22,229,0,183,219,183,47,252,111,211,43,
+248,243,71,23,126,104,95,3,223,97,191,119,75,29,239,242,28,54,115,92,5,234,66,
+2,190,233,178,182,115,99,97,2,117,49,38,142,251,207,218,220,82,232,184,44,222,
+216,252,90,216,64,92,101,212,184,128,171,243,68,223,220,95,173,221,183,110,
+202,199,188,249,69,19,188,104,157,49,197,169,118,71,29,23,200,173,192,85,159,
+64,229,162,173,118,199,52,126,245,171,156,201,143,142,21,53,192,135,150,90,3,
+167,152,107,28,87,120,39,142,226,93,250,125,149,19,87,126,115,193,161,24,181,
+199,143,115,33,181,54,163,173,60,230,24,123,35,31,252,142,28,3,196,15,242,202,
+229,30,235,251,52,241,199,243,138,60,196,96,123,196,197,88,110,231,97,127,61,
+78,96,26,155,22,142,165,92,224,148,163,240,28,181,168,118,250,199,56,24,15,
+156,120,88,172,123,167,172,139,197,196,207,196,137,111,209,195,138,126,88,127,
+214,128,246,3,98,206,184,209,250,203,1,44,248,13,125,142,157,235,63,159,143,
+58,23,213,230,249,186,22,215,167,151,49,158,125,25,136,7,190,251,95,158,122,
+31,196,193,188,43,55,114,145,235,161,236,27,203,49,91,225,199,44,246,113,30,
+36,217,165,95,175,151,120,248,136,181,38,194,135,107,128,206,245,245,0,52,247,
+92,139,249,33,143,249,34,112,157,243,65,94,93,27,252,70,123,252,75,224,189,
+165,57,239,103,112,173,143,240,233,26,128,227,3,115,14,128,249,222,193,177,
+117,206,64,248,115,76,60,181,35,46,212,3,231,95,253,49,55,176,235,122,157,246,
+40,124,176,78,78,188,213,146,28,134,239,62,46,198,211,58,157,243,163,107,64,
+68,28,202,243,113,249,121,174,215,216,84,15,228,28,115,124,213,184,61,215,206,
+89,191,90,42,102,125,96,135,24,163,216,119,107,174,179,41,47,200,121,201,179,
+249,81,223,228,32,191,83,109,192,39,108,143,94,52,191,212,250,17,126,149,235,
+134,31,229,245,201,139,36,238,239,219,79,204,135,95,24,162,173,118,206,5,249,
+233,123,150,182,136,69,215,168,246,227,167,246,67,109,230,58,166,45,242,251,
+200,166,227,177,78,144,67,196,130,113,209,142,241,189,230,106,29,241,175,139,
+240,233,124,240,30,175,47,251,249,30,242,62,189,70,121,6,129,51,201,169,222,
+252,236,245,185,64,160,67,60,158,235,184,31,71,111,199,247,46,252,105,211,222,
+110,255,177,240,19,187,21,200,45,8,126,254,211,194,15,88,235,118,251,214,133,
+19,175,235,21,183,219,111,218,79,202,175,47,64,251,159,11,223,226,28,117,96,
+137,134,152,54,244,16,252,212,68,78,127,62,134,128,227,15,51,46,125,19,70,33,
+161,232,93,242,67,14,57,88,136,42,249,69,51,110,52,26,31,23,87,11,162,251,170,
+223,16,227,167,250,64,97,114,131,40,143,220,58,79,204,35,255,211,0,242,222,
+234,159,206,46,96,28,250,206,188,249,69,51,252,226,16,115,241,13,226,50,125,
+251,230,227,162,159,175,9,115,168,60,114,241,83,243,196,248,174,249,228,195,
+204,92,15,207,215,26,224,216,88,27,248,66,140,113,35,163,31,141,45,255,51,166,
+62,70,190,9,234,186,80,19,7,90,230,33,159,204,79,230,69,188,221,23,198,230,
+252,163,93,199,135,95,229,96,46,121,29,250,216,206,211,177,209,31,126,84,232,
+215,57,145,21,196,225,254,224,7,120,250,66,179,16,253,50,47,114,182,181,42,75,
+83,253,234,248,228,208,114,242,159,248,134,186,239,200,67,158,56,23,71,62,15,
+90,156,9,179,207,62,54,193,177,84,3,104,206,178,205,175,162,70,212,30,177,97,
+239,96,221,34,70,126,148,155,214,197,242,119,230,192,143,174,33,128,28,65,207,
+223,218,15,200,115,142,250,160,79,232,31,158,97,46,184,94,136,156,231,62,211,
+90,244,156,22,158,11,174,55,16,219,116,190,213,90,136,121,228,243,1,177,231,
+124,3,57,159,58,102,172,95,231,65,146,93,250,245,185,161,222,98,126,176,187,
+133,220,254,133,75,205,25,198,194,67,10,190,16,128,30,246,88,11,205,73,220,51,
+209,23,118,128,126,52,31,153,7,159,240,23,99,230,51,34,174,104,143,115,140,31,
+90,24,23,226,212,26,140,60,185,134,120,102,55,142,203,214,68,14,107,29,196,
+124,128,200,159,238,245,224,120,238,240,23,12,242,122,93,129,163,231,44,120,
+167,127,133,129,57,195,238,210,253,229,22,250,244,26,5,226,101,157,235,192,26,
+153,190,148,171,117,31,245,160,188,213,203,242,199,207,115,189,174,161,234,
+129,200,95,228,87,237,186,62,89,143,53,70,46,199,216,92,208,22,91,179,67,140,
+33,118,97,51,103,61,79,94,215,81,95,121,63,90,158,155,111,172,159,251,172,107,
+201,254,253,62,226,122,71,93,91,194,175,34,46,106,59,151,107,60,201,148,95,
+238,33,143,89,237,156,11,235,8,26,29,43,114,193,53,215,185,178,95,212,170,246,
+163,45,106,174,247,67,76,240,249,248,69,83,109,145,63,140,233,18,103,13,227,
+239,239,39,58,183,184,102,30,130,213,215,131,113,224,249,21,92,246,175,156,
+168,121,112,241,108,138,92,129,207,152,106,13,104,190,212,111,196,132,107,114,
+162,143,95,125,247,194,31,47,252,227,194,79,222,181,142,219,237,51,11,127,98,
+87,250,194,217,121,63,182,240,55,187,245,23,11,191,97,215,157,199,171,170,87,
+220,110,255,183,240,157,187,245,71,80,44,249,131,133,123,63,117,96,27,9,98,
+218,208,67,48,105,95,144,40,28,229,144,135,36,241,197,131,26,252,238,135,7,
+245,224,197,34,247,197,136,190,212,96,92,180,243,6,98,81,122,225,184,150,11,
+166,7,10,15,103,248,98,241,206,135,50,54,53,138,4,26,180,57,23,229,145,91,231,
+137,246,244,48,240,54,47,154,17,79,223,52,143,94,52,125,83,64,131,252,66,60,
+55,176,79,235,225,185,245,249,123,123,122,240,228,92,67,131,49,192,157,230,
+162,62,161,141,57,101,110,196,69,141,207,35,175,53,185,24,155,227,185,54,108,
+136,69,199,203,135,66,212,0,115,223,215,43,108,212,192,15,252,213,155,37,236,
+190,78,208,68,191,224,160,47,15,102,106,252,229,216,107,30,243,200,126,25,31,
+244,200,19,250,245,131,246,202,216,249,102,22,124,245,19,135,163,143,135,235,
+88,203,190,31,225,7,54,149,254,205,168,230,108,105,170,24,59,243,211,154,25,
+135,150,62,175,224,171,156,246,40,230,164,194,121,133,61,197,185,129,92,184,
+76,181,87,199,86,121,31,47,154,16,196,100,22,203,77,207,95,170,135,11,28,228,
+197,125,198,248,212,77,251,93,215,7,124,228,27,58,244,129,190,198,222,226,129,
+224,122,131,245,166,154,190,22,240,193,189,242,128,167,130,246,2,231,54,63,
+100,168,248,56,57,87,188,151,192,6,97,189,192,146,31,44,116,60,205,95,246,5,
+20,187,244,99,156,202,141,253,136,241,61,223,0,207,144,58,39,158,21,186,150,
+184,6,48,22,215,133,227,243,12,201,251,217,175,60,159,247,26,219,159,202,131,
+47,204,3,95,124,208,223,99,46,215,46,44,97,13,95,86,31,27,145,39,215,16,207,
+236,202,113,96,46,204,95,61,195,152,99,95,95,8,99,84,30,207,78,173,179,184,
+174,107,64,174,2,99,79,207,1,88,23,125,94,128,223,124,30,17,126,21,235,78,109,
+246,23,247,9,149,233,5,10,227,212,113,167,243,146,181,89,199,57,233,53,62,213,
+3,57,127,211,151,62,97,203,122,196,136,156,100,159,53,199,186,86,132,197,168,
+98,12,177,239,171,168,161,234,131,53,137,152,98,61,242,126,156,247,7,207,11,
+216,198,47,13,134,88,238,122,23,179,102,187,206,57,226,66,187,207,189,79,94,
+36,113,159,229,49,106,10,243,101,84,110,203,207,10,121,174,204,65,228,72,251,
+209,22,251,93,251,113,60,244,195,252,166,191,90,198,122,105,93,211,230,53,4,
+59,160,53,142,56,78,127,76,65,125,65,208,23,95,200,145,27,210,215,145,115,128,
+111,140,193,113,42,39,114,139,249,0,24,11,190,17,231,244,242,138,49,157,23,
+235,75,29,243,200,49,191,36,125,126,106,225,203,11,152,195,47,46,208,226,246,
+224,249,213,119,45,252,229,194,223,45,124,62,113,128,219,237,207,23,126,126,
+183,190,127,1,255,233,212,55,12,60,94,85,189,162,107,190,241,126,189,53,234,
+96,151,231,120,176,224,167,39,219,229,244,18,130,36,170,22,186,250,192,0,142,
+39,244,52,102,226,108,208,191,106,162,232,170,176,128,157,23,5,195,27,101,47,
+68,240,177,208,174,137,13,162,60,160,207,19,253,242,120,228,189,233,139,38,98,
+164,63,88,122,161,62,251,139,166,23,110,204,161,182,115,191,202,3,122,174,129,
+206,243,252,215,53,158,124,66,7,110,157,247,181,181,6,122,238,35,7,244,143,
+141,200,155,56,180,122,128,69,13,32,174,233,191,119,11,27,53,243,220,226,80,
+246,152,25,147,30,136,228,32,78,0,254,192,241,195,109,206,3,227,243,57,196,
+225,169,235,31,126,125,108,94,235,216,113,21,241,163,173,126,120,56,250,88,94,
+247,209,206,254,32,176,233,122,186,239,135,47,13,85,22,167,250,141,189,179,
+249,248,157,244,15,248,6,93,227,224,105,142,8,229,149,56,11,184,158,85,59,141,
+77,112,44,213,0,154,179,108,243,171,168,55,181,71,108,254,215,169,152,7,63,
+202,77,235,98,249,123,204,1,176,198,248,205,121,146,133,235,233,76,175,115,6,
+31,253,127,102,1,250,211,25,118,143,7,130,235,133,200,121,238,227,122,149,126,
+211,215,254,75,227,130,235,13,206,167,247,211,90,240,248,17,103,206,85,60,80,
+57,15,210,254,105,165,140,137,57,114,253,204,98,31,231,65,146,93,250,49,30,
+229,70,79,205,95,228,190,214,56,207,10,112,112,175,64,159,120,49,241,181,36,
+56,111,221,251,49,79,196,225,247,26,203,105,226,229,17,61,31,228,209,58,249,
+196,120,158,107,206,89,121,92,67,141,21,136,60,185,134,120,102,215,113,145,3,
+172,235,125,236,50,151,186,190,0,99,213,245,237,231,107,212,92,61,19,87,203,
+101,107,230,56,179,63,96,222,7,17,95,172,59,218,252,4,143,246,168,97,142,203,
+61,173,60,214,136,175,27,4,121,103,238,149,183,231,129,223,162,59,235,117,13,
+85,15,196,152,156,111,93,3,222,119,250,153,125,210,199,186,186,212,51,202,98,
+84,129,238,110,143,156,158,99,226,24,200,183,174,155,95,133,141,218,176,112,
+174,240,249,110,95,52,243,154,169,180,123,210,118,51,74,225,110,45,5,109,177,
+65,242,190,204,118,191,66,92,249,124,101,14,226,156,209,126,180,33,111,60,207,
+180,31,199,225,94,129,70,215,221,107,65,247,129,107,184,63,49,22,98,113,173,
+215,63,190,8,163,207,83,125,17,190,166,184,135,193,23,230,14,31,152,127,126,
+222,200,123,18,118,60,151,213,251,23,250,234,187,145,202,135,67,189,177,102,
+116,76,90,152,95,94,51,167,209,231,183,236,39,102,18,158,178,95,32,183,126,
+112,225,95,22,254,54,105,129,219,237,71,164,5,252,240,194,55,37,13,224,87,85,
+175,152,181,196,190,82,7,187,4,199,34,196,162,112,193,9,92,79,15,37,181,0,102,
+46,57,44,76,71,63,96,58,199,253,171,70,199,200,220,233,127,153,28,11,171,54,
+160,251,136,13,162,60,160,207,19,253,152,159,204,123,147,23,77,108,24,124,187,
+16,55,146,94,168,95,171,47,154,17,95,230,94,91,107,160,231,62,114,192,67,8,
+192,56,216,248,121,77,162,6,24,67,175,129,176,81,51,207,45,251,137,7,110,173,
+225,92,111,120,97,64,204,240,75,127,248,182,170,62,184,176,15,56,88,251,249,
+69,147,7,166,143,253,227,11,240,127,229,175,149,176,7,39,30,168,38,201,121,3,
+24,23,198,100,76,4,215,77,121,225,183,174,39,209,247,121,236,29,229,121,236,
+53,71,133,63,158,87,228,221,99,112,49,150,219,135,56,141,195,107,142,237,45,
+199,52,54,45,61,15,128,230,44,219,252,202,235,163,230,58,234,46,234,1,99,156,
+30,146,238,235,98,49,233,60,7,206,2,230,23,255,105,64,232,166,51,189,174,143,
+199,230,200,123,153,121,101,254,66,235,192,88,152,75,61,127,116,190,97,169,
+115,125,92,91,158,167,103,255,141,166,143,213,243,201,189,165,152,214,143,57,
+102,11,243,129,29,60,248,169,227,214,188,59,24,143,106,114,79,207,95,228,177,
+230,130,177,186,127,228,13,92,95,35,244,241,254,204,169,198,22,103,19,215,130,
+28,92,215,7,180,227,92,77,223,125,134,159,205,129,36,222,188,214,184,134,46,
+239,131,232,21,99,103,187,158,135,62,23,179,180,113,131,171,232,126,25,59,124,
+77,146,215,236,138,63,128,243,243,250,3,34,7,202,163,191,158,159,58,15,173,11,
+98,246,23,247,1,7,226,235,231,205,242,254,48,95,248,173,122,142,199,251,142,
+234,1,246,241,218,235,62,87,235,165,177,92,239,168,246,213,170,98,12,183,179,
+127,222,135,106,7,104,71,254,116,221,148,17,249,238,231,5,247,216,33,46,211,
+14,122,23,179,102,187,206,57,226,66,187,143,1,65,92,147,212,251,215,30,145,
+130,182,216,244,220,102,221,169,61,234,136,118,125,214,136,125,223,215,155,
+182,200,189,246,227,120,177,239,117,110,156,127,236,37,112,221,166,181,71,141,
+3,190,32,125,157,8,109,249,60,225,3,247,65,232,224,23,250,188,119,99,45,192,
+135,111,206,85,57,156,75,244,15,46,25,53,22,218,128,200,13,175,113,238,192,71,
+223,207,252,201,255,46,243,118,251,215,133,207,155,206,237,153,135,151,200,
+191,94,248,251,133,159,54,221,204,235,168,154,147,94,49,107,137,125,165,14,
+118,9,14,69,200,4,32,121,104,225,55,100,122,40,65,146,238,55,154,5,112,217,
+206,60,36,22,122,47,22,252,254,98,225,160,111,60,108,243,55,218,121,3,177,152,
+177,104,44,88,106,209,55,127,147,64,30,124,240,160,213,162,7,24,187,250,128,
+79,142,175,188,224,70,33,113,60,246,205,188,183,249,167,179,145,187,30,235,87,
+243,69,19,122,142,77,156,214,24,62,161,87,46,251,234,193,65,238,181,181,38,
+151,113,169,54,108,252,63,130,177,133,223,204,133,219,163,6,168,239,113,120,
+204,136,7,26,252,134,60,122,32,192,151,2,156,99,191,9,121,94,193,241,184,192,
+69,187,255,229,133,7,150,207,15,99,179,166,244,16,206,135,62,208,57,156,103,
+221,19,249,70,21,241,51,246,0,226,228,222,84,109,204,197,231,225,253,243,26,
+197,188,235,218,131,143,118,173,147,152,103,104,231,121,157,248,149,67,30,230,
+111,227,187,24,203,237,231,56,1,180,167,218,75,99,155,79,90,56,150,114,1,205,
+153,234,57,54,192,126,189,14,61,183,24,15,26,228,28,251,97,250,43,95,93,151,
+158,143,206,113,127,58,111,92,79,103,250,180,62,222,31,185,203,235,201,185,
+185,29,243,115,139,231,250,209,63,167,179,249,186,24,75,121,231,53,243,254,
+212,205,55,118,229,35,62,248,168,223,178,99,124,229,77,235,199,216,216,130,31,
+216,193,99,180,193,211,253,172,249,139,177,149,155,253,34,14,112,200,51,171,
+125,130,223,207,129,58,63,140,137,123,93,143,45,242,229,235,19,249,203,181,
+168,49,165,185,154,62,251,244,117,241,154,13,104,61,242,108,210,154,242,177,
+199,191,10,237,171,24,59,219,235,153,153,173,125,31,96,92,229,49,111,58,103,
+214,152,34,226,235,251,20,115,134,93,121,211,63,221,174,185,241,245,205,243,
+97,110,192,133,159,57,207,128,246,167,102,174,169,60,151,115,158,157,55,231,
+171,199,201,156,127,208,242,1,212,252,213,189,120,30,107,158,195,98,169,160,
+45,182,102,135,24,195,237,189,222,178,29,208,156,135,158,190,216,66,108,124,
+110,212,184,233,155,168,243,241,254,252,52,189,139,89,179,221,56,251,42,213,
+194,254,40,175,79,94,164,112,183,150,130,182,216,124,46,177,143,212,206,53,
+155,235,39,242,203,243,71,251,209,134,216,121,134,246,126,145,215,171,182,216,
+239,28,143,240,216,32,212,215,245,136,243,50,98,213,49,244,218,153,0,243,129,
+62,0,174,57,182,114,152,31,204,19,54,248,194,203,43,252,205,185,214,156,208,
+47,4,181,143,63,90,224,55,36,223,39,163,55,240,233,133,63,91,152,254,82,137,
+191,96,254,195,194,207,46,132,69,57,64,110,5,170,230,164,87,204,90,98,95,169,
+3,75,10,196,180,161,135,32,193,46,88,12,22,156,114,200,67,162,253,191,69,131,
+224,97,35,23,24,192,66,242,4,67,224,47,47,48,57,58,46,56,24,59,63,0,230,27,
+174,11,11,73,15,57,22,67,20,83,45,68,22,136,23,43,36,190,241,87,30,185,240,
+207,13,73,96,46,125,14,111,255,63,3,242,249,231,57,127,117,95,52,107,158,120,
+35,170,107,28,62,241,63,77,114,97,142,106,238,175,174,53,208,115,31,190,122,
+108,249,80,100,13,40,39,31,24,61,142,185,214,243,161,197,26,71,155,159,202,65,
+188,156,119,237,211,107,80,185,30,103,253,63,168,249,149,239,31,252,206,181,
+206,120,48,134,10,199,204,28,222,216,151,198,246,61,45,0,226,200,185,225,122,
+250,190,118,233,47,13,49,239,186,22,243,89,16,243,80,137,245,213,121,61,226,
+43,135,60,248,192,60,108,110,144,165,15,95,17,39,0,158,10,107,90,25,0,199,190,
+175,165,249,164,133,99,41,23,208,125,149,245,94,99,28,231,124,22,113,109,9,
+159,119,61,11,166,117,249,202,192,209,253,61,249,71,14,174,190,104,2,224,247,
+60,69,94,167,184,56,94,95,211,20,143,139,177,148,119,174,45,72,236,195,158,
+207,123,45,8,208,230,188,92,211,247,63,164,62,152,51,54,182,48,30,242,138,185,
+50,218,224,77,231,141,203,248,82,37,126,189,15,227,51,171,125,18,127,95,121,
+93,232,90,62,238,175,107,23,125,48,23,228,80,107,64,99,74,115,53,125,247,57,
+73,174,145,88,67,229,35,231,189,46,162,21,99,103,59,100,202,47,132,115,87,46,
+215,87,199,37,167,156,175,46,91,227,254,167,191,148,215,26,135,239,62,15,142,
+235,249,133,204,103,33,235,37,237,55,139,131,159,234,79,235,244,116,182,214,
+248,78,251,15,177,241,185,40,235,193,207,235,71,189,251,237,231,5,215,23,177,
+113,14,125,44,204,11,99,213,51,17,49,192,103,214,175,222,42,104,139,173,217,
+33,198,112,123,188,152,176,198,172,135,125,188,5,193,124,16,175,206,147,190,
+216,138,152,53,199,212,163,223,71,83,237,90,127,126,154,222,197,172,217,110,
+156,125,21,113,81,219,184,219,205,40,133,187,181,20,180,197,230,53,133,245,
+238,53,76,91,196,162,251,160,246,83,191,209,143,247,30,205,29,109,81,119,143,
+108,58,30,247,136,231,93,5,49,168,62,223,39,89,151,240,25,231,53,225,251,104,
+222,67,140,69,207,140,254,69,18,125,143,120,146,107,8,126,171,53,160,107,80,
+109,196,103,154,230,118,251,61,105,5,170,38,183,2,85,115,210,43,102,45,177,
+175,212,129,37,5,98,218,208,67,180,69,212,67,23,96,17,116,212,77,56,45,76,245,
+119,90,188,62,110,110,41,248,97,171,250,171,49,169,141,136,162,172,150,211,60,
+107,108,104,103,157,95,205,190,95,245,139,86,213,71,235,140,201,159,218,29,
+149,7,228,86,160,231,51,14,24,229,1,149,59,175,53,111,14,85,59,197,234,87,147,
+77,199,170,227,212,249,205,113,76,121,200,173,208,170,37,219,38,212,60,76,241,
+3,243,28,112,64,225,80,197,225,202,145,221,114,242,163,243,40,28,151,187,174,
+206,249,74,108,68,110,85,92,157,243,130,197,195,79,104,39,126,141,21,16,158,
+203,106,41,143,58,111,85,60,241,9,164,254,143,248,213,86,252,188,146,147,167,
+190,128,43,156,9,181,31,80,250,166,57,3,189,79,110,77,224,39,52,195,24,144,
+213,202,188,218,202,192,57,131,135,5,62,48,168,69,252,155,223,176,228,248,99,
+111,101,228,245,233,62,238,22,251,132,230,228,15,168,107,254,200,47,80,125,
+215,214,51,104,255,146,239,132,188,158,199,152,76,255,134,62,147,77,161,254,
+92,163,173,236,135,184,62,238,75,235,11,73,28,160,174,217,105,108,126,66,115,
+109,220,145,103,113,188,169,191,171,241,241,94,210,255,51,5,239,95,243,120,
+210,3,53,182,26,19,159,11,112,111,207,47,181,103,159,150,3,23,179,62,176,67,
+140,225,118,125,214,90,154,102,39,7,54,190,68,133,158,220,96,225,133,228,252,
+215,239,58,79,239,207,79,211,187,152,53,219,141,211,52,212,54,203,118,51,74,
+225,110,45,5,109,177,249,92,230,23,106,190,172,99,254,124,89,215,185,198,75,
+19,95,52,117,253,216,47,158,3,213,39,199,139,188,107,94,217,47,124,234,120,
+181,190,78,168,117,116,181,95,93,199,232,199,61,50,113,86,235,145,24,91,249,
+225,19,243,215,47,130,92,48,86,238,23,189,51,170,38,183,2,85,147,91,129,170,
+57,233,21,179,150,216,87,234,96,167,165,39,102,171,147,84,206,198,182,102,129,
+94,56,35,207,24,79,56,16,99,93,224,65,140,121,224,21,27,4,139,203,5,38,80,228,
+253,159,181,17,219,75,22,232,133,99,188,253,97,59,14,166,126,104,17,219,83,22,
+99,21,158,125,120,149,244,87,196,122,93,232,103,172,204,59,14,96,76,229,234,1,
+83,186,53,238,106,169,108,237,252,162,41,220,208,116,155,139,89,15,246,98,27,
+251,67,140,245,58,111,107,207,82,248,215,252,242,96,143,111,82,239,61,237,115,
+221,207,129,227,82,184,87,125,30,121,46,198,126,199,124,99,100,206,21,222,214,
+206,82,184,79,251,192,38,188,196,199,111,209,221,245,46,102,125,96,87,49,230,
+19,174,49,158,112,38,177,94,185,223,211,190,176,11,247,41,31,98,61,46,244,49,
+214,21,158,50,128,250,144,113,232,7,49,230,19,222,21,14,164,240,222,25,23,98,
+236,23,248,85,172,247,133,190,87,121,144,171,220,55,228,53,174,89,179,189,113,
+84,96,19,222,145,107,172,247,231,239,147,207,243,127,234,119,216,55,166,189,
+166,191,219,92,208,22,27,132,15,236,250,210,65,204,252,173,119,49,171,218,227,
+153,42,160,243,240,103,173,109,27,125,232,11,79,232,141,11,217,26,231,232,43,
+203,102,156,227,54,237,160,119,49,107,182,55,142,11,244,194,49,108,211,40,133,
+187,181,20,180,197,166,179,234,127,4,225,154,97,238,167,47,181,97,135,228,191,
+126,135,158,95,254,233,186,196,120,88,27,250,118,13,99,64,31,62,143,235,120,
+235,234,138,148,62,111,213,47,181,168,105,156,71,98,236,194,79,173,19,180,95,
+181,57,170,38,183,2,85,147,91,129,170,57,233,21,179,150,216,87,234,96,167,165,
+39,102,171,147,84,206,198,182,102,129,94,56,35,207,24,79,56,16,99,93,224,65,
+140,121,224,21,27,4,63,81,244,46,44,254,126,32,2,219,75,22,232,133,99,188,253,
+97,155,135,30,132,27,242,112,216,86,49,86,225,217,135,87,73,127,69,172,215,
+133,126,198,202,188,227,0,198,84,46,15,230,175,191,104,62,144,194,191,230,55,
+14,239,71,55,79,211,85,185,194,113,41,220,171,62,143,60,23,99,191,99,190,49,
+50,231,10,111,107,103,41,220,167,125,96,19,94,226,227,183,232,238,122,23,179,
+62,176,171,24,243,9,215,24,79,56,147,88,175,220,239,105,95,216,133,251,148,15,
+177,30,23,250,24,235,2,175,138,245,186,216,207,152,79,120,87,56,144,194,123,
+103,92,136,177,95,224,87,177,222,23,250,94,229,65,174,114,223,144,215,184,102,
+205,246,198,81,129,77,120,71,174,177,222,159,191,79,62,143,95,94,126,112,251,
+220,130,234,119,127,211,94,211,223,109,46,104,139,237,141,199,114,49,171,218,
+243,51,155,75,252,103,12,62,222,130,203,106,85,31,87,94,52,137,252,204,182,25,
+231,184,77,59,232,93,204,154,237,141,227,2,189,112,12,219,52,74,225,110,45,5,
+109,177,153,61,181,116,158,146,67,131,246,197,58,170,237,81,191,188,230,217,
+118,117,188,117,117,69,74,159,119,218,207,24,79,56,42,198,126,129,239,98,189,
+188,143,246,86,84,77,110,5,170,38,183,2,85,115,210,43,102,45,97,63,111,183,
+255,7,75,130,239,160,228,48,106,172,0,0,0,0,73,69,78,68,174,66,96,130 };
+
static const char*
default_charset = R"( abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.!?;:-_/|\!'"+=*()[]{}&%$#@<>^`~)";