├── .gitattributes ├── .gitignore ├── .vscode └── settings.json ├── CMakeLists.txt ├── CMakeSettings.json ├── Examples ├── BeginEnd │ ├── 01_FirstProgram.cpp │ ├── 02_PointLineTriangleCircle.cpp │ ├── 04_WeWriteMinesweeperGame.cpp │ └── CMakeLists.txt ├── CMakeLists.txt ├── DirectX │ ├── CMakeLists.txt │ ├── DirectX6 │ │ ├── CMakeLists.txt │ │ └── DirectX6Loader.cpp │ └── DirectX9 │ │ ├── CMakeLists.txt │ │ └── DirectX9Loader.cpp ├── Glide │ ├── 01_Glide_Screen.cpp │ └── CMakeLists.txt ├── LDLC │ ├── CMakeLists.txt │ ├── Data │ │ ├── 1.ogg │ │ ├── Gorgosaurus_BW_transparent.bmp │ │ ├── Gorgosaurus_BW_transparent.png │ │ ├── NeHe.bmp │ │ ├── SeasonsTiles.png │ │ ├── UbuntuMono-Regular.ttf │ │ ├── bg1bg23d_0_0_0.bmp │ │ ├── sound01.wav │ │ └── trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg │ ├── LDLC_01_WindowAndRender.c │ ├── LDLC_02_Color.c │ ├── LDLC_03_Line.c │ ├── LDLC_04_Rect.c │ └── LDLC_05_Texture.c ├── LDLCpp │ ├── 01_WindowAndRender.cpp │ ├── 02_Color.cpp │ ├── 03_Line.cpp │ ├── 04_Rect.cpp │ ├── 05_Texture.cpp │ ├── 06_Click.cpp │ ├── 07_Motion.cpp │ ├── 08_Surface.cpp │ ├── 09_ColorKey.cpp │ ├── 10_TileMap.cpp │ ├── 11_Resize.cpp │ ├── 12_TileMap2.cpp │ ├── 13_TileMapBatcher.cpp │ ├── 14_TextureCopy.cpp │ ├── 15_AudioPlay.cpp │ ├── 16_TextRasterizer.cpp │ ├── CMakeLists.txt │ └── Data │ │ ├── 1.ogg │ │ ├── Gorgosaurus_BW_transparent.bmp │ │ ├── Gorgosaurus_BW_transparent.png │ │ ├── NeHe.bmp │ │ ├── SeasonsTiles.png │ │ ├── UbuntuMono-Regular.ttf │ │ ├── bg1bg23d_0_0_0.bmp │ │ ├── sound01.wav │ │ └── trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg ├── NeheOpenGL │ ├── CMakeLists.txt │ ├── Data │ │ ├── Crate.bmp │ │ ├── Cube.bmp │ │ ├── Glass.bmp │ │ ├── Mud.bmp │ │ ├── NeHe.bmp │ │ ├── Star.bmp │ │ ├── Tim.bmp │ │ └── World.txt │ ├── Lesson01.cpp │ ├── Lesson02.cpp │ ├── Lesson03.cpp │ ├── Lesson04.cpp │ ├── Lesson05.cpp │ ├── Lesson06.cpp │ ├── Lesson07.cpp │ ├── Lesson08.cpp │ ├── Lesson09.cpp │ ├── Lesson10.cpp │ ├── Lesson11.cpp │ ├── Lesson12.cpp │ └── Lesson16.cpp ├── OpenGL1 │ ├── CMakeLists.txt │ ├── Figures.cpp │ ├── Primitive.cpp │ ├── Sierpinski2D.cpp │ ├── Sierpinski3D.cpp │ ├── Tetrahedron.cpp │ ├── Torus.cpp │ └── Triangle.cpp ├── OpenGL_SuperBible │ ├── CMakeLists.txt │ ├── Chapter_2_Bounce.cpp │ ├── Chapter_2_GLRect.cpp │ ├── Chapter_2_Simple.cpp │ ├── Chapter_3_LStrips.cpp │ ├── Chapter_3_Lines.cpp │ ├── Chapter_3_Linesw.cpp │ └── Chapter_3_Lstipple.cpp └── VictorGordan │ ├── 01_CreateWindow.cpp │ ├── 02_Triangle.cpp │ ├── 03_Indices.cpp │ ├── 04_Organizing.cpp │ ├── 05_Shaders.cpp │ ├── 06_Textures.cpp │ ├── 07_Going3D.cpp │ ├── 08_Camera.cpp │ ├── 09_Lighting.cpp │ ├── CMakeLists.txt │ ├── Data │ ├── Shaders │ │ ├── 04_Organizing │ │ │ ├── default.frag │ │ │ └── default.vert │ │ ├── 05_Shaders │ │ │ ├── default.frag │ │ │ └── default.vert │ │ ├── 06_Textures │ │ │ ├── default.frag │ │ │ └── default.vert │ │ ├── 07_Going3D │ │ │ ├── default.frag │ │ │ └── default.vert │ │ ├── 08_Camera │ │ │ ├── default.frag │ │ │ └── default.vert │ │ └── 09_Lighting │ │ │ ├── default.frag │ │ │ ├── default.vert │ │ │ ├── light.frag │ │ │ └── light.vert │ └── Textures │ │ ├── brick.png │ │ └── pop_cat.png │ ├── GordanLib │ ├── CMakeLists.txt │ ├── Camera.cpp │ ├── Camera.h │ ├── EBO.cpp │ ├── EBO.h │ ├── Texture.cpp │ ├── Texture.h │ ├── VAO.cpp │ ├── VAO.h │ ├── VBO.cpp │ ├── VBO.h │ ├── shaderClass.cpp │ └── shaderClass.h │ └── include │ └── glm │ ├── CMakeLists.txt │ ├── common.hpp │ ├── detail │ ├── _features.hpp │ ├── _fixes.hpp │ ├── _noise.hpp │ ├── _swizzle.hpp │ ├── _swizzle_func.hpp │ ├── _vectorize.hpp │ ├── compute_common.hpp │ ├── compute_vector_relational.hpp │ ├── func_common.inl │ ├── func_common_simd.inl │ ├── func_exponential.inl │ ├── func_exponential_simd.inl │ ├── func_geometric.inl │ ├── func_geometric_simd.inl │ ├── func_integer.inl │ ├── func_integer_simd.inl │ ├── func_matrix.inl │ ├── func_matrix_simd.inl │ ├── func_packing.inl │ ├── func_packing_simd.inl │ ├── func_trigonometric.inl │ ├── func_trigonometric_simd.inl │ ├── func_vector_relational.inl │ ├── func_vector_relational_simd.inl │ ├── glm.cpp │ ├── qualifier.hpp │ ├── setup.hpp │ ├── type_float.hpp │ ├── type_half.hpp │ ├── type_half.inl │ ├── type_mat2x2.hpp │ ├── type_mat2x2.inl │ ├── type_mat2x3.hpp │ ├── type_mat2x3.inl │ ├── type_mat2x4.hpp │ ├── type_mat2x4.inl │ ├── type_mat3x2.hpp │ ├── type_mat3x2.inl │ ├── type_mat3x3.hpp │ ├── type_mat3x3.inl │ ├── type_mat3x4.hpp │ ├── type_mat3x4.inl │ ├── type_mat4x2.hpp │ ├── type_mat4x2.inl │ ├── type_mat4x3.hpp │ ├── type_mat4x3.inl │ ├── type_mat4x4.hpp │ ├── type_mat4x4.inl │ ├── type_mat4x4_simd.inl │ ├── type_quat.hpp │ ├── type_quat.inl │ ├── type_quat_simd.inl │ ├── type_vec1.hpp │ ├── type_vec1.inl │ ├── type_vec2.hpp │ ├── type_vec2.inl │ ├── type_vec3.hpp │ ├── type_vec3.inl │ ├── type_vec4.hpp │ ├── type_vec4.inl │ └── type_vec4_simd.inl │ ├── exponential.hpp │ ├── ext.hpp │ ├── ext │ ├── _matrix_vectorize.hpp │ ├── matrix_clip_space.hpp │ ├── matrix_clip_space.inl │ ├── matrix_common.hpp │ ├── matrix_common.inl │ ├── matrix_double2x2.hpp │ ├── matrix_double2x2_precision.hpp │ ├── matrix_double2x3.hpp │ ├── matrix_double2x3_precision.hpp │ ├── matrix_double2x4.hpp │ ├── matrix_double2x4_precision.hpp │ ├── matrix_double3x2.hpp │ ├── matrix_double3x2_precision.hpp │ ├── matrix_double3x3.hpp │ ├── matrix_double3x3_precision.hpp │ ├── matrix_double3x4.hpp │ ├── matrix_double3x4_precision.hpp │ ├── matrix_double4x2.hpp │ ├── matrix_double4x2_precision.hpp │ ├── matrix_double4x3.hpp │ ├── matrix_double4x3_precision.hpp │ ├── matrix_double4x4.hpp │ ├── matrix_double4x4_precision.hpp │ ├── matrix_float2x2.hpp │ ├── matrix_float2x2_precision.hpp │ ├── matrix_float2x3.hpp │ ├── matrix_float2x3_precision.hpp │ ├── matrix_float2x4.hpp │ ├── matrix_float2x4_precision.hpp │ ├── matrix_float3x2.hpp │ ├── matrix_float3x2_precision.hpp │ ├── matrix_float3x3.hpp │ ├── matrix_float3x3_precision.hpp │ ├── matrix_float3x4.hpp │ ├── matrix_float3x4_precision.hpp │ ├── matrix_float4x2.hpp │ ├── matrix_float4x2_precision.hpp │ ├── matrix_float4x3.hpp │ ├── matrix_float4x3_precision.hpp │ ├── matrix_float4x4.hpp │ ├── matrix_float4x4_precision.hpp │ ├── matrix_int2x2.hpp │ ├── matrix_int2x2_sized.hpp │ ├── matrix_int2x3.hpp │ ├── matrix_int2x3_sized.hpp │ ├── matrix_int2x4.hpp │ ├── matrix_int2x4_sized.hpp │ ├── matrix_int3x2.hpp │ ├── matrix_int3x2_sized.hpp │ ├── matrix_int3x3.hpp │ ├── matrix_int3x3_sized.hpp │ ├── matrix_int3x4.hpp │ ├── matrix_int3x4_sized.hpp │ ├── matrix_int4x2.hpp │ ├── matrix_int4x2_sized.hpp │ ├── matrix_int4x3.hpp │ ├── matrix_int4x3_sized.hpp │ ├── matrix_int4x4.hpp │ ├── matrix_int4x4_sized.hpp │ ├── matrix_integer.hpp │ ├── matrix_integer.inl │ ├── matrix_projection.hpp │ ├── matrix_projection.inl │ ├── matrix_relational.hpp │ ├── matrix_relational.inl │ ├── matrix_transform.hpp │ ├── matrix_transform.inl │ ├── matrix_uint2x2.hpp │ ├── matrix_uint2x2_sized.hpp │ ├── matrix_uint2x3.hpp │ ├── matrix_uint2x3_sized.hpp │ ├── matrix_uint2x4.hpp │ ├── matrix_uint2x4_sized.hpp │ ├── matrix_uint3x2.hpp │ ├── matrix_uint3x2_sized.hpp │ ├── matrix_uint3x3.hpp │ ├── matrix_uint3x3_sized.hpp │ ├── matrix_uint3x4.hpp │ ├── matrix_uint3x4_sized.hpp │ ├── matrix_uint4x2.hpp │ ├── matrix_uint4x2_sized.hpp │ ├── matrix_uint4x3.hpp │ ├── matrix_uint4x3_sized.hpp │ ├── matrix_uint4x4.hpp │ ├── matrix_uint4x4_sized.hpp │ ├── quaternion_common.hpp │ ├── quaternion_common.inl │ ├── quaternion_common_simd.inl │ ├── quaternion_double.hpp │ ├── quaternion_double_precision.hpp │ ├── quaternion_exponential.hpp │ ├── quaternion_exponential.inl │ ├── quaternion_float.hpp │ ├── quaternion_float_precision.hpp │ ├── quaternion_geometric.hpp │ ├── quaternion_geometric.inl │ ├── quaternion_relational.hpp │ ├── quaternion_relational.inl │ ├── quaternion_transform.hpp │ ├── quaternion_transform.inl │ ├── quaternion_trigonometric.hpp │ ├── quaternion_trigonometric.inl │ ├── scalar_common.hpp │ ├── scalar_common.inl │ ├── scalar_constants.hpp │ ├── scalar_constants.inl │ ├── scalar_int_sized.hpp │ ├── scalar_integer.hpp │ ├── scalar_integer.inl │ ├── scalar_packing.hpp │ ├── scalar_packing.inl │ ├── scalar_reciprocal.hpp │ ├── scalar_reciprocal.inl │ ├── scalar_relational.hpp │ ├── scalar_relational.inl │ ├── scalar_uint_sized.hpp │ ├── scalar_ulp.hpp │ ├── scalar_ulp.inl │ ├── vector_bool1.hpp │ ├── vector_bool1_precision.hpp │ ├── vector_bool2.hpp │ ├── vector_bool2_precision.hpp │ ├── vector_bool3.hpp │ ├── vector_bool3_precision.hpp │ ├── vector_bool4.hpp │ ├── vector_bool4_precision.hpp │ ├── vector_common.hpp │ ├── vector_common.inl │ ├── vector_double1.hpp │ ├── vector_double1_precision.hpp │ ├── vector_double2.hpp │ ├── vector_double2_precision.hpp │ ├── vector_double3.hpp │ ├── vector_double3_precision.hpp │ ├── vector_double4.hpp │ ├── vector_double4_precision.hpp │ ├── vector_float1.hpp │ ├── vector_float1_precision.hpp │ ├── vector_float2.hpp │ ├── vector_float2_precision.hpp │ ├── vector_float3.hpp │ ├── vector_float3_precision.hpp │ ├── vector_float4.hpp │ ├── vector_float4_precision.hpp │ ├── vector_int1.hpp │ ├── vector_int1_sized.hpp │ ├── vector_int2.hpp │ ├── vector_int2_sized.hpp │ ├── vector_int3.hpp │ ├── vector_int3_sized.hpp │ ├── vector_int4.hpp │ ├── vector_int4_sized.hpp │ ├── vector_integer.hpp │ ├── vector_integer.inl │ ├── vector_packing.hpp │ ├── vector_packing.inl │ ├── vector_reciprocal.hpp │ ├── vector_reciprocal.inl │ ├── vector_relational.hpp │ ├── vector_relational.inl │ ├── vector_uint1.hpp │ ├── vector_uint1_sized.hpp │ ├── vector_uint2.hpp │ ├── vector_uint2_sized.hpp │ ├── vector_uint3.hpp │ ├── vector_uint3_sized.hpp │ ├── vector_uint4.hpp │ ├── vector_uint4_sized.hpp │ ├── vector_ulp.hpp │ └── vector_ulp.inl │ ├── fwd.hpp │ ├── geometric.hpp │ ├── glm.hpp │ ├── gtc │ ├── bitfield.hpp │ ├── bitfield.inl │ ├── color_space.hpp │ ├── color_space.inl │ ├── constants.hpp │ ├── constants.inl │ ├── epsilon.hpp │ ├── epsilon.inl │ ├── integer.hpp │ ├── integer.inl │ ├── matrix_access.hpp │ ├── matrix_access.inl │ ├── matrix_integer.hpp │ ├── matrix_inverse.hpp │ ├── matrix_inverse.inl │ ├── matrix_transform.hpp │ ├── matrix_transform.inl │ ├── noise.hpp │ ├── noise.inl │ ├── packing.hpp │ ├── packing.inl │ ├── quaternion.hpp │ ├── quaternion.inl │ ├── quaternion_simd.inl │ ├── random.hpp │ ├── random.inl │ ├── reciprocal.hpp │ ├── round.hpp │ ├── round.inl │ ├── type_aligned.hpp │ ├── type_precision.hpp │ ├── type_precision.inl │ ├── type_ptr.hpp │ ├── type_ptr.inl │ ├── ulp.hpp │ ├── ulp.inl │ └── vec1.hpp │ ├── gtx │ ├── associated_min_max.hpp │ ├── associated_min_max.inl │ ├── bit.hpp │ ├── bit.inl │ ├── closest_point.hpp │ ├── closest_point.inl │ ├── color_encoding.hpp │ ├── color_encoding.inl │ ├── color_space.hpp │ ├── color_space.inl │ ├── color_space_YCoCg.hpp │ ├── color_space_YCoCg.inl │ ├── common.hpp │ ├── common.inl │ ├── compatibility.hpp │ ├── compatibility.inl │ ├── component_wise.hpp │ ├── component_wise.inl │ ├── dual_quaternion.hpp │ ├── dual_quaternion.inl │ ├── easing.hpp │ ├── easing.inl │ ├── euler_angles.hpp │ ├── euler_angles.inl │ ├── extend.hpp │ ├── extend.inl │ ├── extended_min_max.hpp │ ├── extended_min_max.inl │ ├── exterior_product.hpp │ ├── exterior_product.inl │ ├── fast_exponential.hpp │ ├── fast_exponential.inl │ ├── fast_square_root.hpp │ ├── fast_square_root.inl │ ├── fast_trigonometry.hpp │ ├── fast_trigonometry.inl │ ├── float_notmalize.inl │ ├── functions.hpp │ ├── functions.inl │ ├── gradient_paint.hpp │ ├── gradient_paint.inl │ ├── handed_coordinate_space.hpp │ ├── handed_coordinate_space.inl │ ├── hash.hpp │ ├── hash.inl │ ├── integer.hpp │ ├── integer.inl │ ├── intersect.hpp │ ├── intersect.inl │ ├── io.hpp │ ├── io.inl │ ├── log_base.hpp │ ├── log_base.inl │ ├── matrix_cross_product.hpp │ ├── matrix_cross_product.inl │ ├── matrix_decompose.hpp │ ├── matrix_decompose.inl │ ├── matrix_factorisation.hpp │ ├── matrix_factorisation.inl │ ├── matrix_interpolation.hpp │ ├── matrix_interpolation.inl │ ├── matrix_major_storage.hpp │ ├── matrix_major_storage.inl │ ├── matrix_operation.hpp │ ├── matrix_operation.inl │ ├── matrix_query.hpp │ ├── matrix_query.inl │ ├── matrix_transform_2d.hpp │ ├── matrix_transform_2d.inl │ ├── mixed_product.hpp │ ├── mixed_product.inl │ ├── norm.hpp │ ├── norm.inl │ ├── normal.hpp │ ├── normal.inl │ ├── normalize_dot.hpp │ ├── normalize_dot.inl │ ├── number_precision.hpp │ ├── number_precision.inl │ ├── optimum_pow.hpp │ ├── optimum_pow.inl │ ├── orthonormalize.hpp │ ├── orthonormalize.inl │ ├── pca.hpp │ ├── pca.inl │ ├── perpendicular.hpp │ ├── perpendicular.inl │ ├── polar_coordinates.hpp │ ├── polar_coordinates.inl │ ├── projection.hpp │ ├── projection.inl │ ├── quaternion.hpp │ ├── quaternion.inl │ ├── range.hpp │ ├── raw_data.hpp │ ├── raw_data.inl │ ├── rotate_normalized_axis.hpp │ ├── rotate_normalized_axis.inl │ ├── rotate_vector.hpp │ ├── rotate_vector.inl │ ├── scalar_multiplication.hpp │ ├── scalar_relational.hpp │ ├── scalar_relational.inl │ ├── spline.hpp │ ├── spline.inl │ ├── std_based_type.hpp │ ├── std_based_type.inl │ ├── string_cast.hpp │ ├── string_cast.inl │ ├── texture.hpp │ ├── texture.inl │ ├── transform.hpp │ ├── transform.inl │ ├── transform2.hpp │ ├── transform2.inl │ ├── type_aligned.hpp │ ├── type_aligned.inl │ ├── type_trait.hpp │ ├── type_trait.inl │ ├── vec_swizzle.hpp │ ├── vector_angle.hpp │ ├── vector_angle.inl │ ├── vector_query.hpp │ ├── vector_query.inl │ ├── wrap.hpp │ └── wrap.inl │ ├── integer.hpp │ ├── mat2x2.hpp │ ├── mat2x3.hpp │ ├── mat2x4.hpp │ ├── mat3x2.hpp │ ├── mat3x3.hpp │ ├── mat3x4.hpp │ ├── mat4x2.hpp │ ├── mat4x3.hpp │ ├── mat4x4.hpp │ ├── matrix.hpp │ ├── packing.hpp │ ├── simd │ ├── common.h │ ├── exponential.h │ ├── geometric.h │ ├── integer.h │ ├── matrix.h │ ├── neon.h │ ├── packing.h │ ├── platform.h │ ├── trigonometric.h │ └── vector_relational.h │ ├── trigonometric.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ └── vector_relational.hpp ├── HandMake ├── BC6_All.bat ├── BC6_Build_DLL.bat ├── BC6_Build_EXE.bat ├── Build_All.bat ├── Build_All_All_All.bat ├── CLang_Build_DLL.bat ├── Clear.bat ├── Data │ ├── 1.ogg │ ├── Crate.bmp │ ├── Cube.bmp │ ├── Glass.bmp │ ├── Gorgosaurus_BW_transparent.bmp │ ├── Gorgosaurus_BW_transparent.png │ ├── Mud.bmp │ ├── NeHe.bmp │ ├── SeasonsTiles.png │ ├── Star.bmp │ ├── Tim.bmp │ ├── UbuntuMono-Regular.ttf │ ├── World.txt │ ├── bg1bg23d_0_0_0.bmp │ ├── sound01.wav │ └── trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg ├── MinGW_All.bat ├── MinGW_Build_DLL.bat ├── MinGW_Build_EXE.bat ├── VC6_All.bat ├── VC6_Build_DLL.bat └── VC6_Build_EXE.bat ├── LDL_Shaders └── OpenGL3 │ ├── LinePainter.fs │ ├── LinePainter.vs │ ├── TexturePainter.fs │ └── TexturePainter.vs ├── Ports ├── ArcanumWorld │ ├── CMakeLists.txt │ ├── Config.xml │ ├── data │ │ ├── art │ │ │ ├── scenery │ │ │ │ ├── ArmorDisplay2.ART │ │ │ │ ├── engine.ART │ │ │ │ └── savanna_tree02.ART │ │ │ └── tile │ │ │ │ └── grsbse0c.ART │ │ ├── fonts │ │ │ ├── Crosterian.ttf │ │ │ └── UbuntuMono-Regular.ttf │ │ └── maps │ │ │ └── Test.xml │ ├── dependencies │ │ └── zlib │ │ │ ├── CMakeLists.txt │ │ │ ├── ChangeLog │ │ │ ├── FAQ │ │ │ ├── INDEX │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── Makefile.in │ │ │ ├── README │ │ │ ├── adler32.c │ │ │ ├── amiga │ │ │ ├── Makefile.pup │ │ │ └── Makefile.sas │ │ │ ├── compress.c │ │ │ ├── configure │ │ │ ├── contrib │ │ │ ├── README.contrib │ │ │ ├── ada │ │ │ │ ├── buffer_demo.adb │ │ │ │ ├── mtest.adb │ │ │ │ ├── read.adb │ │ │ │ ├── readme.txt │ │ │ │ ├── test.adb │ │ │ │ ├── zlib-streams.adb │ │ │ │ ├── zlib-streams.ads │ │ │ │ ├── zlib-thin.adb │ │ │ │ ├── zlib-thin.ads │ │ │ │ ├── zlib.adb │ │ │ │ ├── zlib.ads │ │ │ │ └── zlib.gpr │ │ │ ├── blast │ │ │ │ ├── Makefile │ │ │ │ ├── README │ │ │ │ ├── blast.c │ │ │ │ ├── blast.h │ │ │ │ ├── test.pk │ │ │ │ └── test.txt │ │ │ ├── delphi │ │ │ │ ├── ZLib.pas │ │ │ │ ├── ZLibConst.pas │ │ │ │ ├── readme.txt │ │ │ │ └── zlibd32.mak │ │ │ ├── dotzlib │ │ │ │ ├── DotZLib.build │ │ │ │ ├── DotZLib.chm │ │ │ │ ├── DotZLib.sln │ │ │ │ ├── DotZLib │ │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ │ ├── ChecksumImpl.cs │ │ │ │ │ ├── CircularBuffer.cs │ │ │ │ │ ├── CodecBase.cs │ │ │ │ │ ├── Deflater.cs │ │ │ │ │ ├── DotZLib.cs │ │ │ │ │ ├── DotZLib.csproj │ │ │ │ │ ├── GZipStream.cs │ │ │ │ │ ├── Inflater.cs │ │ │ │ │ └── UnitTests.cs │ │ │ │ ├── LICENSE_1_0.txt │ │ │ │ └── readme.txt │ │ │ ├── gcc_gvmat64 │ │ │ │ └── gvmat64.S │ │ │ ├── infback9 │ │ │ │ ├── README │ │ │ │ ├── infback9.c │ │ │ │ ├── infback9.h │ │ │ │ ├── inffix9.h │ │ │ │ ├── inflate9.h │ │ │ │ ├── inftree9.c │ │ │ │ └── inftree9.h │ │ │ ├── iostream │ │ │ │ ├── test.cpp │ │ │ │ ├── zfstream.cpp │ │ │ │ └── zfstream.h │ │ │ ├── iostream2 │ │ │ │ ├── zstream.h │ │ │ │ └── zstream_test.cpp │ │ │ ├── iostream3 │ │ │ │ ├── README │ │ │ │ ├── TODO │ │ │ │ ├── test.cc │ │ │ │ ├── zfstream.cc │ │ │ │ └── zfstream.h │ │ │ ├── minizip │ │ │ │ ├── Makefile │ │ │ │ ├── Makefile.am │ │ │ │ ├── MiniZip64_Changes.txt │ │ │ │ ├── MiniZip64_info.txt │ │ │ │ ├── configure.ac │ │ │ │ ├── crypt.h │ │ │ │ ├── ioapi.c │ │ │ │ ├── ioapi.h │ │ │ │ ├── iowin32.c │ │ │ │ ├── iowin32.h │ │ │ │ ├── make_vms.com │ │ │ │ ├── miniunz.c │ │ │ │ ├── miniunzip.1 │ │ │ │ ├── minizip.1 │ │ │ │ ├── minizip.c │ │ │ │ ├── minizip.pc.in │ │ │ │ ├── mztools.c │ │ │ │ ├── mztools.h │ │ │ │ ├── unzip.c │ │ │ │ ├── unzip.h │ │ │ │ ├── zip.c │ │ │ │ └── zip.h │ │ │ ├── pascal │ │ │ │ ├── example.pas │ │ │ │ ├── readme.txt │ │ │ │ ├── zlibd32.mak │ │ │ │ └── zlibpas.pas │ │ │ ├── puff │ │ │ │ ├── Makefile │ │ │ │ ├── README │ │ │ │ ├── puff.c │ │ │ │ ├── puff.h │ │ │ │ ├── pufftest.c │ │ │ │ └── zeros.raw │ │ │ ├── testzlib │ │ │ │ ├── testzlib.c │ │ │ │ └── testzlib.txt │ │ │ ├── untgz │ │ │ │ ├── Makefile │ │ │ │ ├── Makefile.msc │ │ │ │ └── untgz.c │ │ │ └── vstudio │ │ │ │ ├── readme.txt │ │ │ │ ├── vc10 │ │ │ │ ├── miniunz.vcxproj │ │ │ │ ├── miniunz.vcxproj.filters │ │ │ │ ├── minizip.vcxproj │ │ │ │ ├── minizip.vcxproj.filters │ │ │ │ ├── testzlib.vcxproj │ │ │ │ ├── testzlib.vcxproj.filters │ │ │ │ ├── testzlibdll.vcxproj │ │ │ │ ├── testzlibdll.vcxproj.filters │ │ │ │ ├── zlib.rc │ │ │ │ ├── zlibstat.vcxproj │ │ │ │ ├── zlibstat.vcxproj.filters │ │ │ │ ├── zlibvc.def │ │ │ │ ├── zlibvc.sln │ │ │ │ ├── zlibvc.vcxproj │ │ │ │ └── zlibvc.vcxproj.filters │ │ │ │ ├── vc11 │ │ │ │ ├── miniunz.vcxproj │ │ │ │ ├── minizip.vcxproj │ │ │ │ ├── testzlib.vcxproj │ │ │ │ ├── testzlibdll.vcxproj │ │ │ │ ├── zlib.rc │ │ │ │ ├── zlibstat.vcxproj │ │ │ │ ├── zlibvc.def │ │ │ │ ├── zlibvc.sln │ │ │ │ └── zlibvc.vcxproj │ │ │ │ ├── vc12 │ │ │ │ ├── miniunz.vcxproj │ │ │ │ ├── minizip.vcxproj │ │ │ │ ├── testzlib.vcxproj │ │ │ │ ├── testzlibdll.vcxproj │ │ │ │ ├── zlib.rc │ │ │ │ ├── zlibstat.vcxproj │ │ │ │ ├── zlibvc.def │ │ │ │ ├── zlibvc.sln │ │ │ │ └── zlibvc.vcxproj │ │ │ │ ├── vc14 │ │ │ │ ├── miniunz.vcxproj │ │ │ │ ├── minizip.vcxproj │ │ │ │ ├── testzlib.vcxproj │ │ │ │ ├── testzlibdll.vcxproj │ │ │ │ ├── zlib.rc │ │ │ │ ├── zlibstat.vcxproj │ │ │ │ ├── zlibvc.def │ │ │ │ ├── zlibvc.sln │ │ │ │ └── zlibvc.vcxproj │ │ │ │ └── vc9 │ │ │ │ ├── miniunz.vcproj │ │ │ │ ├── minizip.vcproj │ │ │ │ ├── testzlib.vcproj │ │ │ │ ├── testzlibdll.vcproj │ │ │ │ ├── zlib.rc │ │ │ │ ├── zlibstat.vcproj │ │ │ │ ├── zlibvc.def │ │ │ │ ├── zlibvc.sln │ │ │ │ └── zlibvc.vcproj │ │ │ ├── crc32.c │ │ │ ├── crc32.h │ │ │ ├── deflate.c │ │ │ ├── deflate.h │ │ │ ├── doc │ │ │ ├── algorithm.txt │ │ │ ├── crc-doc.1.0.pdf │ │ │ ├── rfc1950.txt │ │ │ ├── rfc1951.txt │ │ │ ├── rfc1952.txt │ │ │ └── txtvsbin.txt │ │ │ ├── examples │ │ │ ├── README.examples │ │ │ ├── enough.c │ │ │ ├── fitblk.c │ │ │ ├── gun.c │ │ │ ├── gzappend.c │ │ │ ├── gzjoin.c │ │ │ ├── gzlog.c │ │ │ ├── gzlog.h │ │ │ ├── gznorm.c │ │ │ ├── zlib_how.html │ │ │ ├── zpipe.c │ │ │ ├── zran.c │ │ │ └── zran.h │ │ │ ├── gzclose.c │ │ │ ├── gzguts.h │ │ │ ├── gzlib.c │ │ │ ├── gzread.c │ │ │ ├── gzwrite.c │ │ │ ├── infback.c │ │ │ ├── inffast.c │ │ │ ├── inffast.h │ │ │ ├── inffixed.h │ │ │ ├── inflate.c │ │ │ ├── inflate.h │ │ │ ├── inftrees.c │ │ │ ├── inftrees.h │ │ │ ├── make_vms.com │ │ │ ├── msdos │ │ │ ├── Makefile.bor │ │ │ ├── Makefile.dj2 │ │ │ ├── Makefile.emx │ │ │ ├── Makefile.msc │ │ │ └── Makefile.tc │ │ │ ├── nintendods │ │ │ ├── Makefile │ │ │ └── README │ │ │ ├── old │ │ │ ├── Makefile.emx │ │ │ ├── Makefile.riscos │ │ │ ├── README │ │ │ ├── descrip.mms │ │ │ ├── os2 │ │ │ │ ├── Makefile.os2 │ │ │ │ └── zlib.def │ │ │ └── visual-basic.txt │ │ │ ├── os400 │ │ │ ├── README400 │ │ │ ├── bndsrc │ │ │ ├── make.sh │ │ │ └── zlib.inc │ │ │ ├── qnx │ │ │ └── package.qpg │ │ │ ├── test │ │ │ ├── example.c │ │ │ ├── infcover.c │ │ │ └── minigzip.c │ │ │ ├── treebuild.xml │ │ │ ├── trees.c │ │ │ ├── trees.h │ │ │ ├── uncompr.c │ │ │ ├── watcom │ │ │ ├── watcom_f.mak │ │ │ └── watcom_l.mak │ │ │ ├── zconf.h │ │ │ ├── zconf.h.cmakein │ │ │ ├── zconf.h.in │ │ │ ├── zlib.3 │ │ │ ├── zlib.3.pdf │ │ │ ├── zlib.h │ │ │ ├── zlib.map │ │ │ ├── zlib.pc.cmakein │ │ │ ├── zlib.pc.in │ │ │ ├── zutil.c │ │ │ └── zutil.h │ └── source │ │ ├── ArcanumWorld.cpp │ │ ├── GenMap.cpp │ │ └── Shared │ │ └── Arcanum │ │ ├── Allocators │ │ ├── ObjectAllocator.cpp │ │ └── ObjectAllocator.hpp │ │ ├── Core │ │ ├── PathNormalizer.cpp │ │ ├── PathNormalizer.hpp │ │ ├── RuntimeError.cpp │ │ └── RuntimeError.hpp │ │ ├── Formats │ │ ├── Art.cpp │ │ ├── Art.hpp │ │ ├── Msg.cpp │ │ ├── Msg.hpp │ │ ├── Sec.cpp │ │ └── Sec.hpp │ │ ├── Forms │ │ ├── GameMenu.cpp │ │ └── GameMenu.hpp │ │ ├── Game │ │ ├── Engine.cpp │ │ ├── Engine.hpp │ │ ├── Settings.cpp │ │ └── Settings.hpp │ │ ├── Gameplay │ │ ├── StatCritter.cpp │ │ ├── StatCritter.hpp │ │ └── StatValue.hpp │ │ ├── Graphics │ │ ├── Camera.cpp │ │ ├── Camera.hpp │ │ ├── Image.cpp │ │ ├── Image.hpp │ │ ├── Sprite.cpp │ │ └── Sprite.hpp │ │ ├── Loaders │ │ ├── ArtLoader.cpp │ │ ├── ArtLoader.hpp │ │ ├── DatLoader.cpp │ │ ├── DatLoader.hpp │ │ ├── LocationLoader.cpp │ │ ├── LocationLoader.hpp │ │ ├── SettingsLoader.cpp │ │ └── SettingsLoader.hpp │ │ ├── Managers │ │ ├── FileManager.cpp │ │ ├── FileManager.hpp │ │ ├── ObjectManager.cpp │ │ ├── ObjectManager.hpp │ │ ├── PathManager.cpp │ │ ├── PathManager.hpp │ │ ├── ScriptManager.cpp │ │ ├── ScriptManager.hpp │ │ ├── SpriteManager.cpp │ │ ├── SpriteManager.hpp │ │ ├── WidgetManager.cpp │ │ └── WidgetManager.hpp │ │ ├── Objects │ │ ├── Critter.cpp │ │ ├── Critter.hpp │ │ ├── CritterScript.cpp │ │ ├── CritterScript.hpp │ │ ├── Location.cpp │ │ ├── Location.hpp │ │ ├── LocationCreator.cpp │ │ ├── LocationCreator.hpp │ │ ├── LocationData.cpp │ │ ├── LocationData.hpp │ │ ├── LocationLimits.hpp │ │ ├── MapObject.cpp │ │ ├── MapObject.hpp │ │ ├── Scenery.cpp │ │ ├── Scenery.hpp │ │ ├── Script.cpp │ │ ├── Script.hpp │ │ ├── Tile.cpp │ │ ├── Tile.hpp │ │ ├── Wall.cpp │ │ └── Wall.hpp │ │ ├── Painters │ │ ├── LocationPainter.cpp │ │ └── LocationPainter.hpp │ │ ├── Readers │ │ ├── ByteReader.cpp │ │ ├── ByteReader.hpp │ │ ├── DatReader.cpp │ │ ├── DatReader.hpp │ │ ├── MemoryReader.cpp │ │ ├── MemoryReader.hpp │ │ ├── MesReader.cpp │ │ ├── MesReader.hpp │ │ ├── SecReader.cpp │ │ ├── SecReader.hpp │ │ ├── XmlReader.cpp │ │ └── XmlReader.hpp │ │ ├── Savers │ │ ├── LocationSaver.cpp │ │ └── LocationSaver.hpp │ │ ├── Scripts │ │ ├── PlayerScript.cpp │ │ └── PlayerScript.hpp │ │ ├── Widgets │ │ ├── Button.cpp │ │ ├── Button.hpp │ │ ├── Container.cpp │ │ ├── Container.hpp │ │ ├── Form.cpp │ │ ├── Form.hpp │ │ ├── Widget.cpp │ │ ├── Widget.hpp │ │ ├── Window.cpp │ │ └── Window.hpp │ │ └── Writters │ │ ├── XmlWritter.cpp │ │ └── XmlWritter.hpp └── CMakeLists.txt ├── README.md ├── Screenshots ├── 1.jpg ├── 10_TileMap.jpg ├── 12_TileMap2.jpg ├── 2.jpg ├── 3.jpg ├── 4.jpg └── 5.jpg ├── TestFiles ├── 359500_600.jpg ├── Gorgosaurus_BW_transparent.png ├── SeasonsTiles.png ├── ambient_night_01.ogg ├── cmunrm.ttf └── trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg ├── Tests.bat ├── Tests_x64.bat ├── Tests_x86.bat ├── cmake_old └── CMakeLists.txt ├── dependencies ├── dr_libs │ ├── dr_flac.h │ ├── dr_mp3.h │ └── dr_wav.h ├── freetype │ ├── .clang-format │ ├── .gitignore │ ├── .gitlab-ci.yml │ ├── .gitmodules │ ├── .mailmap │ ├── CMakeLists.txt │ ├── LICENSE.TXT │ ├── Makefile │ ├── README │ ├── README.git │ ├── autogen.sh │ ├── builds │ │ ├── amiga │ │ │ ├── README │ │ │ ├── include │ │ │ │ └── config │ │ │ │ │ ├── ftconfig.h │ │ │ │ │ └── ftmodule.h │ │ │ ├── makefile │ │ │ ├── makefile.os4 │ │ │ ├── smakefile │ │ │ └── src │ │ │ │ └── base │ │ │ │ ├── ftdebug.c │ │ │ │ └── ftsystem.c │ │ ├── ansi │ │ │ ├── ansi-def.mk │ │ │ └── ansi.mk │ │ ├── atari │ │ │ ├── ATARI.H │ │ │ ├── FNames.SIC │ │ │ ├── FREETYPE.PRJ │ │ │ ├── README.TXT │ │ │ ├── deflinejoiner.awk │ │ │ └── gen-purec-patch.sh │ │ ├── beos │ │ │ ├── beos-def.mk │ │ │ ├── beos.mk │ │ │ └── detect.mk │ │ ├── cmake │ │ │ ├── FindBrotliDec.cmake │ │ │ ├── FindHarfBuzz.cmake │ │ │ ├── iOS.cmake │ │ │ └── testbuild.sh │ │ ├── compiler │ │ │ ├── ansi-cc.mk │ │ │ ├── bcc-dev.mk │ │ │ ├── bcc.mk │ │ │ ├── emx.mk │ │ │ ├── gcc-dev.mk │ │ │ ├── gcc.mk │ │ │ ├── intelc.mk │ │ │ ├── unix-lcc.mk │ │ │ ├── visualage.mk │ │ │ ├── visualc.mk │ │ │ ├── watcom.mk │ │ │ └── win-lcc.mk │ │ ├── detect.mk │ │ ├── dos │ │ │ ├── detect.mk │ │ │ ├── dos-def.mk │ │ │ ├── dos-emx.mk │ │ │ ├── dos-gcc.mk │ │ │ └── dos-wat.mk │ │ ├── exports.mk │ │ ├── freetype.mk │ │ ├── link_dos.mk │ │ ├── link_std.mk │ │ ├── mac │ │ │ ├── FreeType.m68k_cfm.make.txt │ │ │ ├── FreeType.m68k_far.make.txt │ │ │ ├── FreeType.ppc_carbon.make.txt │ │ │ ├── FreeType.ppc_classic.make.txt │ │ │ ├── README │ │ │ ├── ascii2mpw.py │ │ │ ├── freetype-Info.plist │ │ │ ├── ftlib.prj.xml │ │ │ └── ftmac.c │ │ ├── meson │ │ │ ├── extract_freetype_version.py │ │ │ ├── extract_libtool_version.py │ │ │ ├── generate_reference_docs.py │ │ │ ├── parse_modules_cfg.py │ │ │ └── process_ftoption_h.py │ │ ├── modules.mk │ │ ├── os2 │ │ │ ├── detect.mk │ │ │ ├── os2-def.mk │ │ │ ├── os2-dev.mk │ │ │ └── os2-gcc.mk │ │ ├── symbian │ │ │ ├── bld.inf │ │ │ └── freetype.mmp │ │ ├── toplevel.mk │ │ ├── unix │ │ │ ├── .gitignore │ │ │ ├── ax_compare_version.m4 │ │ │ ├── ax_prog_python_version.m4 │ │ │ ├── ax_pthread.m4 │ │ │ ├── configure.raw │ │ │ ├── detect.mk │ │ │ ├── freetype-config.in │ │ │ ├── freetype2.in │ │ │ ├── freetype2.m4 │ │ │ ├── ft-munmap.m4 │ │ │ ├── ftconfig.h.in │ │ │ ├── ftsystem.c │ │ │ ├── install.mk │ │ │ ├── pkg.m4 │ │ │ ├── unix-cc.in │ │ │ ├── unix-def.in │ │ │ ├── unix-dev.mk │ │ │ ├── unix-lcc.mk │ │ │ ├── unix.mk │ │ │ └── unixddef.mk │ │ ├── vms │ │ │ ├── apinames_vms.bash │ │ │ ├── ftconfig.h │ │ │ └── ftsystem.c │ │ ├── wince │ │ │ ├── ftdebug.c │ │ │ ├── vc2005-ce │ │ │ │ ├── freetype.sln │ │ │ │ ├── freetype.vcproj │ │ │ │ └── index.html │ │ │ └── vc2008-ce │ │ │ │ ├── freetype.sln │ │ │ │ ├── freetype.vcproj │ │ │ │ └── index.html │ │ └── windows │ │ │ ├── .gitignore │ │ │ ├── detect.mk │ │ │ ├── ftdebug.c │ │ │ ├── ftsystem.c │ │ │ ├── vc2010 │ │ │ ├── freetype.sln │ │ │ ├── freetype.user.props │ │ │ ├── freetype.vcxproj │ │ │ ├── freetype.vcxproj.filters │ │ │ └── index.html │ │ │ ├── visualc │ │ │ ├── freetype.dsp │ │ │ ├── freetype.dsw │ │ │ ├── freetype.sln │ │ │ ├── freetype.vcproj │ │ │ └── index.html │ │ │ ├── visualce │ │ │ ├── freetype.dsp │ │ │ ├── freetype.dsw │ │ │ ├── freetype.vcproj │ │ │ └── index.html │ │ │ ├── w32-bcc.mk │ │ │ ├── w32-bccd.mk │ │ │ ├── w32-dev.mk │ │ │ ├── w32-gcc.mk │ │ │ ├── w32-icc.mk │ │ │ ├── w32-intl.mk │ │ │ ├── w32-lcc.mk │ │ │ ├── w32-mingw32.mk │ │ │ ├── w32-vcc.mk │ │ │ ├── w32-wat.mk │ │ │ └── win32-def.mk │ ├── configure │ ├── devel │ │ ├── ft2build.h │ │ └── ftoption.h │ ├── docs │ │ ├── .gitignore │ │ ├── CHANGES │ │ ├── CMAKE │ │ ├── CUSTOMIZE │ │ ├── DEBUG │ │ ├── DOCGUIDE │ │ ├── FTL.TXT │ │ ├── GPLv2.TXT │ │ ├── INSTALL │ │ ├── INSTALL.ANY │ │ ├── INSTALL.CROSS │ │ ├── INSTALL.GNU │ │ ├── INSTALL.MAC │ │ ├── INSTALL.UNIX │ │ ├── INSTALL.VMS │ │ ├── MAKEPP │ │ ├── PROBLEMS │ │ ├── README │ │ ├── TODO │ │ ├── VERSIONS.TXT │ │ ├── formats.txt │ │ ├── freetype-config.1 │ │ ├── markdown │ │ │ ├── images │ │ │ │ └── favico.ico │ │ │ ├── javascripts │ │ │ │ └── extra.js │ │ │ └── stylesheets │ │ │ │ └── extra.css │ │ ├── oldlogs │ │ │ ├── ChangeLog.20 │ │ │ ├── ChangeLog.21 │ │ │ ├── ChangeLog.210 │ │ │ ├── ChangeLog.22 │ │ │ ├── ChangeLog.23 │ │ │ ├── ChangeLog.24 │ │ │ ├── ChangeLog.25 │ │ │ ├── ChangeLog.26 │ │ │ ├── ChangeLog.27 │ │ │ ├── ChangeLog.28 │ │ │ └── ChangeLog.29 │ │ ├── raster.txt │ │ └── release │ ├── include │ │ ├── freetype │ │ │ ├── config │ │ │ │ ├── ftconfig.h │ │ │ │ ├── ftheader.h │ │ │ │ ├── ftmodule.h │ │ │ │ ├── ftoption.h │ │ │ │ ├── ftstdlib.h │ │ │ │ ├── integer-types.h │ │ │ │ ├── mac-support.h │ │ │ │ └── public-macros.h │ │ │ ├── freetype.h │ │ │ ├── ftadvanc.h │ │ │ ├── ftbbox.h │ │ │ ├── ftbdf.h │ │ │ ├── ftbitmap.h │ │ │ ├── ftbzip2.h │ │ │ ├── ftcache.h │ │ │ ├── ftchapters.h │ │ │ ├── ftcid.h │ │ │ ├── ftcolor.h │ │ │ ├── ftdriver.h │ │ │ ├── fterrdef.h │ │ │ ├── fterrors.h │ │ │ ├── ftfntfmt.h │ │ │ ├── ftgasp.h │ │ │ ├── ftglyph.h │ │ │ ├── ftgxval.h │ │ │ ├── ftgzip.h │ │ │ ├── ftimage.h │ │ │ ├── ftincrem.h │ │ │ ├── ftlcdfil.h │ │ │ ├── ftlist.h │ │ │ ├── ftlogging.h │ │ │ ├── ftlzw.h │ │ │ ├── ftmac.h │ │ │ ├── ftmm.h │ │ │ ├── ftmodapi.h │ │ │ ├── ftmoderr.h │ │ │ ├── ftotval.h │ │ │ ├── ftoutln.h │ │ │ ├── ftparams.h │ │ │ ├── ftpfr.h │ │ │ ├── ftrender.h │ │ │ ├── ftsizes.h │ │ │ ├── ftsnames.h │ │ │ ├── ftstroke.h │ │ │ ├── ftsynth.h │ │ │ ├── ftsystem.h │ │ │ ├── fttrigon.h │ │ │ ├── fttypes.h │ │ │ ├── ftwinfnt.h │ │ │ ├── internal │ │ │ │ ├── autohint.h │ │ │ │ ├── cffotypes.h │ │ │ │ ├── cfftypes.h │ │ │ │ ├── compiler-macros.h │ │ │ │ ├── ftcalc.h │ │ │ │ ├── ftdebug.h │ │ │ │ ├── ftdrv.h │ │ │ │ ├── ftgloadr.h │ │ │ │ ├── fthash.h │ │ │ │ ├── ftmemory.h │ │ │ │ ├── ftmmtypes.h │ │ │ │ ├── ftobjs.h │ │ │ │ ├── ftpsprop.h │ │ │ │ ├── ftrfork.h │ │ │ │ ├── ftserv.h │ │ │ │ ├── ftstream.h │ │ │ │ ├── fttrace.h │ │ │ │ ├── ftvalid.h │ │ │ │ ├── psaux.h │ │ │ │ ├── pshints.h │ │ │ │ ├── services │ │ │ │ │ ├── svbdf.h │ │ │ │ │ ├── svcfftl.h │ │ │ │ │ ├── svcid.h │ │ │ │ │ ├── svfntfmt.h │ │ │ │ │ ├── svgldict.h │ │ │ │ │ ├── svgxval.h │ │ │ │ │ ├── svkern.h │ │ │ │ │ ├── svmetric.h │ │ │ │ │ ├── svmm.h │ │ │ │ │ ├── svotval.h │ │ │ │ │ ├── svpfr.h │ │ │ │ │ ├── svpostnm.h │ │ │ │ │ ├── svprop.h │ │ │ │ │ ├── svpscmap.h │ │ │ │ │ ├── svpsinfo.h │ │ │ │ │ ├── svsfnt.h │ │ │ │ │ ├── svttcmap.h │ │ │ │ │ ├── svtteng.h │ │ │ │ │ ├── svttglyf.h │ │ │ │ │ └── svwinfnt.h │ │ │ │ ├── sfnt.h │ │ │ │ ├── svginterface.h │ │ │ │ ├── t1types.h │ │ │ │ ├── tttypes.h │ │ │ │ └── wofftypes.h │ │ │ ├── otsvg.h │ │ │ ├── t1tables.h │ │ │ ├── ttnameid.h │ │ │ ├── tttables.h │ │ │ └── tttags.h │ │ └── ft2build.h │ ├── meson.build │ ├── meson_options.txt │ ├── modules.cfg │ ├── objs │ │ ├── .gitignore │ │ └── README │ ├── src │ │ ├── autofit │ │ │ ├── afblue.c │ │ │ ├── afblue.cin │ │ │ ├── afblue.dat │ │ │ ├── afblue.h │ │ │ ├── afblue.hin │ │ │ ├── afcjk.c │ │ │ ├── afcjk.h │ │ │ ├── afcover.h │ │ │ ├── afdummy.c │ │ │ ├── afdummy.h │ │ │ ├── aferrors.h │ │ │ ├── afglobal.c │ │ │ ├── afglobal.h │ │ │ ├── afhints.c │ │ │ ├── afhints.h │ │ │ ├── afindic.c │ │ │ ├── afindic.h │ │ │ ├── aflatin.c │ │ │ ├── aflatin.h │ │ │ ├── afloader.c │ │ │ ├── afloader.h │ │ │ ├── afmodule.c │ │ │ ├── afmodule.h │ │ │ ├── afranges.c │ │ │ ├── afranges.h │ │ │ ├── afscript.h │ │ │ ├── afshaper.c │ │ │ ├── afshaper.h │ │ │ ├── afstyles.h │ │ │ ├── aftypes.h │ │ │ ├── afws-decl.h │ │ │ ├── afws-iter.h │ │ │ ├── autofit.c │ │ │ ├── ft-hb.c │ │ │ ├── ft-hb.h │ │ │ ├── module.mk │ │ │ └── rules.mk │ │ ├── base │ │ │ ├── ftadvanc.c │ │ │ ├── ftbase.c │ │ │ ├── ftbase.h │ │ │ ├── ftbbox.c │ │ │ ├── ftbdf.c │ │ │ ├── ftbitmap.c │ │ │ ├── ftcalc.c │ │ │ ├── ftcid.c │ │ │ ├── ftcolor.c │ │ │ ├── ftdbgmem.c │ │ │ ├── ftdebug.c │ │ │ ├── fterrors.c │ │ │ ├── ftfntfmt.c │ │ │ ├── ftfstype.c │ │ │ ├── ftgasp.c │ │ │ ├── ftgloadr.c │ │ │ ├── ftglyph.c │ │ │ ├── ftgxval.c │ │ │ ├── fthash.c │ │ │ ├── ftinit.c │ │ │ ├── ftlcdfil.c │ │ │ ├── ftmac.c │ │ │ ├── ftmm.c │ │ │ ├── ftobjs.c │ │ │ ├── ftotval.c │ │ │ ├── ftoutln.c │ │ │ ├── ftpatent.c │ │ │ ├── ftpfr.c │ │ │ ├── ftpsprop.c │ │ │ ├── ftrfork.c │ │ │ ├── ftsnames.c │ │ │ ├── ftstream.c │ │ │ ├── ftstroke.c │ │ │ ├── ftsynth.c │ │ │ ├── ftsystem.c │ │ │ ├── fttrigon.c │ │ │ ├── fttype1.c │ │ │ ├── ftutil.c │ │ │ ├── ftver.rc │ │ │ ├── ftwinfnt.c │ │ │ ├── md5.c │ │ │ ├── md5.h │ │ │ └── rules.mk │ │ ├── bdf │ │ │ ├── README │ │ │ ├── bdf.c │ │ │ ├── bdf.h │ │ │ ├── bdfdrivr.c │ │ │ ├── bdfdrivr.h │ │ │ ├── bdferror.h │ │ │ ├── bdflib.c │ │ │ ├── module.mk │ │ │ └── rules.mk │ │ ├── bzip2 │ │ │ ├── ftbzip2.c │ │ │ └── rules.mk │ │ ├── cache │ │ │ ├── ftcache.c │ │ │ ├── ftcbasic.c │ │ │ ├── ftccache.c │ │ │ ├── ftccache.h │ │ │ ├── ftccback.h │ │ │ ├── ftccmap.c │ │ │ ├── ftcerror.h │ │ │ ├── ftcglyph.c │ │ │ ├── ftcglyph.h │ │ │ ├── ftcimage.c │ │ │ ├── ftcimage.h │ │ │ ├── ftcmanag.c │ │ │ ├── ftcmanag.h │ │ │ ├── ftcmru.c │ │ │ ├── ftcmru.h │ │ │ ├── ftcsbits.c │ │ │ ├── ftcsbits.h │ │ │ └── rules.mk │ │ ├── cff │ │ │ ├── cff.c │ │ │ ├── cffcmap.c │ │ │ ├── cffcmap.h │ │ │ ├── cffdrivr.c │ │ │ ├── cffdrivr.h │ │ │ ├── cfferrs.h │ │ │ ├── cffgload.c │ │ │ ├── cffgload.h │ │ │ ├── cffload.c │ │ │ ├── cffload.h │ │ │ ├── cffobjs.c │ │ │ ├── cffobjs.h │ │ │ ├── cffparse.c │ │ │ ├── cffparse.h │ │ │ ├── cfftoken.h │ │ │ ├── module.mk │ │ │ └── rules.mk │ │ ├── cid │ │ │ ├── ciderrs.h │ │ │ ├── cidgload.c │ │ │ ├── cidgload.h │ │ │ ├── cidload.c │ │ │ ├── cidload.h │ │ │ ├── cidobjs.c │ │ │ ├── cidobjs.h │ │ │ ├── cidparse.c │ │ │ ├── cidparse.h │ │ │ ├── cidriver.c │ │ │ ├── cidriver.h │ │ │ ├── cidtoken.h │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ └── type1cid.c │ │ ├── dlg │ │ │ ├── dlgwrap.c │ │ │ └── rules.mk │ │ ├── gxvalid │ │ │ ├── README │ │ │ ├── gxvalid.c │ │ │ ├── gxvalid.h │ │ │ ├── gxvbsln.c │ │ │ ├── gxvcommn.c │ │ │ ├── gxvcommn.h │ │ │ ├── gxverror.h │ │ │ ├── gxvfeat.c │ │ │ ├── gxvfeat.h │ │ │ ├── gxvfgen.c │ │ │ ├── gxvjust.c │ │ │ ├── gxvkern.c │ │ │ ├── gxvlcar.c │ │ │ ├── gxvmod.c │ │ │ ├── gxvmod.h │ │ │ ├── gxvmort.c │ │ │ ├── gxvmort.h │ │ │ ├── gxvmort0.c │ │ │ ├── gxvmort1.c │ │ │ ├── gxvmort2.c │ │ │ ├── gxvmort4.c │ │ │ ├── gxvmort5.c │ │ │ ├── gxvmorx.c │ │ │ ├── gxvmorx.h │ │ │ ├── gxvmorx0.c │ │ │ ├── gxvmorx1.c │ │ │ ├── gxvmorx2.c │ │ │ ├── gxvmorx4.c │ │ │ ├── gxvmorx5.c │ │ │ ├── gxvopbd.c │ │ │ ├── gxvprop.c │ │ │ ├── gxvtrak.c │ │ │ ├── module.mk │ │ │ └── rules.mk │ │ ├── gzip │ │ │ ├── README.freetype │ │ │ ├── adler32.c │ │ │ ├── crc32.c │ │ │ ├── crc32.h │ │ │ ├── ftgzip.c │ │ │ ├── ftzconf.h │ │ │ ├── gzguts.h │ │ │ ├── inffast.c │ │ │ ├── inffast.h │ │ │ ├── inffixed.h │ │ │ ├── inflate.c │ │ │ ├── inflate.h │ │ │ ├── inftrees.c │ │ │ ├── inftrees.h │ │ │ ├── patches │ │ │ │ └── freetype-zlib.diff │ │ │ ├── rules.mk │ │ │ ├── zlib.h │ │ │ ├── zutil.c │ │ │ └── zutil.h │ │ ├── lzw │ │ │ ├── ftlzw.c │ │ │ ├── ftzopen.c │ │ │ ├── ftzopen.h │ │ │ └── rules.mk │ │ ├── otvalid │ │ │ ├── module.mk │ │ │ ├── otvalid.c │ │ │ ├── otvalid.h │ │ │ ├── otvbase.c │ │ │ ├── otvcommn.c │ │ │ ├── otvcommn.h │ │ │ ├── otverror.h │ │ │ ├── otvgdef.c │ │ │ ├── otvgpos.c │ │ │ ├── otvgpos.h │ │ │ ├── otvgsub.c │ │ │ ├── otvjstf.c │ │ │ ├── otvmath.c │ │ │ ├── otvmod.c │ │ │ ├── otvmod.h │ │ │ └── rules.mk │ │ ├── pcf │ │ │ ├── README │ │ │ ├── module.mk │ │ │ ├── pcf.c │ │ │ ├── pcf.h │ │ │ ├── pcfdrivr.c │ │ │ ├── pcfdrivr.h │ │ │ ├── pcferror.h │ │ │ ├── pcfread.c │ │ │ ├── pcfread.h │ │ │ ├── pcfutil.c │ │ │ ├── pcfutil.h │ │ │ └── rules.mk │ │ ├── pfr │ │ │ ├── module.mk │ │ │ ├── pfr.c │ │ │ ├── pfrcmap.c │ │ │ ├── pfrcmap.h │ │ │ ├── pfrdrivr.c │ │ │ ├── pfrdrivr.h │ │ │ ├── pfrerror.h │ │ │ ├── pfrgload.c │ │ │ ├── pfrgload.h │ │ │ ├── pfrload.c │ │ │ ├── pfrload.h │ │ │ ├── pfrobjs.c │ │ │ ├── pfrobjs.h │ │ │ ├── pfrsbit.c │ │ │ ├── pfrsbit.h │ │ │ ├── pfrtypes.h │ │ │ └── rules.mk │ │ ├── psaux │ │ │ ├── afmparse.c │ │ │ ├── afmparse.h │ │ │ ├── cffdecode.c │ │ │ ├── cffdecode.h │ │ │ ├── module.mk │ │ │ ├── psarrst.c │ │ │ ├── psarrst.h │ │ │ ├── psaux.c │ │ │ ├── psauxerr.h │ │ │ ├── psauxmod.c │ │ │ ├── psauxmod.h │ │ │ ├── psblues.c │ │ │ ├── psblues.h │ │ │ ├── psconv.c │ │ │ ├── psconv.h │ │ │ ├── pserror.c │ │ │ ├── pserror.h │ │ │ ├── psfixed.h │ │ │ ├── psfont.c │ │ │ ├── psfont.h │ │ │ ├── psft.c │ │ │ ├── psft.h │ │ │ ├── psglue.h │ │ │ ├── pshints.c │ │ │ ├── pshints.h │ │ │ ├── psintrp.c │ │ │ ├── psintrp.h │ │ │ ├── psobjs.c │ │ │ ├── psobjs.h │ │ │ ├── psread.c │ │ │ ├── psread.h │ │ │ ├── psstack.c │ │ │ ├── psstack.h │ │ │ ├── pstypes.h │ │ │ ├── rules.mk │ │ │ ├── t1cmap.c │ │ │ ├── t1cmap.h │ │ │ ├── t1decode.c │ │ │ └── t1decode.h │ │ ├── pshinter │ │ │ ├── module.mk │ │ │ ├── pshalgo.c │ │ │ ├── pshalgo.h │ │ │ ├── pshglob.c │ │ │ ├── pshglob.h │ │ │ ├── pshinter.c │ │ │ ├── pshmod.c │ │ │ ├── pshmod.h │ │ │ ├── pshnterr.h │ │ │ ├── pshrec.c │ │ │ ├── pshrec.h │ │ │ └── rules.mk │ │ ├── psnames │ │ │ ├── module.mk │ │ │ ├── psmodule.c │ │ │ ├── psmodule.h │ │ │ ├── psnamerr.h │ │ │ ├── psnames.c │ │ │ ├── pstables.h │ │ │ └── rules.mk │ │ ├── raster │ │ │ ├── ftmisc.h │ │ │ ├── ftraster.c │ │ │ ├── ftraster.h │ │ │ ├── ftrend1.c │ │ │ ├── ftrend1.h │ │ │ ├── module.mk │ │ │ ├── raster.c │ │ │ ├── rasterrs.h │ │ │ └── rules.mk │ │ ├── sdf │ │ │ ├── ftbsdf.c │ │ │ ├── ftsdf.c │ │ │ ├── ftsdf.h │ │ │ ├── ftsdfcommon.c │ │ │ ├── ftsdfcommon.h │ │ │ ├── ftsdferrs.h │ │ │ ├── ftsdfrend.c │ │ │ ├── ftsdfrend.h │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ └── sdf.c │ │ ├── sfnt │ │ │ ├── module.mk │ │ │ ├── pngshim.c │ │ │ ├── pngshim.h │ │ │ ├── rules.mk │ │ │ ├── sfdriver.c │ │ │ ├── sfdriver.h │ │ │ ├── sferrors.h │ │ │ ├── sfnt.c │ │ │ ├── sfobjs.c │ │ │ ├── sfobjs.h │ │ │ ├── sfwoff.c │ │ │ ├── sfwoff.h │ │ │ ├── sfwoff2.c │ │ │ ├── sfwoff2.h │ │ │ ├── ttbdf.c │ │ │ ├── ttbdf.h │ │ │ ├── ttcmap.c │ │ │ ├── ttcmap.h │ │ │ ├── ttcmapc.h │ │ │ ├── ttcolr.c │ │ │ ├── ttcolr.h │ │ │ ├── ttcpal.c │ │ │ ├── ttcpal.h │ │ │ ├── ttkern.c │ │ │ ├── ttkern.h │ │ │ ├── ttload.c │ │ │ ├── ttload.h │ │ │ ├── ttmtx.c │ │ │ ├── ttmtx.h │ │ │ ├── ttpost.c │ │ │ ├── ttpost.h │ │ │ ├── ttsbit.c │ │ │ ├── ttsbit.h │ │ │ ├── ttsvg.c │ │ │ ├── ttsvg.h │ │ │ ├── woff2tags.c │ │ │ └── woff2tags.h │ │ ├── smooth │ │ │ ├── ftgrays.c │ │ │ ├── ftgrays.h │ │ │ ├── ftsmerrs.h │ │ │ ├── ftsmooth.c │ │ │ ├── ftsmooth.h │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ └── smooth.c │ │ ├── svg │ │ │ ├── ftsvg.c │ │ │ ├── ftsvg.h │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ ├── svg.c │ │ │ └── svgtypes.h │ │ ├── tools │ │ │ ├── afblue.pl │ │ │ ├── apinames.c │ │ │ ├── chktrcmp.py │ │ │ ├── cordic.py │ │ │ ├── ftrandom │ │ │ │ ├── Makefile │ │ │ │ ├── README │ │ │ │ └── ftrandom.c │ │ │ ├── glnames.py │ │ │ ├── make_distribution_archives.py │ │ │ ├── no-copyright │ │ │ ├── test_afm.c │ │ │ ├── test_bbox.c │ │ │ ├── test_trig.c │ │ │ ├── update-copyright │ │ │ ├── update-copyright-year │ │ │ └── vms_shorten_symbol.c │ │ ├── truetype │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ ├── truetype.c │ │ │ ├── ttdriver.c │ │ │ ├── ttdriver.h │ │ │ ├── tterrors.h │ │ │ ├── ttgload.c │ │ │ ├── ttgload.h │ │ │ ├── ttgxvar.c │ │ │ ├── ttgxvar.h │ │ │ ├── ttinterp.c │ │ │ ├── ttinterp.h │ │ │ ├── ttobjs.c │ │ │ ├── ttobjs.h │ │ │ ├── ttpload.c │ │ │ ├── ttpload.h │ │ │ ├── ttsubpix.c │ │ │ └── ttsubpix.h │ │ ├── type1 │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ ├── t1afm.c │ │ │ ├── t1afm.h │ │ │ ├── t1driver.c │ │ │ ├── t1driver.h │ │ │ ├── t1errors.h │ │ │ ├── t1gload.c │ │ │ ├── t1gload.h │ │ │ ├── t1load.c │ │ │ ├── t1load.h │ │ │ ├── t1objs.c │ │ │ ├── t1objs.h │ │ │ ├── t1parse.c │ │ │ ├── t1parse.h │ │ │ ├── t1tokens.h │ │ │ └── type1.c │ │ ├── type42 │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ ├── t42drivr.c │ │ │ ├── t42drivr.h │ │ │ ├── t42error.h │ │ │ ├── t42objs.c │ │ │ ├── t42objs.h │ │ │ ├── t42parse.c │ │ │ ├── t42parse.h │ │ │ ├── t42types.h │ │ │ └── type42.c │ │ └── winfonts │ │ │ ├── fnterrs.h │ │ │ ├── module.mk │ │ │ ├── rules.mk │ │ │ ├── winfnt.c │ │ │ └── winfnt.h │ ├── subprojects │ │ ├── harfbuzz.wrap │ │ ├── libpng.wrap │ │ └── zlib.wrap │ ├── tests │ │ ├── README.md │ │ ├── issue-1063 │ │ │ └── main.c │ │ ├── meson.build │ │ └── scripts │ │ │ └── download-test-fonts.py │ └── vms_make.com └── stb │ ├── stb_image.h │ ├── stb_image_resize.h │ ├── stb_image_write.h │ └── stb_vorbis.c ├── include ├── LDL │ ├── APIs │ │ ├── DirectX │ │ │ ├── DirectX9.hpp │ │ │ └── DirectXLoader.hpp │ │ ├── DirectX6 │ │ │ ├── DirectX6Loader.hpp │ │ │ ├── d3d.hpp │ │ │ ├── d3dcaps.hpp │ │ │ ├── d3dtypes.hpp │ │ │ └── ddraw.hpp │ │ ├── DirectX7 │ │ │ └── DDRAW.hpp │ │ ├── Glide │ │ │ ├── 3dfx.hpp │ │ │ ├── Glide.hpp │ │ │ └── GlideLoader.hpp │ │ ├── OpenGL │ │ │ ├── OpenGL1_0.hpp │ │ │ ├── OpenGL1_1.hpp │ │ │ ├── OpenGL1_2.hpp │ │ │ ├── OpenGL1_3.hpp │ │ │ ├── OpenGL1_4.hpp │ │ │ ├── OpenGL1_5.hpp │ │ │ ├── OpenGL2_0.hpp │ │ │ ├── OpenGL2_1.hpp │ │ │ ├── OpenGL3_0.hpp │ │ │ ├── OpenGL3_1.hpp │ │ │ ├── OpenGL3_2.hpp │ │ │ ├── OpenGL3_3.hpp │ │ │ ├── OpenGL4_0.hpp │ │ │ ├── OpenGL4_1.hpp │ │ │ ├── OpenGL4_2.hpp │ │ │ ├── OpenGL4_3.hpp │ │ │ ├── OpenGL4_4.hpp │ │ │ ├── OpenGL4_5.hpp │ │ │ ├── OpenGL4_6.hpp │ │ │ ├── OpenGLLoader.hpp │ │ │ ├── OpenGLTypes.hpp │ │ │ ├── OpenGLUtility.hpp │ │ │ ├── OpenGLUtilityToolkit.hpp │ │ │ ├── OpenGL_Constants.hpp │ │ │ ├── OpenGL_Functions.hpp │ │ │ └── OpenGL_Matrix4.hpp │ │ └── WinApi │ │ │ └── TypesHeader.hpp │ ├── Allocators │ │ ├── Allocator.hpp │ │ ├── FixedLinear.hpp │ │ ├── ObjectPool.hpp │ │ └── SmallAllocator.hpp │ ├── Audio │ │ ├── AudioContext.hpp │ │ ├── Mixer.hpp │ │ └── Sound.hpp │ ├── Containers │ │ └── List.hpp │ ├── Contexts │ │ ├── Direct3D10.hpp │ │ ├── Direct3D9.hpp │ │ └── DirectDrawContext.hpp │ ├── Core │ │ ├── Assert.hpp │ │ ├── CommandLineParser.hpp │ │ ├── Console.hpp │ │ ├── Directory.hpp │ │ ├── FastPimpl.hpp │ │ ├── FileInfo.hpp │ │ ├── Library.hpp │ │ ├── NumberToString.hpp │ │ ├── Terminate.hpp │ │ ├── TestEqual.hpp │ │ ├── Types.hpp │ │ └── pstdint.h │ ├── Enums │ │ ├── ButtonState.hpp │ │ ├── KeyboardKey.hpp │ │ ├── MouseButton.hpp │ │ ├── MouseScroll.hpp │ │ ├── RenderMode.hpp │ │ └── WindowMode.hpp │ ├── Events │ │ ├── Event.hpp │ │ ├── GainedFocus.hpp │ │ ├── Keyboard.hpp │ │ ├── LostFocus.hpp │ │ ├── Mouse.hpp │ │ ├── Quit.hpp │ │ └── Resize.hpp │ ├── Graphics │ │ ├── Camera.hpp │ │ ├── Color.hpp │ │ ├── ImageResizer.hpp │ │ ├── ImageWritter.hpp │ │ ├── Isometric.hpp │ │ ├── Palette.hpp │ │ ├── PixelConverter.hpp │ │ ├── PixelCopier.hpp │ │ ├── PixelPainter.hpp │ │ ├── Rect.hpp │ │ ├── Render.hpp │ │ ├── RenderContext.hpp │ │ ├── Screenshoter.hpp │ │ ├── Surface.hpp │ │ ├── Texture.hpp │ │ ├── TextureBatcher.hpp │ │ ├── VideoMode.hpp │ │ └── Window.hpp │ ├── Input │ │ ├── Display.hpp │ │ └── Mouse.hpp │ ├── Loaders │ │ ├── FontLoader.hpp │ │ ├── ImageLoader.hpp │ │ └── SoundLoader.hpp │ ├── Math │ │ ├── Funcs.hpp │ │ ├── Mat4.hpp │ │ ├── Vec2.hpp │ │ └── Vec3.hpp │ ├── Text │ │ ├── Font.hpp │ │ ├── Rasterizer.hpp │ │ └── RasterizerContext.hpp │ └── Time │ │ ├── FpsCounter.hpp │ │ ├── FpsLimiter.hpp │ │ └── Ticks.hpp └── LDLC │ ├── LDL.h │ ├── LDL_Allocator.h │ ├── LDL_Enums.h │ ├── LDL_Events.h │ ├── LDL_Export.h │ ├── LDL_FixedLinear.h │ ├── LDL_FpsCounter.h │ ├── LDL_FpsLimiter.h │ ├── LDL_ImageLoader.h │ ├── LDL_Library.h │ ├── LDL_NumberToString.h │ ├── LDL_OpenGLLoader.h │ ├── LDL_Render.h │ ├── LDL_RenderContext.h │ ├── LDL_Surface.h │ ├── LDL_Texture.h │ ├── LDL_Ticks.h │ ├── LDL_Types.h │ ├── LDL_Window.h │ └── OpenGL │ ├── OpenGL1_0.h │ ├── OpenGL1_1.h │ ├── OpenGL1_2.h │ ├── OpenGL1_3.h │ ├── OpenGL1_4.h │ ├── OpenGL1_5.h │ ├── OpenGL2_0.h │ ├── OpenGL2_1.h │ ├── OpenGL3_0.h │ ├── OpenGL3_1.h │ ├── OpenGL3_2.h │ ├── OpenGL3_3.h │ ├── OpenGL4_0.h │ ├── OpenGL4_1.h │ ├── OpenGL4_2.h │ ├── OpenGL4_3.h │ ├── OpenGL4_4.h │ ├── OpenGL4_5.h │ └── OpenGL4_6.h ├── license.txt ├── source ├── Platforms │ ├── Linux │ │ ├── Audio │ │ │ └── OpenAL │ │ │ │ ├── AudioContextImpl.cpp │ │ │ │ ├── AudioContextImpl.hpp │ │ │ │ ├── MixerImpl.cpp │ │ │ │ ├── MixerImpl.hpp │ │ │ │ ├── SoundImpl.cpp │ │ │ │ └── SoundImpl.hpp │ │ ├── Core │ │ │ ├── DirectoryImpl.cpp │ │ │ ├── DirectoryImpl.hpp │ │ │ ├── LibraryImpl.cpp │ │ │ └── LibraryImpl.hpp │ │ ├── Graphics │ │ │ ├── GLX.hpp │ │ │ ├── Glide │ │ │ │ ├── WindowImplGlide.cpp │ │ │ │ └── WindowImplGlide.hpp │ │ │ ├── MainWindow.cpp │ │ │ ├── MainWindow.hpp │ │ │ ├── OpenGL │ │ │ │ ├── FunctionsImpl.cpp │ │ │ │ └── FunctionsImpl.hpp │ │ │ ├── OpenGL1 │ │ │ │ ├── WindowImplOpenGL1.cpp │ │ │ │ └── WindowImplOpenGL1.hpp │ │ │ ├── OpenGL3 │ │ │ │ ├── WindowImplOpenGL3.cpp │ │ │ │ └── WindowImplOpenGL3.hpp │ │ │ ├── Software │ │ │ │ ├── WindowImplSoftware.cpp │ │ │ │ └── WindowImplSoftware.hpp │ │ │ └── Window.cpp │ │ ├── Input │ │ │ ├── Display.cpp │ │ │ └── Mouse.cpp │ │ └── Time │ │ │ └── Ticks.cpp │ ├── WindowImpl.hpp │ └── Windows │ │ ├── Audio │ │ └── DirectSound8 │ │ │ ├── AudioContextImpl.cpp │ │ │ ├── AudioContextImpl.hpp │ │ │ ├── MixerImpl.cpp │ │ │ ├── MixerImpl.hpp │ │ │ ├── SoundImpl.cpp │ │ │ └── SoundImpl.hpp │ │ ├── Core │ │ ├── ConsoleImpl.cpp │ │ ├── ConsoleImpl.hpp │ │ ├── DirectoryImpl.cpp │ │ ├── DirectoryImpl.hpp │ │ ├── LibraryImpl.cpp │ │ ├── LibraryImpl.hpp │ │ └── Terminate.cpp │ │ ├── DirectX │ │ ├── DirectDraw.cpp │ │ ├── DirectDraw.hpp │ │ ├── DirectSound8.cpp │ │ ├── DirectSound8.hpp │ │ └── DirectX.hpp │ │ ├── Graphics │ │ ├── MainWindow.cpp │ │ ├── MainWindow.hpp │ │ ├── OpenGLFunctionsImpl.cpp │ │ ├── OpenGLFunctionsImpl.hpp │ │ ├── WindowImplDirect3D6.cpp │ │ ├── WindowImplDirect3D6.hpp │ │ ├── WindowImplDirectDraw.cpp │ │ ├── WindowImplDirectDraw.hpp │ │ ├── WindowImplGlide.cpp │ │ ├── WindowImplGlide.hpp │ │ ├── WindowImplOpenGL1.cpp │ │ ├── WindowImplOpenGL1.hpp │ │ ├── WindowImplOpenGL3.cpp │ │ ├── WindowImplOpenGL3.hpp │ │ ├── WindowImplSoftware.cpp │ │ └── WindowImplSoftware.hpp │ │ ├── Input │ │ ├── Display.cpp │ │ └── Mouse.cpp │ │ ├── Time │ │ └── Ticks.cpp │ │ └── Windows.hpp └── Shared │ ├── APIs │ ├── DirectX │ │ ├── DirectX6.cpp │ │ ├── DirectX6Loader.cpp │ │ ├── DirectX9.cpp │ │ └── DirectXLoader.cpp │ ├── GLU │ │ ├── mipmap.cpp │ │ ├── project.cpp │ │ └── quad.cpp │ ├── GLUT │ │ └── glut.cpp │ ├── Glide │ │ ├── Glide.cpp │ │ └── GlideLoader.cpp │ ├── LDLC │ │ ├── LDL_FixedLinear.cpp │ │ ├── LDL_FpsCounter.cpp │ │ ├── LDL_FpsLimiter.cpp │ │ ├── LDL_ImageLoader.cpp │ │ ├── LDL_Library.cpp │ │ ├── LDL_NumberToString.cpp │ │ ├── LDL_OpenGLLoader.cpp │ │ ├── LDL_Render.cpp │ │ ├── LDL_RenderContext.cpp │ │ ├── LDL_Surface.cpp │ │ ├── LDL_Texture.cpp │ │ ├── LDL_Ticks.cpp │ │ └── LDL_Window.cpp │ └── OpenGL │ │ ├── OpenGL1_0.cpp │ │ ├── OpenGL1_1.cpp │ │ ├── OpenGL1_2.cpp │ │ ├── OpenGL1_3.cpp │ │ ├── OpenGL1_4.cpp │ │ ├── OpenGL1_5.cpp │ │ ├── OpenGL2_0.cpp │ │ ├── OpenGL2_1.cpp │ │ ├── OpenGL3_0.cpp │ │ ├── OpenGL3_1.cpp │ │ ├── OpenGL3_2.cpp │ │ ├── OpenGL3_3.cpp │ │ ├── OpenGL4_0.cpp │ │ ├── OpenGL4_1.cpp │ │ ├── OpenGL4_2.cpp │ │ ├── OpenGL4_3.cpp │ │ ├── OpenGL4_4.cpp │ │ ├── OpenGL4_5.cpp │ │ ├── OpenGL4_6.cpp │ │ ├── OpenGLLoader.cpp │ │ └── OpenGLUtility.cpp │ ├── Allocators │ ├── FixedLinear.cpp │ └── SmallAllocator.cpp │ ├── Audio │ ├── AudioContext.cpp │ ├── Mixer.cpp │ └── Sound.cpp │ ├── Core │ ├── Assert.cpp │ ├── CommandLineParser.cpp │ ├── Console.cpp │ ├── Directory.cpp │ ├── FastPimpl.cpp │ ├── FileInfo.cpp │ ├── Library.cpp │ ├── NumberToString.cpp │ └── TestEqual.cpp │ ├── Events │ ├── Eventer.cpp │ └── Eventer.hpp │ ├── Graphics │ ├── Base │ │ ├── BaseRender.cpp │ │ ├── BaseRender.hpp │ │ ├── BaseScreenshoter.cpp │ │ ├── BaseScreenshoter.hpp │ │ ├── BaseWindow.cpp │ │ └── BaseWindow.hpp │ ├── Camera.cpp │ ├── Creators │ │ ├── RenderContextImplCreator.cpp │ │ ├── RenderContextImplCreator.hpp │ │ ├── RenderImplCreator.cpp │ │ ├── RenderImplCreator.hpp │ │ ├── TextureBatcherImplCreator.cpp │ │ ├── TextureBatcherImplCreator.hpp │ │ ├── TextureImplCreator.cpp │ │ ├── TextureImplCreator.hpp │ │ ├── WindowImplCreator.cpp │ │ └── WindowImplCreator.hpp │ ├── ImageResizer.cpp │ ├── ImageWritter.cpp │ ├── Impls │ │ ├── CameraImpl.hpp │ │ ├── RenderContextImpl.hpp │ │ ├── RenderImpl.hpp │ │ ├── ScreenshoterImpl.hpp │ │ ├── TextureBatcherImpl.hpp │ │ └── TextureImpl.hpp │ ├── Isometric.cpp │ ├── Palette.cpp │ ├── PixelConverter.cpp │ ├── Render.cpp │ ├── RenderContext.cpp │ ├── Renders │ │ ├── Direct3D6 │ │ │ ├── CameraImplDirect3D6.cpp │ │ │ ├── CameraImplDirect3D6.hpp │ │ │ ├── RenderContextImplDirect3D6.cpp │ │ │ ├── RenderContextImplDirect3D6.hpp │ │ │ ├── RenderImplDirect3D6.cpp │ │ │ ├── RenderImplDirect3D6.hpp │ │ │ ├── ScreenshoterImplDirect3D6.cpp │ │ │ ├── ScreenshoterImplDirect3D6.hpp │ │ │ ├── TextureBatcherImplDirect3D6.cpp │ │ │ ├── TextureBatcherImplDirect3D6.hpp │ │ │ ├── TextureImplDirect3D6.cpp │ │ │ └── TextureImplDirect3D6.hpp │ │ ├── DirectX.hpp │ │ ├── Glide │ │ │ ├── CameraImplGlide.cpp │ │ │ ├── CameraImplGlide.hpp │ │ │ ├── RenderContextImplGlide.cpp │ │ │ ├── RenderContextImplGlide.hpp │ │ │ ├── RenderImplGlide.cpp │ │ │ ├── RenderImplGlide.hpp │ │ │ ├── ScreenshoterImplGlide.cpp │ │ │ ├── ScreenshoterImplGlide.hpp │ │ │ ├── TextureBatcherImplGlide.cpp │ │ │ ├── TextureBatcherImplGlide.hpp │ │ │ ├── TextureImplGlide.cpp │ │ │ └── TextureImplGlide.hpp │ │ ├── OpenGL │ │ │ ├── Functions.cpp │ │ │ ├── Util.cpp │ │ │ └── Util.hpp │ │ ├── OpenGL1 │ │ │ ├── CameraImplOpenGL1.cpp │ │ │ ├── CameraImplOpenGL1.hpp │ │ │ ├── RenderBufferOpenGL1.cpp │ │ │ ├── RenderBufferOpenGL1.hpp │ │ │ ├── RenderContextImplOpenGL1.cpp │ │ │ ├── RenderContextImplOpenGL1.hpp │ │ │ ├── RenderImplOpenGL1.cpp │ │ │ ├── RenderImplOpenGL1.hpp │ │ │ ├── ScreenOpenGL1.cpp │ │ │ ├── ScreenOpenGL1.hpp │ │ │ ├── ScreenshoterImplOpenGL1.cpp │ │ │ ├── ScreenshoterImplOpenGL1.hpp │ │ │ ├── TextureBatcherImplOpenGL1.cpp │ │ │ ├── TextureBatcherImplOpenGL1.hpp │ │ │ ├── TextureImplOpenGL1.cpp │ │ │ └── TextureImplOpenGL1.hpp │ │ ├── OpenGL3 │ │ │ ├── CameraImplOpenGL3.cpp │ │ │ ├── CameraImplOpenGL3.hpp │ │ │ ├── LinePainterOpenGL3.cpp │ │ │ ├── LinePainterOpenGL3.hpp │ │ │ ├── RenderContextImplOpenGL3.cpp │ │ │ ├── RenderContextImplOpenGL3.hpp │ │ │ ├── RenderImplOpenGL3.cpp │ │ │ ├── RenderImplOpenGL3.hpp │ │ │ ├── ScreenshoterImplOpenGL3.cpp │ │ │ ├── ScreenshoterImplOpenGL3.hpp │ │ │ ├── ShaderLoaderOpenGL3.cpp │ │ │ ├── ShaderLoaderOpenGL3.hpp │ │ │ ├── TextureBatcherImplOpenGL3.cpp │ │ │ ├── TextureBatcherImplOpenGL3.hpp │ │ │ ├── TextureImplOpenGL3.cpp │ │ │ ├── TextureImplOpenGL3.hpp │ │ │ ├── TexturePainterOpenGL3.cpp │ │ │ └── TexturePainterOpenGL3.hpp │ │ └── Software │ │ │ ├── CameraImplSoftware.cpp │ │ │ ├── CameraImplSoftware.hpp │ │ │ ├── PixelCopier.cpp │ │ │ ├── PixelPainter.cpp │ │ │ ├── RenderContextImplSoftware.cpp │ │ │ ├── RenderContextImplSoftware.hpp │ │ │ ├── RenderImplSoftware.cpp │ │ │ ├── RenderImplSoftware.hpp │ │ │ ├── ScreenshoterImplSoftware.cpp │ │ │ ├── ScreenshoterImplSoftware.hpp │ │ │ ├── Surface.cpp │ │ │ ├── TextureBatcherImplSoftware.cpp │ │ │ ├── TextureBatcherImplSoftware.hpp │ │ │ ├── TextureImplSoftware.cpp │ │ │ └── TextureImplSoftware.hpp │ ├── Screenshoter.cpp │ ├── Texture.cpp │ ├── TextureBatcher.cpp │ ├── Utils │ │ ├── PotTextureSizer.cpp │ │ └── PotTextureSizer.hpp │ ├── VideoMode.cpp │ └── Window.cpp │ ├── Loaders │ ├── FontLoader.cpp │ ├── ImageLoader.cpp │ └── SoundLoader.cpp │ ├── Text │ ├── Font.cpp │ ├── FontImpl.cpp │ ├── FontImpl.hpp │ ├── FreeType.hpp │ ├── Rasterizer.cpp │ ├── RasterizerContext.cpp │ ├── RasterizerContextImpl.cpp │ ├── RasterizerContextImpl.hpp │ ├── RasterizerImpl.cpp │ └── RasterizerImpl.hpp │ └── Time │ ├── FpsCounter.cpp │ └── FpsLimiter.cpp └── test ├── Allocators ├── Allocator.cpp ├── CMakeLists.txt ├── FixedLinear.cpp ├── ObjectPool.cpp └── SmallAllocator.cpp ├── Audio ├── CMakeLists.txt └── Mixer.cpp ├── CMakeLists.txt ├── Containers ├── CMakeLists.txt └── List.cpp ├── Core ├── CMakeLists.txt ├── Directory.cpp └── NumberToString.cpp ├── Graphics ├── CMakeLists.txt ├── Camera.cpp ├── Color.cpp ├── ImageResizer.cpp ├── ImageWritter.cpp ├── Isometric.cpp ├── PixelConverter.cpp ├── PixelPainter.cpp ├── Rectu.cpp ├── Render.cpp ├── Surface.cpp ├── Utils │ ├── CMakeLists.txt │ └── PotTextureSizer.cpp ├── VideoMode.cpp └── Window.cpp ├── Input ├── CMakeLists.txt ├── Display.cpp └── Mouse.cpp ├── LDLC ├── CMakeLists.txt ├── LDL_EventsTest.cpp ├── LDL_RenderTest.cpp └── LDL_WindowTest.cpp ├── Loaders ├── CMakeLists.txt ├── FontLoader.cpp ├── ImageLoader.cpp └── SoundLoader.cpp ├── Math ├── CMakeLists.txt ├── Funcs.cpp ├── Mat4.cpp ├── Vec2.cpp └── Vec3.cpp └── Performance ├── CMakeLists.txt └── PixelPainter.cpp /Examples/BeginEnd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(01_FirstProgram "01_FirstProgram.cpp") 2 | target_link_libraries(01_FirstProgram LDL) 3 | 4 | add_executable(02_PointLineTriangleCircle "02_PointLineTriangleCircle.cpp") 5 | target_link_libraries(02_PointLineTriangleCircle LDL) 6 | 7 | add_executable(04_WeWriteMinesweeperGame "04_WeWriteMinesweeperGame.cpp") 8 | target_link_libraries(04_WeWriteMinesweeperGame LDL) -------------------------------------------------------------------------------- /Examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory("BeginEnd") 2 | add_subdirectory("DirectX") 3 | add_subdirectory("Glide") 4 | add_subdirectory("LDLC") 5 | add_subdirectory("LDLCpp") 6 | add_subdirectory("NeheOpenGL") 7 | add_subdirectory("OpenGL_SuperBible") 8 | add_subdirectory("OpenGL1") 9 | add_subdirectory("VictorGordan") -------------------------------------------------------------------------------- /Examples/DirectX/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory("DirectX6") 2 | add_subdirectory("DirectX9") -------------------------------------------------------------------------------- /Examples/DirectX/DirectX6/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(DirectX6Loader "DirectX6Loader.cpp") 2 | target_link_libraries(DirectX6Loader LDL) -------------------------------------------------------------------------------- /Examples/DirectX/DirectX9/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(DirectX9Loader "DirectX9Loader.cpp") 2 | target_link_libraries(DirectX9Loader LDL) -------------------------------------------------------------------------------- /Examples/Glide/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(01_Glide_Screen "01_Glide_Screen.cpp") 2 | target_link_libraries(01_Glide_Screen LDL) -------------------------------------------------------------------------------- /Examples/LDLC/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(LDLC_01_WindowAndRender "LDLC_01_WindowAndRender.c") 2 | target_link_libraries(LDLC_01_WindowAndRender LDL) 3 | 4 | add_executable(LDLC_02_Color "LDLC_02_Color.c") 5 | target_link_libraries(LDLC_02_Color LDL) 6 | 7 | add_executable(LDLC_03_Line "LDLC_03_Line.c") 8 | target_link_libraries(LDLC_03_Line LDL) 9 | 10 | add_executable(LDLC_04_Rect "LDLC_04_Rect.c") 11 | target_link_libraries(LDLC_04_Rect LDL) 12 | 13 | add_executable(LDLC_05_Texture "LDLC_05_Texture.c") 14 | target_link_libraries(LDLC_05_Texture LDL) -------------------------------------------------------------------------------- /Examples/LDLC/Data/1.ogg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2663767b01d0d2c0cc6213d4f0cecd2b79ec726aa05d33275b065a6a078eb224 3 | size 3347460 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/Gorgosaurus_BW_transparent.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:36b4e662dd68bc0b5b92cb114d01a299d8b94ddb01f6c053b7911d4d8e169dab 3 | size 999654 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/Gorgosaurus_BW_transparent.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee1bad9460ada0324d3c56cb635b2d4d7033c751245f2a3ec1ff31a67f9ab99b 3 | size 198959 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/NeHe.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:afaa93377e31f33fccae8cc78a5c58dc2e2edc472f2795d1a69420c72e6c7a00 3 | size 196664 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/SeasonsTiles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8a2343bbefe3d14062dddf7f8aad1cc9ae4f3571400e2951934cb6deface9a39 3 | size 749291 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/UbuntuMono-Regular.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b83b9ca3a1186b4bf8fbcbc8078b360bdb78a77a859f8eeabc9b14fb165da9a 3 | size 189892 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/bg1bg23d_0_0_0.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7304a29d253dd25ffdfbb2f922bfc1211095b65aa40756b9e2de2ddedad1eba 3 | size 4278 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/sound01.wav: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:89061cb36a22ff51cf5e34327e4bdca69ca353dcd0141ac1a35ec1c44ed8443f 3 | size 361396 4 | -------------------------------------------------------------------------------- /Examples/LDLC/Data/trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cdab1abd35cdca2b3fac51dadd7d8023fac65037f26ef34fad5af625afc829af 3 | size 220521 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/1.ogg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2663767b01d0d2c0cc6213d4f0cecd2b79ec726aa05d33275b065a6a078eb224 3 | size 3347460 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/Gorgosaurus_BW_transparent.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:36b4e662dd68bc0b5b92cb114d01a299d8b94ddb01f6c053b7911d4d8e169dab 3 | size 999654 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/Gorgosaurus_BW_transparent.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee1bad9460ada0324d3c56cb635b2d4d7033c751245f2a3ec1ff31a67f9ab99b 3 | size 198959 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/NeHe.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:afaa93377e31f33fccae8cc78a5c58dc2e2edc472f2795d1a69420c72e6c7a00 3 | size 196664 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/SeasonsTiles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8a2343bbefe3d14062dddf7f8aad1cc9ae4f3571400e2951934cb6deface9a39 3 | size 749291 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/UbuntuMono-Regular.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b83b9ca3a1186b4bf8fbcbc8078b360bdb78a77a859f8eeabc9b14fb165da9a 3 | size 189892 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/bg1bg23d_0_0_0.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7304a29d253dd25ffdfbb2f922bfc1211095b65aa40756b9e2de2ddedad1eba 3 | size 4278 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/sound01.wav: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:89061cb36a22ff51cf5e34327e4bdca69ca353dcd0141ac1a35ec1c44ed8443f 3 | size 361396 4 | -------------------------------------------------------------------------------- /Examples/LDLCpp/Data/trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cdab1abd35cdca2b3fac51dadd7d8023fac65037f26ef34fad5af625afc829af 3 | size 220521 4 | -------------------------------------------------------------------------------- /Examples/NeheOpenGL/Data/Crate.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:162151fc3d547bf04a4058d1d11938bbfe0975909e8337899721a946cc0d6066 3 | size 66614 4 | -------------------------------------------------------------------------------- /Examples/NeheOpenGL/Data/Cube.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7bdcea3dc63f4093a92426ce00438fb6695039e0df27e250383b436fc26adc0 3 | size 49220 4 | -------------------------------------------------------------------------------- /Examples/NeheOpenGL/Data/Glass.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4791f01600012f4e972ea9801f771ec7c910f3760e4f8d7e93db90ebd29c4bb2 3 | size 49220 4 | -------------------------------------------------------------------------------- /Examples/NeheOpenGL/Data/Mud.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a0cd1d10db7e31c2a8c3c521357c3cc35393f5fe28ef1726ad10769a67923cfd 3 | size 196662 4 | -------------------------------------------------------------------------------- /Examples/NeheOpenGL/Data/NeHe.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:afaa93377e31f33fccae8cc78a5c58dc2e2edc472f2795d1a69420c72e6c7a00 3 | size 196664 4 | -------------------------------------------------------------------------------- /Examples/NeheOpenGL/Data/Star.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9e473a11fc90bcafd0d3ae011e999374b130e11f05c4fafa637fecb6c2b686cf 3 | size 17476 4 | -------------------------------------------------------------------------------- /Examples/NeheOpenGL/Data/Tim.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:688622bce0dbb1b3c8950a8299a3914a6fb15e4df7551669dc7817d1366c462e 3 | size 66616 4 | -------------------------------------------------------------------------------- /Examples/OpenGL1/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(Figures "Figures.cpp") 2 | target_link_libraries(Figures LDL) 3 | 4 | add_executable(Primitive "Primitive.cpp") 5 | target_link_libraries(Primitive LDL) 6 | 7 | add_executable(Triangle "Triangle.cpp") 8 | target_link_libraries(Triangle LDL) 9 | 10 | add_executable(Tetrahedron "Tetrahedron.cpp") 11 | target_link_libraries(Tetrahedron LDL) 12 | 13 | add_executable(Torus "Torus.cpp") 14 | target_link_libraries(Torus LDL) 15 | 16 | add_executable(Sierpinski2D "Sierpinski2D.cpp") 17 | target_link_libraries(Sierpinski2D LDL) 18 | 19 | add_executable(Sierpinski3D "Sierpinski3D.cpp") 20 | target_link_libraries(Sierpinski3D LDL) -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/04_Organizing/default.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | out vec4 FragColor; 3 | void main() 4 | { 5 | FragColor = vec4(0.8f, 0.3f, 0.02f, 1.0f); 6 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/04_Organizing/default.vert: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 aPos; 3 | void main() 4 | { 5 | gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0); 6 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/05_Shaders/default.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | // Outputs colors in RGBA 4 | out vec4 FragColor; 5 | 6 | 7 | // Inputs the color from the Vertex Shader 8 | in vec3 color; 9 | 10 | 11 | void main() 12 | { 13 | FragColor = vec4(color, 1.0f); 14 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/05_Shaders/default.vert: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | //Positions/Coordinates 4 | layout (location = 0) in vec3 aPos; 5 | // Colors 6 | layout (location = 1) in vec3 aColor; 7 | 8 | 9 | // Outputs the color for the Fragment Shader 10 | out vec3 color; 11 | // Controls the scale of the vertices 12 | uniform float scale; 13 | 14 | 15 | void main() 16 | { 17 | // Outputs the positions/coordinates of all vertices 18 | gl_Position = vec4(aPos.x + aPos.x * scale, aPos.y + aPos.y * scale, aPos.z + aPos.z * scale, 1.0); 19 | // Assigns the colors from the Vertex Data to "color" 20 | color = aColor; 21 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/06_Textures/default.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | // Outputs colors in RGBA 4 | out vec4 FragColor; 5 | 6 | 7 | // Inputs the color from the Vertex Shader 8 | in vec3 color; 9 | // Inputs the texture coordinates from the Vertex Shader 10 | in vec2 texCoord; 11 | 12 | // Gets the Texture Unit from the main function 13 | uniform sampler2D tex0; 14 | 15 | 16 | void main() 17 | { 18 | FragColor = texture(tex0, texCoord); 19 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/07_Going3D/default.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | // Outputs colors in RGBA 4 | out vec4 FragColor; 5 | 6 | 7 | // Inputs the color from the Vertex Shader 8 | in vec3 color; 9 | // Inputs the texture coordinates from the Vertex Shader 10 | in vec2 texCoord; 11 | 12 | // Gets the Texture Unit from the main function 13 | uniform sampler2D tex0; 14 | 15 | 16 | void main() 17 | { 18 | FragColor = texture(tex0, texCoord); 19 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/08_Camera/default.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | // Outputs colors in RGBA 4 | out vec4 FragColor; 5 | 6 | 7 | // Inputs the color from the Vertex Shader 8 | in vec3 color; 9 | // Inputs the texture coordinates from the Vertex Shader 10 | in vec2 texCoord; 11 | 12 | // Gets the Texture Unit from the main function 13 | uniform sampler2D tex0; 14 | 15 | 16 | void main() 17 | { 18 | FragColor = texture(tex0, texCoord); 19 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/09_Lighting/light.frag: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | out vec4 FragColor; 4 | 5 | uniform vec4 lightColor; 6 | 7 | void main() 8 | { 9 | FragColor = lightColor; 10 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Shaders/09_Lighting/light.vert: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | layout (location = 0) in vec3 aPos; 4 | 5 | uniform mat4 model; 6 | uniform mat4 camMatrix; 7 | 8 | void main() 9 | { 10 | gl_Position = camMatrix * model * vec4(aPos, 1.0f); 11 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Textures/brick.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:832664dcc1eecb536b06f3dc3748ab52944dc16bd45bbf3cc21baec06ba37dbd 3 | size 5779234 4 | -------------------------------------------------------------------------------- /Examples/VictorGordan/Data/Textures/pop_cat.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:393568d41f5fd1448f9631d175d1715b113f05cd30ca411bf091daea964fbecc 3 | size 152477 4 | -------------------------------------------------------------------------------- /Examples/VictorGordan/GordanLib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | include_directories(../include) 3 | file(GLOB_RECURSE SOURCE_GORDON_LIB "*.cpp") 4 | add_library(GordonLib STATIC ${SOURCE_GORDON_LIB}) 5 | target_link_libraries(GordonLib LDL) -------------------------------------------------------------------------------- /Examples/VictorGordan/GordanLib/EBO.cpp: -------------------------------------------------------------------------------- 1 | #include"EBO.h" 2 | 3 | // Constructor that generates a Elements Buffer Object and links it to indices 4 | EBO::EBO(GLuint* indices, GLsizeiptr size) 5 | { 6 | glGenBuffers(1, &ID); 7 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ID); 8 | glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, indices, GL_STATIC_DRAW); 9 | } 10 | 11 | // Binds the EBO 12 | void EBO::Bind() 13 | { 14 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ID); 15 | } 16 | 17 | // Unbinds the EBO 18 | void EBO::Unbind() 19 | { 20 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); 21 | } 22 | 23 | // Deletes the EBO 24 | void EBO::Delete() 25 | { 26 | glDeleteBuffers(1, &ID); 27 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/GordanLib/EBO.h: -------------------------------------------------------------------------------- 1 | #ifndef EBO_CLASS_H 2 | #define EBO_CLASS_H 3 | 4 | #include 5 | 6 | class EBO 7 | { 8 | public: 9 | // ID reference of Elements Buffer Object 10 | GLuint ID; 11 | // Constructor that generates a Elements Buffer Object and links it to indices 12 | EBO(GLuint* indices, GLsizeiptr size); 13 | 14 | // Binds the EBO 15 | void Bind(); 16 | // Unbinds the EBO 17 | void Unbind(); 18 | // Deletes the EBO 19 | void Delete(); 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /Examples/VictorGordan/GordanLib/Texture.h: -------------------------------------------------------------------------------- 1 | #ifndef TEXTURE_CLASS_H 2 | #define TEXTURE_CLASS_H 3 | 4 | #include 5 | #include "shaderClass.h" 6 | 7 | class TextureGL 8 | { 9 | public: 10 | GLuint ID; 11 | GLenum type; 12 | TextureGL(LDL::Loaders::ImageLoader& loader, GLenum texType, GLenum slot, GLenum format, GLenum pixelType); 13 | 14 | // Assigns a texture unit to a texture 15 | void texUnit(Shader& shader, const char* uniform, GLuint unit); 16 | // Binds a texture 17 | void Bind(); 18 | // Unbinds a texture 19 | void Unbind(); 20 | // Deletes a texture 21 | void Delete(); 22 | }; 23 | #endif -------------------------------------------------------------------------------- /Examples/VictorGordan/GordanLib/VAO.h: -------------------------------------------------------------------------------- 1 | #ifndef VAO_CLASS_H 2 | #define VAO_CLASS_H 3 | 4 | #include 5 | #include "VBO.h" 6 | 7 | class VAO 8 | { 9 | public: 10 | // ID reference for the Vertex Array Object 11 | GLuint ID; 12 | // Constructor that generates a VAO ID 13 | VAO(); 14 | 15 | // Links a VBO Attribute such as a position or color to the VAO 16 | void LinkAttrib(VBO& VBO, GLuint layout, GLuint numComponents, GLenum type, GLsizeiptr stride, void* offset); 17 | // Binds the VAO 18 | void Bind(); 19 | // Unbinds the VAO 20 | void Unbind(); 21 | // Deletes the VAO 22 | void Delete(); 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /Examples/VictorGordan/GordanLib/VBO.cpp: -------------------------------------------------------------------------------- 1 | #include"VBO.h" 2 | 3 | // Constructor that generates a Vertex Buffer Object and links it to vertices 4 | VBO::VBO(GLfloat* vertices, GLsizeiptr size) 5 | { 6 | glGenBuffers(1, &ID); 7 | glBindBuffer(GL_ARRAY_BUFFER, ID); 8 | glBufferData(GL_ARRAY_BUFFER, size, vertices, GL_STATIC_DRAW); 9 | } 10 | 11 | // Binds the VBO 12 | void VBO::Bind() 13 | { 14 | glBindBuffer(GL_ARRAY_BUFFER, ID); 15 | } 16 | 17 | // Unbinds the VBO 18 | void VBO::Unbind() 19 | { 20 | glBindBuffer(GL_ARRAY_BUFFER, 0); 21 | } 22 | 23 | // Deletes the VBO 24 | void VBO::Delete() 25 | { 26 | glDeleteBuffers(1, &ID); 27 | } -------------------------------------------------------------------------------- /Examples/VictorGordan/GordanLib/VBO.h: -------------------------------------------------------------------------------- 1 | #ifndef VBO_CLASS_H 2 | #define VBO_CLASS_H 3 | 4 | #include 5 | 6 | class VBO 7 | { 8 | public: 9 | // Reference ID of the Vertex Buffer Object 10 | GLuint ID; 11 | // Constructor that generates a Vertex Buffer Object and links it to vertices 12 | VBO(GLfloat* vertices, GLsizeiptr size); 13 | 14 | // Binds the VBO 15 | void Bind(); 16 | // Unbinds the VBO 17 | void Unbind(); 18 | // Deletes the VBO 19 | void Delete(); 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //! Workaround for compatibility with other libraries 4 | #ifdef max 5 | #undef max 6 | #endif 7 | 8 | //! Workaround for compatibility with other libraries 9 | #ifdef min 10 | #undef min 11 | #endif 12 | 13 | //! Workaround for Android 14 | #ifdef isnan 15 | #undef isnan 16 | #endif 17 | 18 | //! Workaround for Android 19 | #ifdef isinf 20 | #undef isinf 21 | #endif 22 | 23 | //! Workaround for Chrone Native Client 24 | #ifdef log2 25 | #undef log2 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Examples/VictorGordan/include/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "setup.hpp" 4 | 5 | namespace glm{ 6 | namespace detail 7 | { 8 | typedef short hdata; 9 | 10 | GLM_FUNC_DECL float toFloat32(hdata value); 11 | GLM_FUNC_DECL hdata toFloat16(float const& value); 12 | 13 | }//namespace detail 14 | }//namespace glm 15 | 16 | #include "type_half.inl" 17 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | 3 | namespace glm 4 | { 5 | 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_double2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 3, double, defaultp> dmat2x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_double2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 4, double, defaultp> dmat2x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_double3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 2, double, defaultp> dmat3x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_double3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 4, double, defaultp> dmat3x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_double4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 2, double, defaultp> dmat4x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_double4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 3, double, defaultp> dmat4x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_float2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 3, float, defaultp> mat2x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_float2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 4, float, defaultp> mat2x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_float3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 2, float, defaultp> mat3x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_float3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 4, float, defaultp> mat3x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_float4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 2, float, defaultp> mat4x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/matrix_float4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 3, float, defaultp> mat4x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/quaternion_common_simd.inl: -------------------------------------------------------------------------------- 1 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 2 | 3 | namespace glm{ 4 | namespace detail 5 | { 6 | template 7 | struct compute_dot, float, true> 8 | { 9 | static GLM_FUNC_QUALIFIER float call(qua const& x, qua const& y) 10 | { 11 | return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data)); 12 | } 13 | }; 14 | }//namespace detail 15 | }//namespace glm 16 | 17 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 18 | 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/scalar_packing.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Examples/VictorGordan/include/glm/ext/scalar_packing.inl -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_bool2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, bool, defaultp> bvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_bool3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, bool, defaultp> bvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_bool4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, bool, defaultp> bvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_double2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, double, defaultp> dvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_double3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, double, defaultp> dvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_double4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, double, defaultp> dvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_float2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, float, defaultp> vec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_float3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, float, defaultp> vec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_float4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, float, defaultp> vec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_int2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, int, defaultp> ivec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_int3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, int, defaultp> ivec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_int4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, int, defaultp> ivec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_packing.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Examples/VictorGordan/include/glm/ext/vector_packing.inl -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_uint2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, unsigned int, defaultp> uvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_uint3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, unsigned int, defaultp> uvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/ext/vector_uint4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, unsigned int, defaultp> uvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtc/matrix_transform.inl: -------------------------------------------------------------------------------- 1 | #include "../geometric.hpp" 2 | #include "../trigonometric.hpp" 3 | #include "../matrix.hpp" 4 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtc/quaternion_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Examples/VictorGordan/include/glm/gtc/quaternion_simd.inl -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | 3 | #include 4 | 5 | namespace glm 6 | { 7 | template 8 | GLM_FUNC_QUALIFIER vec floatNormalize(vec const& v) 9 | { 10 | return vec(v) / static_cast(std::numeric_limits::max()); 11 | } 12 | 13 | }//namespace glm 14 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType log(genType const& x, genType const& base) 7 | { 8 | return glm::log(x) / glm::log(base); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER vec log(vec const& x, vec const& base) 13 | { 14 | return glm::log(x) / glm::log(base); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/matrix_factorisation.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Examples/VictorGordan/include/glm/gtx/matrix_factorisation.inl -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T mixedProduct 7 | ( 8 | vec<3, T, Q> const& v1, 9 | vec<3, T, Q> const& v2, 10 | vec<3, T, Q> const& v3 11 | ) 12 | { 13 | return dot(cross(v1, v2), v3); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER vec<3, T, Q> triangleNormal 7 | ( 8 | vec<3, T, Q> const& p1, 9 | vec<3, T, Q> const& p2, 10 | vec<3, T, Q> const& p3 11 | ) 12 | { 13 | return normalize(cross(p1 - p2, p1 - p3)); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T normalizeDot(vec const& x, vec const& y) 7 | { 8 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vec const& x, vec const& y) 13 | { 14 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType pow2(genType const& x) 7 | { 8 | return x * x; 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER genType pow3(genType const& x) 13 | { 14 | return x * x * x; 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER genType pow4(genType const& x) 19 | { 20 | return (x * x) * (x * x); 21 | } 22 | }//namespace glm 23 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType perp(genType const& x, genType const& Normal) 7 | { 8 | return x - proj(x, Normal); 9 | } 10 | }//namespace glm 11 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType proj(genType const& x, genType const& Normal) 7 | { 8 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 9 | } 10 | }//namespace glm 11 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | 3 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/texture.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_texture 2 | 3 | namespace glm 4 | { 5 | template 6 | inline T levels(vec const& Extent) 7 | { 8 | return glm::log2(compMax(Extent)) + static_cast(1); 9 | } 10 | 11 | template 12 | inline T levels(T Extent) 13 | { 14 | return vec<1, T, defaultp>(Extent).x; 15 | } 16 | }//namespace glm 17 | 18 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/gtx/wrap.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_wrap 2 | 3 | namespace glm 4 | { 5 | 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat2x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x2.hpp" 6 | #include "./ext/matrix_double2x2_precision.hpp" 7 | #include "./ext/matrix_float2x2.hpp" 8 | #include "./ext/matrix_float2x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x3.hpp" 6 | #include "./ext/matrix_double2x3_precision.hpp" 7 | #include "./ext/matrix_float2x3.hpp" 8 | #include "./ext/matrix_float2x3_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x4.hpp" 6 | #include "./ext/matrix_double2x4_precision.hpp" 7 | #include "./ext/matrix_float2x4.hpp" 8 | #include "./ext/matrix_float2x4_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x2.hpp" 6 | #include "./ext/matrix_double3x2_precision.hpp" 7 | #include "./ext/matrix_float3x2.hpp" 8 | #include "./ext/matrix_float3x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat3x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x3.hpp" 6 | #include "./ext/matrix_double3x3_precision.hpp" 7 | #include "./ext/matrix_float3x3.hpp" 8 | #include "./ext/matrix_float3x3_precision.hpp" 9 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x4.hpp" 6 | #include "./ext/matrix_double3x4_precision.hpp" 7 | #include "./ext/matrix_float3x4.hpp" 8 | #include "./ext/matrix_float3x4_precision.hpp" 9 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x2.hpp" 6 | #include "./ext/matrix_double4x2_precision.hpp" 7 | #include "./ext/matrix_float4x2.hpp" 8 | #include "./ext/matrix_float4x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x3.hpp" 6 | #include "./ext/matrix_double4x3_precision.hpp" 7 | #include "./ext/matrix_float4x3.hpp" 8 | #include "./ext/matrix_float4x3_precision.hpp" 9 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/mat4x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x4.hpp" 6 | #include "./ext/matrix_double4x4_precision.hpp" 7 | #include "./ext/matrix_float4x4.hpp" 8 | #include "./ext/matrix_float4x4_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec1_sqrt_lowp(glm_f32vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec4_sqrt_lowp(glm_f32vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool2.hpp" 6 | #include "./ext/vector_bool2_precision.hpp" 7 | #include "./ext/vector_float2.hpp" 8 | #include "./ext/vector_float2_precision.hpp" 9 | #include "./ext/vector_double2.hpp" 10 | #include "./ext/vector_double2_precision.hpp" 11 | #include "./ext/vector_int2.hpp" 12 | #include "./ext/vector_int2_sized.hpp" 13 | #include "./ext/vector_uint2.hpp" 14 | #include "./ext/vector_uint2_sized.hpp" 15 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool3.hpp" 6 | #include "./ext/vector_bool3_precision.hpp" 7 | #include "./ext/vector_float3.hpp" 8 | #include "./ext/vector_float3_precision.hpp" 9 | #include "./ext/vector_double3.hpp" 10 | #include "./ext/vector_double3_precision.hpp" 11 | #include "./ext/vector_int3.hpp" 12 | #include "./ext/vector_int3_sized.hpp" 13 | #include "./ext/vector_uint3.hpp" 14 | #include "./ext/vector_uint3_sized.hpp" 15 | -------------------------------------------------------------------------------- /Examples/VictorGordan/include/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool4.hpp" 6 | #include "./ext/vector_bool4_precision.hpp" 7 | #include "./ext/vector_float4.hpp" 8 | #include "./ext/vector_float4_precision.hpp" 9 | #include "./ext/vector_double4.hpp" 10 | #include "./ext/vector_double4_precision.hpp" 11 | #include "./ext/vector_int4.hpp" 12 | #include "./ext/vector_int4_sized.hpp" 13 | #include "./ext/vector_uint4.hpp" 14 | #include "./ext/vector_uint4_sized.hpp" 15 | 16 | -------------------------------------------------------------------------------- /HandMake/BC6_All.bat: -------------------------------------------------------------------------------- 1 | 2 | call Build_All BC6_Build_DLL BC6_Build_EXE -------------------------------------------------------------------------------- /HandMake/BC6_Build_EXE.bat: -------------------------------------------------------------------------------- 1 | bcc32 -eBC6_%1.exe -I..\include %2%1.cpp /link LDL_BC6.lib glu32.lib opengl32.lib 2 | 3 | del %1.obj 4 | del BC6_%1.tds -------------------------------------------------------------------------------- /HandMake/Build_All_All_All.bat: -------------------------------------------------------------------------------- 1 | 2 | call BC6_All 3 | call VC6_All 4 | call MinGW_All -------------------------------------------------------------------------------- /HandMake/Clear.bat: -------------------------------------------------------------------------------- 1 | 2 | del *.obj *.exe *.err *.dll *.lib *.exp -------------------------------------------------------------------------------- /HandMake/Data/1.ogg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2663767b01d0d2c0cc6213d4f0cecd2b79ec726aa05d33275b065a6a078eb224 3 | size 3347460 4 | -------------------------------------------------------------------------------- /HandMake/Data/Crate.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:162151fc3d547bf04a4058d1d11938bbfe0975909e8337899721a946cc0d6066 3 | size 66614 4 | -------------------------------------------------------------------------------- /HandMake/Data/Cube.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7bdcea3dc63f4093a92426ce00438fb6695039e0df27e250383b436fc26adc0 3 | size 49220 4 | -------------------------------------------------------------------------------- /HandMake/Data/Glass.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4791f01600012f4e972ea9801f771ec7c910f3760e4f8d7e93db90ebd29c4bb2 3 | size 49220 4 | -------------------------------------------------------------------------------- /HandMake/Data/Gorgosaurus_BW_transparent.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:36b4e662dd68bc0b5b92cb114d01a299d8b94ddb01f6c053b7911d4d8e169dab 3 | size 999654 4 | -------------------------------------------------------------------------------- /HandMake/Data/Gorgosaurus_BW_transparent.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee1bad9460ada0324d3c56cb635b2d4d7033c751245f2a3ec1ff31a67f9ab99b 3 | size 198959 4 | -------------------------------------------------------------------------------- /HandMake/Data/Mud.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a0cd1d10db7e31c2a8c3c521357c3cc35393f5fe28ef1726ad10769a67923cfd 3 | size 196662 4 | -------------------------------------------------------------------------------- /HandMake/Data/NeHe.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:afaa93377e31f33fccae8cc78a5c58dc2e2edc472f2795d1a69420c72e6c7a00 3 | size 196664 4 | -------------------------------------------------------------------------------- /HandMake/Data/SeasonsTiles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8a2343bbefe3d14062dddf7f8aad1cc9ae4f3571400e2951934cb6deface9a39 3 | size 749291 4 | -------------------------------------------------------------------------------- /HandMake/Data/Star.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9e473a11fc90bcafd0d3ae011e999374b130e11f05c4fafa637fecb6c2b686cf 3 | size 17476 4 | -------------------------------------------------------------------------------- /HandMake/Data/Tim.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:688622bce0dbb1b3c8950a8299a3914a6fb15e4df7551669dc7817d1366c462e 3 | size 66616 4 | -------------------------------------------------------------------------------- /HandMake/Data/UbuntuMono-Regular.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b83b9ca3a1186b4bf8fbcbc8078b360bdb78a77a859f8eeabc9b14fb165da9a 3 | size 189892 4 | -------------------------------------------------------------------------------- /HandMake/Data/bg1bg23d_0_0_0.bmp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7304a29d253dd25ffdfbb2f922bfc1211095b65aa40756b9e2de2ddedad1eba 3 | size 4278 4 | -------------------------------------------------------------------------------- /HandMake/Data/sound01.wav: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:89061cb36a22ff51cf5e34327e4bdca69ca353dcd0141ac1a35ec1c44ed8443f 3 | size 361396 4 | -------------------------------------------------------------------------------- /HandMake/Data/trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cdab1abd35cdca2b3fac51dadd7d8023fac65037f26ef34fad5af625afc829af 3 | size 220521 4 | -------------------------------------------------------------------------------- /HandMake/MinGW_All.bat: -------------------------------------------------------------------------------- 1 | 2 | call Build_All MinGW_Build_DLL MinGW_Build_EXE -------------------------------------------------------------------------------- /HandMake/MinGW_Build_EXE.bat: -------------------------------------------------------------------------------- 1 | call "C:\Downloads\codeblocks-12.11mingw-setup\MinGW\mingwvars.bat" 2 | 3 | g++ -o MinGW_%1.exe -O2 -s %2%1.cpp -I..\include\ -L. -lLDL_MinGW -lglu32 -lopengl32 -------------------------------------------------------------------------------- /HandMake/VC6_All.bat: -------------------------------------------------------------------------------- 1 | 2 | call Build_All VC6_Build_DLL VC6_Build_EXE -------------------------------------------------------------------------------- /HandMake/VC6_Build_EXE.bat: -------------------------------------------------------------------------------- 1 | call "C:\VC6\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT" 2 | 3 | cl /O2 -FeVC6_%1.exe -GX /I..\include %2%1.cpp /link LDL_VC6.lib glu32.lib opengl32.lib 4 | 5 | del %1.obj -------------------------------------------------------------------------------- /LDL_Shaders/OpenGL3/LinePainter.fs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | out vec4 FragColor; 4 | uniform vec3 color; 5 | 6 | void main() 7 | { 8 | FragColor = vec4(color, 1.0f); 9 | } -------------------------------------------------------------------------------- /LDL_Shaders/OpenGL3/LinePainter.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | 3 | layout (location = 0) in vec3 aPos; 4 | 5 | uniform mat4 projection; 6 | 7 | void main() 8 | { 9 | gl_Position = projection * vec4(aPos.x, aPos.y, aPos.z, 1.0); 10 | } -------------------------------------------------------------------------------- /LDL_Shaders/OpenGL3/TexturePainter.fs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | out vec4 FragColor; 3 | 4 | in vec3 ourColor; 5 | in vec2 TexCoord; 6 | 7 | // texture sampler 8 | uniform sampler2D texture1; 9 | 10 | void main() 11 | { 12 | FragColor = texture(texture1, TexCoord); 13 | } -------------------------------------------------------------------------------- /LDL_Shaders/OpenGL3/TexturePainter.vs: -------------------------------------------------------------------------------- 1 | #version 330 core 2 | layout (location = 0) in vec3 aPos; 3 | layout (location = 1) in vec3 aColor; 4 | layout (location = 2) in vec2 aTexCoord; 5 | 6 | out vec3 ourColor; 7 | out vec2 TexCoord; 8 | 9 | void main() 10 | { 11 | gl_Position = vec4(aPos, 1.0); 12 | ourColor = aColor; 13 | TexCoord = vec2(aTexCoord.x, aTexCoord.y); 14 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/Config.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | "" 11 | "" 12 | 13 | 14 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/data/art/scenery/ArmorDisplay2.ART: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:38fbc8e30c878af9815069e61d36674da06fadf0c846802827e4cac671e5b77e 3 | size 3344 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/data/art/scenery/engine.ART: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a85408ce28e8e213165b4b3c1c6952938a4123ef90c0354ceca1a7852fd9493e 3 | size 357649 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/data/art/scenery/savanna_tree02.ART: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bc2fd8e24adc0cb848c189729234c875ccba5c65a66504a55dfa1fc437d7e727 3 | size 10897 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/data/art/tile/grsbse0c.ART: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:49e18a63dbc9356e6323ab55c343e4feff1ecc09abeff4b7f41c01b1e2272b09 3 | size 2963 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/data/fonts/Crosterian.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f4ac7d901d388f31c157231cd721608053ede19de60a082946ac041ed072b063 3 | size 156192 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/data/fonts/UbuntuMono-Regular.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b83b9ca3a1186b4bf8fbcbc8078b360bdb78a77a859f8eeabc9b14fb165da9a 3 | size 189892 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | -@echo "Please use ./configure first. Thank you." 3 | 4 | distclean: 5 | make -f Makefile.in distclean 6 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/ada/zlib.gpr: -------------------------------------------------------------------------------- 1 | project Zlib is 2 | 3 | for Languages use ("Ada"); 4 | for Source_Dirs use ("."); 5 | for Object_Dir use "."; 6 | for Main use ("test.adb", "mtest.adb", "read.adb", "buffer_demo"); 7 | 8 | package Compiler is 9 | for Default_Switches ("ada") use ("-gnatwcfilopru", "-gnatVcdfimorst", "-gnatyabcefhiklmnoprst"); 10 | end Compiler; 11 | 12 | package Linker is 13 | for Default_Switches ("ada") use ("-lz"); 14 | end Linker; 15 | 16 | package Builder is 17 | for Default_Switches ("ada") use ("-s", "-gnatQ"); 18 | end Builder; 19 | 20 | end Zlib; 21 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/blast/Makefile: -------------------------------------------------------------------------------- 1 | blast: blast.c blast.h 2 | cc -DTEST -o blast blast.c 3 | 4 | test: blast 5 | blast < test.pk | cmp - test.txt 6 | 7 | clean: 8 | rm -f blast blast.o 9 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/blast/README: -------------------------------------------------------------------------------- 1 | Read blast.h for purpose and usage. 2 | 3 | Mark Adler 4 | madler@alumni.caltech.edu 5 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/blast/test.pk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/blast/test.pk -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/blast/test.txt: -------------------------------------------------------------------------------- 1 | AIAIAIAIAIAIA -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/delphi/ZLibConst.pas: -------------------------------------------------------------------------------- 1 | unit ZLibConst; 2 | 3 | interface 4 | 5 | resourcestring 6 | sTargetBufferTooSmall = 'ZLib error: target buffer may be too small'; 7 | sInvalidStreamOp = 'Invalid stream operation'; 8 | 9 | implementation 10 | 11 | end. 12 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib.chm: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:20d0e3edd57f849143255a7f0df1cd59d41db464a72c0d5ab42846438a729579 3 | size 72726 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/CodecBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/CodecBase.cs -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/Deflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/Deflater.cs -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/DotZLib.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/DotZLib.cs -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/GZipStream.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/GZipStream.cs -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/Inflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/Ports/ArcanumWorld/dependencies/zlib/contrib/dotzlib/DotZLib/Inflater.cs -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/infback9/README: -------------------------------------------------------------------------------- 1 | See infback9.h for what this is and how to use it. 2 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/iostream3/TODO: -------------------------------------------------------------------------------- 1 | Possible upgrades to gzfilebuf: 2 | 3 | - The ability to do putback (e.g. putbackfail) 4 | 5 | - The ability to seek (zlib supports this, but could be slow/tricky) 6 | 7 | - Simultaneous read/write access (does it make sense?) 8 | 9 | - Support for ios_base::ate open mode 10 | 11 | - Locale support? 12 | 13 | - Check public interface to see which calls give problems 14 | (due to dependence on library internals) 15 | 16 | - Override operator<<(ostream&, gzfilebuf*) to allow direct copying 17 | of stream buffer to stream ( i.e. os << is.rdbuf(); ) 18 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/minizip/MiniZip64_Changes.txt: -------------------------------------------------------------------------------- 1 | 2 | MiniZip 1.1 was derived from MiniZip at version 1.01f 3 | 4 | Change in 1.0 (Okt 2009) 5 | - **TODO - Add history** 6 | 7 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/minizip/minizip.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/minizip 5 | 6 | Name: minizip 7 | Description: Minizip zip file manipulation library 8 | Requires: 9 | Version: @PACKAGE_VERSION@ 10 | Libs: -L${libdir} -lminizip 11 | Libs.private: -lz 12 | Cflags: -I${includedir} 13 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/puff/zeros.raw: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7b0887089f7af1f6d1e0b4c0a1e8eddd10223b23554299455c6c9be71b653a3 3 | size 2517 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/testzlib/testzlib.txt: -------------------------------------------------------------------------------- 1 | To build testzLib with Visual Studio 2005: 2 | 3 | copy to a directory file from : 4 | - root of zLib tree 5 | - contrib/testzlib 6 | - contrib/masmx86 7 | - contrib/masmx64 8 | - contrib/vstudio/vc7 9 | 10 | and open testzlib8.sln -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/untgz/Makefile: -------------------------------------------------------------------------------- 1 | CC=cc 2 | CFLAGS=-g 3 | 4 | untgz: untgz.o ../../libz.a 5 | $(CC) $(CFLAGS) -o untgz untgz.o -L../.. -lz 6 | 7 | untgz.o: untgz.c ../../zlib.h 8 | $(CC) $(CFLAGS) -c -I../.. untgz.c 9 | 10 | ../../libz.a: 11 | cd ../..; ./configure; make 12 | 13 | clean: 14 | rm -f untgz untgz.o *~ 15 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/contrib/untgz/Makefile.msc: -------------------------------------------------------------------------------- 1 | CC=cl 2 | CFLAGS=-MD 3 | 4 | untgz.exe: untgz.obj ..\..\zlib.lib 5 | $(CC) $(CFLAGS) untgz.obj ..\..\zlib.lib 6 | 7 | untgz.obj: untgz.c ..\..\zlib.h 8 | $(CC) $(CFLAGS) -c -I..\.. untgz.c 9 | 10 | ..\..\zlib.lib: 11 | cd ..\.. 12 | $(MAKE) -f win32\makefile.msc 13 | cd contrib\untgz 14 | 15 | clean: 16 | -del untgz.obj 17 | -del untgz.exe 18 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/doc/crc-doc.1.0.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:064f9252d6e2e15ea56c2bd18e160e5c9c84bcd137c11a7af497aaa511ace998 3 | size 776142 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast(z_streamp strm, unsigned start); 12 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/nintendods/README: -------------------------------------------------------------------------------- 1 | This Makefile requires devkitARM (http://www.devkitpro.org/category/devkitarm/) and works inside "contrib/nds". It is based on a devkitARM template. 2 | 3 | Eduardo Costa 4 | January 3, 2009 5 | 6 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/old/README: -------------------------------------------------------------------------------- 1 | This directory contains files that have not been updated for zlib 1.2.x 2 | 3 | (Volunteers are encouraged to help clean this up. Thanks.) 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/zlib.3.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8c52e9c071425af09d4b586feb64d72d531d777577dc10e920f95fdc6c06794d 3 | size 19505 4 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/zlib.pc.cmakein: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@INSTALL_LIB_DIR@ 4 | sharedlibdir=@INSTALL_LIB_DIR@ 5 | includedir=@INSTALL_INC_DIR@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/dependencies/zlib/zlib.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | sharedlibdir=@sharedlibdir@ 5 | includedir=@includedir@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Core/PathNormalizer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Core; 4 | 5 | void PathNormalizer::Normalize(char* path) 6 | { 7 | size_t i = 0; 8 | 9 | while (path[i] != '\0') 10 | { 11 | if (path[i] == '\\') 12 | path[i] = '/'; 13 | 14 | i++; 15 | } 16 | } 17 | 18 | void PathNormalizer::Normalize(std::string& path) 19 | { 20 | Normalize((char*)path.c_str()); 21 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Core/PathNormalizer.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Core_PathNormalizer_hpp 2 | #define Arcanum_Core_PathNormalizer_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Core 9 | { 10 | class PathNormalizer 11 | { 12 | public: 13 | void Normalize(char* path); 14 | void Normalize(std::string& path); 15 | private: 16 | }; 17 | } 18 | } 19 | 20 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Core/RuntimeError.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Core; 4 | 5 | RuntimeError::RuntimeError(const std::string& message) : 6 | _runtime_error(message) 7 | { 8 | } 9 | 10 | const char* RuntimeError::what() const 11 | { 12 | return _runtime_error.what(); 13 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Core/RuntimeError.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Core_RuntimeError_hpp 2 | #define Arcanum_Core_RuntimeError_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Core 9 | { 10 | class RuntimeError 11 | { 12 | public: 13 | RuntimeError(const std::string& message); 14 | const char* what() const; 15 | private: 16 | std::runtime_error _runtime_error; 17 | }; 18 | } 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Formats/Msg.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Formats; 4 | 5 | size_t Msg::Number() 6 | { 7 | return _Number; 8 | } 9 | 10 | void Msg::Number(size_t value) 11 | { 12 | _Number = value; 13 | } 14 | 15 | const std::string& Msg::Content() 16 | { 17 | return _Content; 18 | } 19 | 20 | void Msg::Content(const std::string& value) 21 | { 22 | _Content = value; 23 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Formats/Msg.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Formats_Msg_hpp 2 | #define Arcanum_Formats_Msg_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Formats 9 | { 10 | class Msg 11 | { 12 | public: 13 | size_t Number(); 14 | void Number(size_t value); 15 | 16 | const std::string& Content(); 17 | void Content(const std::string& value); 18 | private: 19 | size_t _Number; 20 | std::string _Content; 21 | }; 22 | } 23 | } 24 | 25 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Formats/Sec.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Formats; 4 | 5 | Sec::Sec() : 6 | lights_count(0) 7 | { 8 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Forms/GameMenu.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Math; 4 | using namespace LDL::Graphics; 5 | using namespace Arcanum::Forms; 6 | 7 | GameMenu::GameMenu(Render* render) : 8 | Widgets::Form(render, Vec2u(0, 0), render->Size()), 9 | _Button(render, Vec2u(0, 0), Vec2u(300, 300)) 10 | { 11 | Attach(&_Button); 12 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Forms/GameMenu.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Forms_GameMenu_hpp 2 | #define Arcanum_Forms_GameMenu_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Forms 10 | { 11 | class GameMenu: public Widgets::Form 12 | { 13 | public: 14 | GameMenu(LDL::Graphics::Render* render); 15 | private: 16 | Widgets::Button _Button; 17 | }; 18 | } 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Graphics/Image.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Graphics; 4 | using namespace LDL::Graphics; 5 | using namespace LDL::Math; 6 | 7 | Image::Image(LDL::Graphics::RenderContext* renderContext, const Vec2u& size, uint8_t* pixels, const Vec2u& offset, const Vec2u& delta) : 8 | _Texture(renderContext, size, pixels, 4), 9 | _Offset(offset), 10 | _Delta(delta) 11 | { 12 | } 13 | 14 | Texture* Image::GetTexture() 15 | { 16 | return &_Texture; 17 | } 18 | 19 | const Vec2u& Image::Offset() 20 | { 21 | return _Offset; 22 | } 23 | 24 | const Vec2u& Image::Delta() 25 | { 26 | return _Delta; 27 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Graphics/Sprite.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Graphics; 4 | 5 | Sprite::~Sprite() 6 | { 7 | for (size_t i = 0; i < _Images.size(); i++) 8 | delete _Images[i]; 9 | } 10 | void Sprite::Append(Image* image) 11 | { 12 | _Images.push_back(image); 13 | } 14 | 15 | Image* Sprite::GetImage(size_t index) 16 | { 17 | return _Images[index]; 18 | } 19 | 20 | Image* Sprite::Single() 21 | { 22 | return GetImage(0); 23 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Graphics/Sprite.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Graphics_Sprite_hpp 2 | #define Arcanum_Graphics_Sprite_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Graphics 10 | { 11 | class Sprite 12 | { 13 | public: 14 | ~Sprite(); 15 | void Append(Image* image); 16 | Image* GetImage(size_t index); 17 | Image* Single(); 18 | private: 19 | std::vector _Images; 20 | }; 21 | } 22 | } 23 | 24 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Loaders/SettingsLoader.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Loaders_SettingsLoader_hpp 2 | #define Arcanum_Loaders_SettingsLoader_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Loaders 10 | { 11 | class SettingsLoader 12 | { 13 | public: 14 | SettingsLoader(Readers::XmlReader* xmlReader); 15 | bool Reset(const std::string& path, Game::Settings& settings); 16 | private: 17 | Readers::XmlReader* _XmlReader; 18 | }; 19 | } 20 | } 21 | 22 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Managers/PathManager.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Managers_PathManager_hpp 2 | #define Arcanum_Managers_PathManager_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Managers 9 | { 10 | class PathManager 11 | { 12 | public: 13 | PathManager(const std::string& path); 14 | const std::string& NewShortPath(const std::string& dir, const std::string& file); 15 | const std::string& NewFullPath(const std::string& dir, const std::string& file); 16 | private: 17 | std::string _ShortPath; 18 | std::string _FullPath; 19 | }; 20 | } 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Managers/ScriptManager.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Managers_ScriptManager_hpp 2 | #define Arcanum_Managers_ScriptManager_hpp 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace Arcanum 9 | { 10 | namespace Managers 11 | { 12 | class ScriptManager 13 | { 14 | public: 15 | ~ScriptManager(); 16 | Objects::CritterScript* GetCritterScript(const std::string& path); 17 | private: 18 | std::vector _Scripts; 19 | }; 20 | } 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Critter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Math; 4 | using namespace Arcanum::Objects; 5 | 6 | void Critter::Init(CritterScript* script) 7 | { 8 | _Script = script; 9 | } 10 | 11 | const Vec2u& Critter::Pos() 12 | { 13 | return _MapObject.Pos(); 14 | } 15 | 16 | void Critter::Pos(const Vec2u& pos) 17 | { 18 | _MapObject.Pos(pos); 19 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/CritterScript.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace Arcanum::Objects; 5 | 6 | Critter* CritterScript::Self() 7 | { 8 | return _Critter; 9 | } 10 | 11 | void CritterScript::Init(Critter* critter) 12 | { 13 | _Critter = critter; 14 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/CritterScript.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Objects_CritterScript_hpp 2 | #define Arcanum_Objects_CritterScript_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Objects 10 | { 11 | class Critter; 12 | 13 | class CritterScript : public Script 14 | { 15 | public: 16 | Critter* Self(); 17 | void Init(Critter* critter); 18 | private: 19 | Critter* _Critter; 20 | }; 21 | } 22 | } 23 | 24 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/LocationLimits.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Objects_LocationLimits_hpp 2 | #define Arcanum_Objects_LocationLimits_hpp 3 | 4 | namespace Arcanum 5 | { 6 | namespace Objects 7 | { 8 | class LocationLimits 9 | { 10 | public: 11 | enum 12 | { 13 | Tiles = 100 * 100, 14 | Critters = 1024, 15 | Sceneries = 2048, 16 | Walls = 4096 17 | }; 18 | private: 19 | }; 20 | } 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/MapObject.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Math; 4 | using namespace Arcanum::Objects; 5 | 6 | const Vec2u& MapObject::Pos() 7 | { 8 | return _Pos; 9 | } 10 | 11 | void MapObject::Pos(const Vec2u& pos) 12 | { 13 | _Pos = pos; 14 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/MapObject.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Objects_MapObject_hpp 2 | #define Arcanum_Objects_MapObject_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Objects 9 | { 10 | class MapObject 11 | { 12 | public: 13 | const LDL::Math::Vec2u& Pos(); 14 | void Pos(const LDL::Math::Vec2u& pos); 15 | private: 16 | LDL::Math::Vec2u _Pos; 17 | }; 18 | } 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Scenery.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | using namespace Arcanum::Objects; 6 | using namespace Arcanum::Graphics; 7 | 8 | Scenery::Scenery() : 9 | _Body(nullptr) 10 | { 11 | } 12 | 13 | void Scenery::Init(Sprite* sprite) 14 | { 15 | _Body = sprite; 16 | } 17 | 18 | Sprite* Scenery::Body() 19 | { 20 | return _Body; 21 | } 22 | 23 | const Vec2u& Scenery::Pos() 24 | { 25 | return _MapObject.Pos(); 26 | } 27 | 28 | void Scenery::Pos(const Vec2u& pos) 29 | { 30 | _MapObject.Pos(pos); 31 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Scenery.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Objects_Scenery_hpp 2 | #define Arcanum_Objects_Scenery_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Objects 10 | { 11 | class Scenery 12 | { 13 | public: 14 | Scenery(); 15 | void Init(Graphics::Sprite* sprite); 16 | Graphics::Sprite* Body(); 17 | const LDL::Math::Vec2u& Pos(); 18 | void Pos(const LDL::Math::Vec2u& pos); 19 | private: 20 | MapObject _MapObject; 21 | Graphics::Sprite* _Body; 22 | }; 23 | } 24 | } 25 | 26 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Script.cpp: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Script.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Objects_Script_hpp 2 | #define Arcanum_Objects_Script_hpp 3 | 4 | namespace Arcanum 5 | { 6 | namespace Objects 7 | { 8 | class Script 9 | { 10 | public: 11 | void MapEnter(); 12 | void MapUpdate(); 13 | void MapExit(); 14 | private: 15 | }; 16 | } 17 | } 18 | 19 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Tile.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Math; 4 | using namespace LDL::Graphics; 5 | using namespace Arcanum::Objects; 6 | using namespace Arcanum::Graphics; 7 | 8 | Tile::Tile() : 9 | _Body(nullptr) 10 | { 11 | } 12 | 13 | const Vec2u& Tile::Pos() 14 | { 15 | return _MapObject.Pos(); 16 | } 17 | 18 | void Tile::Pos(const Vec2u& pos) 19 | { 20 | _MapObject.Pos(pos); 21 | } 22 | 23 | void Tile::Init(Sprite* sprite) 24 | { 25 | _Body = sprite; 26 | } 27 | 28 | Sprite* Tile::Body() 29 | { 30 | return _Body; 31 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Wall.cpp: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Objects/Wall.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Objects_Wall_hpp 2 | #define Arcanum_Objects_Wall_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Objects 9 | { 10 | class Wall 11 | { 12 | public: 13 | private: 14 | }; 15 | } 16 | } 17 | 18 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Readers/MesReader.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Readers_MesReader_hpp 2 | #define Arcanum_Readers_MesReader_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Readers 10 | { 11 | class MesReader 12 | { 13 | public: 14 | void Reset(const std::string& path); 15 | void Close(); 16 | char NextChar(); 17 | bool Next(); 18 | const std::string& Result(); 19 | bool Eof(); 20 | private: 21 | std::ifstream _File; 22 | std::string _Result; 23 | size_t _Tabs; 24 | size_t _Line; 25 | }; 26 | } 27 | } 28 | 29 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Savers/LocationSaver.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Savers_LocationSaver_hpp 2 | #define Arcanum_Savers_LocationSaver_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Savers 10 | { 11 | class LocationSaver 12 | { 13 | public: 14 | LocationSaver(Writters::XmlWritter* xmlWritter); 15 | void Save(Objects::LocationData* locationData, const std::string& path); 16 | private: 17 | Writters::XmlWritter* _XmlWritter; 18 | }; 19 | } 20 | } 21 | 22 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Scripts/PlayerScript.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Scripts; 4 | 5 | void PlayerScript::MapEnter() 6 | { 7 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Scripts/PlayerScript.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Scripts_PlayerScript_hpp 2 | #define Arcanum_Scripts_PlayerScript_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Scripts 9 | { 10 | class PlayerScript: public Objects::CritterScript 11 | { 12 | public: 13 | void MapEnter(); 14 | private: 15 | }; 16 | } 17 | } 18 | 19 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Button.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | using namespace Arcanum::Widgets; 6 | 7 | Button::Button(Render* render, const Vec2u& pos, const Vec2u& size) : 8 | Widget(render, pos, size) 9 | { 10 | } 11 | 12 | void Button::Draw() 13 | { 14 | GetRender()->Color(Color(192, 192, 192)); 15 | GetRender()->Fill(Pos(), Size()); 16 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Button.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Widgets_Button_hpp 2 | #define Arcanum_Widgets_Button_hpp 3 | 4 | #include 5 | 6 | namespace Arcanum 7 | { 8 | namespace Widgets 9 | { 10 | class Button : public Widget 11 | { 12 | public: 13 | Button(LDL::Graphics::Render* render, const LDL::Math::Vec2u& pos, const LDL::Math::Vec2u& size); 14 | void Draw(); 15 | private: 16 | }; 17 | } 18 | } 19 | 20 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Container.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace Arcanum::Widgets; 4 | 5 | void Container::Append(Widget* widget) 6 | { 7 | _Widgets.push_back(widget); 8 | } 9 | 10 | void Container::Draw() 11 | { 12 | for (size_t i = 0; i < _Widgets.size(); i++) 13 | { 14 | _Widgets[i]->Draw(); 15 | } 16 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Container.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Widgets_Container_hpp 2 | #define Arcanum_Widgets_Container_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Widgets 10 | { 11 | class Container 12 | { 13 | public: 14 | void Append(Widget* widget); 15 | void Draw(); 16 | private: 17 | std::vector _Widgets; 18 | }; 19 | } 20 | } 21 | 22 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Form.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | using namespace Arcanum::Widgets; 6 | 7 | Form::Form(Render* render, const Vec2u& pos, const Vec2u& size) : 8 | Widget(render, pos, size) 9 | { 10 | } 11 | 12 | void Form::Attach(Widget* widget) 13 | { 14 | _Container.Append(widget); 15 | } 16 | 17 | void Form::Draw() 18 | { 19 | _Container.Draw(); 20 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Form.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Widgets_Form_hpp 2 | #define Arcanum_Widgets_Form_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Widgets 10 | { 11 | class Form : public Widget 12 | { 13 | public: 14 | Form(LDL::Graphics::Render* render, const LDL::Math::Vec2u& pos, const LDL::Math::Vec2u& size); 15 | void Attach(Widget* widget); 16 | void Draw(); 17 | private: 18 | Container _Container; 19 | }; 20 | } 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Widget.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | using namespace Arcanum::Widgets; 6 | 7 | Widget::Widget(Render* render, const Vec2u& pos, const Vec2u& size) : 8 | _Render(render), 9 | _Area(pos, size) 10 | { 11 | } 12 | 13 | Widget::~Widget() 14 | { 15 | } 16 | 17 | const Vec2u Widget::Pos() 18 | { 19 | return _Area.Pos(); 20 | } 21 | 22 | const Vec2u Widget::Size() 23 | { 24 | return _Area.Size(); 25 | } 26 | 27 | Render* Widget::GetRender() 28 | { 29 | return _Render; 30 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Window.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | using namespace Arcanum; 6 | 7 | Widgets::Window::Window(Render* render, const Vec2u& pos, const Vec2u& size) : 8 | Widget(render, pos, size) 9 | { 10 | } 11 | 12 | void Widgets::Window::Attach(Widget* widget) 13 | { 14 | _Container.Append(widget); 15 | } 16 | 17 | void Widgets::Window::Draw() 18 | { 19 | _Container.Draw(); 20 | } -------------------------------------------------------------------------------- /Ports/ArcanumWorld/source/Shared/Arcanum/Widgets/Window.hpp: -------------------------------------------------------------------------------- 1 | #ifndef Arcanum_Widgets_Window_hpp 2 | #define Arcanum_Widgets_Window_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace Arcanum 8 | { 9 | namespace Widgets 10 | { 11 | class Window : public Widget 12 | { 13 | public: 14 | Window(LDL::Graphics::Render* render, const LDL::Math::Vec2u& pos, const LDL::Math::Vec2u& size); 15 | void Attach(Widget* widget); 16 | void Draw(); 17 | private: 18 | Container _Container; 19 | }; 20 | } 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /Ports/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory("ArcanumWorld") -------------------------------------------------------------------------------- /Screenshots/1.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ed3db95ad48159e7973dcbf22c09021ca3b5c7a94caf8de5ece86c65c6967c23 3 | size 30066 4 | -------------------------------------------------------------------------------- /Screenshots/10_TileMap.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7221810a53995dfaa2f4e0327f303a78924682d8a4835db47a5c1ccc5498499 3 | size 90882 4 | -------------------------------------------------------------------------------- /Screenshots/12_TileMap2.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:81bae4452e80c6da7e5ef08478616500093dad7cfd7c96e4668c2344f2fe8d0c 3 | size 265394 4 | -------------------------------------------------------------------------------- /Screenshots/2.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b727f0661e4dd96d9cca6263f890c8b90db9bf3068aa2bf556a500e97b23cd22 3 | size 74179 4 | -------------------------------------------------------------------------------- /Screenshots/3.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:31c770c552f6e02482ea875b25709558bc5f83225ffdfce8e427ccd06376de18 3 | size 143747 4 | -------------------------------------------------------------------------------- /Screenshots/4.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e0b12c480c4d21fb75c641b80edf05023e98a66e20f85d5b0480cb3cdc28170c 3 | size 76235 4 | -------------------------------------------------------------------------------- /Screenshots/5.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:58ef043c7fbe5ac8657251939e0b263e399ade0b9a79da9ba334d3706d1a79e4 3 | size 70497 4 | -------------------------------------------------------------------------------- /TestFiles/359500_600.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1e2b62e1c7370961fb7825eff6aabe2a333e22060ba09f8677aeed8fbebac059 3 | size 61491 4 | -------------------------------------------------------------------------------- /TestFiles/Gorgosaurus_BW_transparent.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee1bad9460ada0324d3c56cb635b2d4d7033c751245f2a3ec1ff31a67f9ab99b 3 | size 198959 4 | -------------------------------------------------------------------------------- /TestFiles/SeasonsTiles.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8a2343bbefe3d14062dddf7f8aad1cc9ae4f3571400e2951934cb6deface9a39 3 | size 749291 4 | -------------------------------------------------------------------------------- /TestFiles/ambient_night_01.ogg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fadef2e8a7c443f8da0920f16b64a555ba6402d5dead0ce9af633a04e26fbe8b 3 | size 486856 4 | -------------------------------------------------------------------------------- /TestFiles/cmunrm.ttf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3deb3c529a46d391eaad2e2b896824013d4e1922419c91ab6cb75c40db97c3f2 3 | size 235656 4 | -------------------------------------------------------------------------------- /TestFiles/trehmachtovyiy-korabl-kartina-maslom-60x50_512x.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cdab1abd35cdca2b3fac51dadd7d8023fac65037f26ef34fad5af625afc829af 3 | size 220521 4 | -------------------------------------------------------------------------------- /Tests_x64.bat: -------------------------------------------------------------------------------- 1 | 2 | call Tests.bat x64-Debug 3 | 4 | pause -------------------------------------------------------------------------------- /Tests_x86.bat: -------------------------------------------------------------------------------- 1 | 2 | call Tests.bat x86-Debug 3 | 4 | pause -------------------------------------------------------------------------------- /dependencies/freetype/.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: Chromium 2 | AlignAfterOpenBracket: Align 3 | AlignConsecutiveAssignments: true 4 | AlignConsecutiveDeclarations: true 5 | AlignConsecutiveMacros: true 6 | AlignEscapedNewlines: true 7 | # AlignOperands: Align 8 | AlignTrailingComments: true 9 | AlwaysBreakAfterReturnType: AllDefinitions 10 | BreakBeforeBraces: Allman 11 | ColumnLimit: 80 12 | DerivePointerAlignment: false 13 | IndentCaseLabels: false 14 | PointerAlignment: Left 15 | SpaceBeforeParens: ControlStatements 16 | SpacesInParentheses: true 17 | -------------------------------------------------------------------------------- /dependencies/freetype/.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /config.mk 3 | include/dlg/ 4 | src/dlg/dlg.c 5 | subprojects/* 6 | !subprojects/*.wrap 7 | /tests/data/* 8 | -------------------------------------------------------------------------------- /dependencies/freetype/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dlg"] 2 | path = subprojects/dlg 3 | url = https://github.com/nyorain/dlg.git 4 | -------------------------------------------------------------------------------- /dependencies/freetype/builds/amiga/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/amiga/README -------------------------------------------------------------------------------- /dependencies/freetype/builds/amiga/include/config/ftconfig.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/amiga/include/config/ftconfig.h -------------------------------------------------------------------------------- /dependencies/freetype/builds/amiga/include/config/ftmodule.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/amiga/include/config/ftmodule.h -------------------------------------------------------------------------------- /dependencies/freetype/builds/amiga/makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/amiga/makefile -------------------------------------------------------------------------------- /dependencies/freetype/builds/amiga/makefile.os4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/amiga/makefile.os4 -------------------------------------------------------------------------------- /dependencies/freetype/builds/amiga/smakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/amiga/smakefile -------------------------------------------------------------------------------- /dependencies/freetype/builds/amiga/src/base/ftsystem.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/amiga/src/base/ftsystem.c -------------------------------------------------------------------------------- /dependencies/freetype/builds/atari/ATARI.H: -------------------------------------------------------------------------------- 1 | #if defined( GXVALID_H_ ) 2 | #pragma warn -aus /* too many unevaluated variables in gxvalid */ 3 | #endif 4 | 5 | #ifndef ATARI_H 6 | #define ATARI_H 7 | 8 | #pragma warn -stu 9 | 10 | /* PureC doesn't like 32bit enumerations */ 11 | 12 | #ifndef FT_IMAGE_TAG 13 | #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value 14 | #endif /* FT_IMAGE_TAG */ 15 | 16 | #ifndef FT_ENC_TAG 17 | #define FT_ENC_TAG( value, a, b, c, d ) value 18 | #endif /* FT_ENC_TAG */ 19 | 20 | #endif /* ATARI_H */ 21 | -------------------------------------------------------------------------------- /dependencies/freetype/builds/atari/README.TXT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JordanCpp/LDL/cb71a099342303e9f59dc0b4bc8ae7d143d6c121/dependencies/freetype/builds/atari/README.TXT -------------------------------------------------------------------------------- /dependencies/freetype/builds/unix/.gitignore: -------------------------------------------------------------------------------- 1 | aclocal.m4 2 | autom4te.cache 3 | config.cache 4 | config.guess 5 | config.log 6 | config.status 7 | config.sub 8 | configure 9 | configure.ac 10 | freetype2.pc 11 | freetype-config 12 | ftconfig.h 13 | ftoption.h 14 | install-sh 15 | libtool 16 | ltmain.sh 17 | unix-cc.mk 18 | unix-def.mk 19 | -------------------------------------------------------------------------------- /dependencies/freetype/builds/unix/configure.raw: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:66dd1a73cb12082182e2c3651a19fdcada66a4c6ce5f9c0420891e9fd624e78f 3 | size 33647 4 | -------------------------------------------------------------------------------- /dependencies/freetype/builds/unix/freetype2.in: -------------------------------------------------------------------------------- 1 | prefix=%prefix% 2 | exec_prefix=%exec_prefix% 3 | libdir=%libdir% 4 | includedir=%includedir% 5 | 6 | Name: FreeType 2 7 | URL: https://freetype.org 8 | Description: A free, high-quality, and portable font engine. 9 | Version: %ft_version% 10 | Requires: %PKGCONFIG_REQUIRES% 11 | Requires.private: %PKGCONFIG_REQUIRES_PRIVATE% 12 | Libs: %PKGCONFIG_LIBS% 13 | Libs.private: %PKGCONFIG_LIBS_PRIVATE% 14 | Cflags: -I${includedir}/freetype2 15 | -------------------------------------------------------------------------------- /dependencies/freetype/builds/vms/apinames_vms.bash: -------------------------------------------------------------------------------- 1 | src/tools/apinames -wV include/freetype/*.h > freetype_vms0.opt 2 | mv freetype_vms0.opt freetype_vms.opt 3 | -------------------------------------------------------------------------------- /dependencies/freetype/builds/windows/.gitignore: -------------------------------------------------------------------------------- 1 | # user-specific cache/settings files 2 | *.opensdf 3 | *.sdf 4 | *.suo 5 | *.user 6 | -------------------------------------------------------------------------------- /dependencies/freetype/docs/.gitignore: -------------------------------------------------------------------------------- 1 | # Static site folder 2 | reference/ 3 | 4 | # HTML and Markdown files 5 | *.html 6 | *.md 7 | 8 | # MkDocs Config file 9 | mkdocs.yml 10 | 11 | # Python virtualenv 12 | env/ 13 | -------------------------------------------------------------------------------- /dependencies/freetype/docs/CMAKE: -------------------------------------------------------------------------------- 1 | Support for a cmake build has been contributed. See the remarks in the 2 | top-level `CMakeLists.txt' file for more. 3 | -------------------------------------------------------------------------------- /dependencies/freetype/docs/MAKEPP: -------------------------------------------------------------------------------- 1 | As a special exception, FreeType can also be built with the 'makepp' 2 | build tool, available from https://makepp.sourceforge.net. 3 | 4 | Note, however, that you will need at least version 2.0 and pass the 5 | option --norc-substitution to have it work correctly. 6 | -------------------------------------------------------------------------------- /dependencies/freetype/docs/markdown/images/favico.ico: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:053dedae91f13fc9cb22f32e338a2aca6f09c509faabb00cafdd5baaf4aba21f 3 | size 5430 4 | -------------------------------------------------------------------------------- /dependencies/freetype/objs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !README 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /dependencies/freetype/objs/README: -------------------------------------------------------------------------------- 1 | This directory contains all the object files created when building the 2 | library. 3 | -------------------------------------------------------------------------------- /dependencies/freetype/src/gzip/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | static void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /dependencies/freetype/src/tools/update-copyright: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Run the `update-copyright-year' script on all files in the git repository, 4 | # taking care of exceptions stored in file `no-copyright'. 5 | 6 | topdir=`git rev-parse --show-toplevel` 7 | toolsdir=`dirname $0` 8 | 9 | git ls-files --full-name $topdir \ 10 | | sed "s|^|$topdir/|" \ 11 | | grep -vFf $toolsdir/no-copyright \ 12 | | xargs $toolsdir/update-copyright-year 13 | 14 | # EOF 15 | -------------------------------------------------------------------------------- /dependencies/freetype/subprojects/harfbuzz.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = harfbuzz-5.2.0 3 | source_url = https://github.com/harfbuzz/harfbuzz/releases/download/5.2.0/harfbuzz-5.2.0.tar.xz 4 | source_filename = harfbuzz-5.2.0.tar.xz 5 | source_hash = 735a94917b47936575acb4d4fa7e7986522f8a89527e4635721474dee2bc942c 6 | wrapdb_version = 5.2.0-1 7 | 8 | [provide] 9 | harfbuzz = libharfbuzz_dep 10 | harfbuzz-icu = libharfbuzz_icu_dep 11 | harfbuzz-subset = libharfbuzz_subset_dep 12 | harfbuzz-gobject = libharfbuzz_gobject_dep 13 | -------------------------------------------------------------------------------- /dependencies/freetype/subprojects/libpng.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = libpng-1.6.39 3 | source_url = https://github.com/glennrp/libpng/archive/v1.6.39.tar.gz 4 | source_filename = libpng-1.6.39.tar.gz 5 | source_hash = a00e9d2f2f664186e4202db9299397f851aea71b36a35e74910b8820e380d441 6 | patch_filename = libpng_1.6.39-2_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/libpng_1.6.39-2/get_patch 8 | patch_hash = 8bcf8f69f50233f3a35e3718ab3c91b0c51b4c1a08a84c87be0b1f4813adf17f 9 | wrapdb_version = 1.6.39-2 10 | 11 | [provide] 12 | libpng = libpng_dep 13 | -------------------------------------------------------------------------------- /dependencies/freetype/subprojects/zlib.wrap: -------------------------------------------------------------------------------- 1 | [wrap-file] 2 | directory = zlib-1.2.13 3 | source_url = http://zlib.net/fossils/zlib-1.2.13.tar.gz 4 | source_filename = zlib-1.2.13.tar.gz 5 | source_hash = b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30 6 | patch_filename = zlib_1.2.13-2_patch.zip 7 | patch_url = https://wrapdb.mesonbuild.com/v2/zlib_1.2.13-2/get_patch 8 | patch_hash = a7abea3ad65dc2c291ad5fbbf5355d0585a7f7b8c935d4a74335b8fe18684506 9 | wrapdb_version = 1.2.13-2 10 | 11 | [provide] 12 | zlib = zlib_dep 13 | -------------------------------------------------------------------------------- /dependencies/freetype/tests/README.md: -------------------------------------------------------------------------------- 1 | # Unit and regression tests for the FreeType library 2 | 3 | ## Quick Start 4 | 5 | ### Download test fonts 6 | 7 | Run the `tests/scripts/download-fonts.py` script, which will 8 | download test fonts to the `tests/data/` directory first. 9 | 10 | ### Build the test programs 11 | 12 | The tests are only built with the Meson build system, and 13 | are disabled by default, enable the 'tests' option to compile 14 | them, as in: 15 | 16 | meson setup out -Dtests=enabled 17 | meson compile -C out 18 | 19 | ### Run the test programs 20 | 21 | meson test -C out 22 | 23 | -------------------------------------------------------------------------------- /dependencies/freetype/tests/meson.build: -------------------------------------------------------------------------------- 1 | test_issue_1063 = executable('issue-1063', 2 | files([ 'issue-1063/main.c' ]), 3 | dependencies: freetype_dep, 4 | ) 5 | 6 | test_env = ['FREETYPE_TESTS_DATA_DIR=' 7 | + join_paths(meson.current_source_dir(), 'data')] 8 | 9 | test('issue-1063', 10 | test_issue_1063, 11 | env: test_env, 12 | suite: 'regression') 13 | 14 | # EOF 15 | -------------------------------------------------------------------------------- /include/LDL/APIs/DirectX/DirectXLoader.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_DirectX_DirectXLoader_hpp 2 | #define LDL_DirectX_DirectXLoader_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace DirectX 10 | { 11 | class LDL_LIBRARY DirectXLoader 12 | { 13 | public: 14 | DirectXLoader(); 15 | DirectX9::LPDIRECT3D9 GetDirect3D(); 16 | private: 17 | Core::Library _Library_d3d9; 18 | }; 19 | } 20 | } 21 | 22 | #endif -------------------------------------------------------------------------------- /include/LDL/APIs/DirectX6/DirectX6Loader.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_APIs_DirectX6_DirectX6Loader_hpp 2 | #define LDL_APIs_DirectX6_DirectX6Loader_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace DirectX6 10 | { 11 | class LDL_LIBRARY DirectX6Loader 12 | { 13 | public: 14 | DirectX6Loader(); 15 | private: 16 | Core::Library _ddraw; 17 | }; 18 | } 19 | } 20 | 21 | #endif -------------------------------------------------------------------------------- /include/LDL/APIs/Glide/GlideLoader.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Glide_GlideLoader_hpp 2 | #define LDL_Glide_GlideLoader_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Glide 10 | { 11 | class LDL_LIBRARY GlideLoader 12 | { 13 | public: 14 | GlideLoader(); 15 | ~GlideLoader(); 16 | private: 17 | Core::Library _Glide; 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /include/LDL/APIs/OpenGL/OpenGLUtilityToolkit.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGLUtilityToolkit_hpp 2 | #define LDL_OpenGL_OpenGLUtilityToolkit_hpp 3 | 4 | #include 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | LDL_LIBRARY void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings); 11 | 12 | #ifdef __cplusplus 13 | } 14 | #endif 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /include/LDL/APIs/OpenGL/OpenGL_Functions.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_OpenGLFunctions_hpp 2 | #define LDL_Graphics_OpenGLFunctions_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class OpenGLFunctionsImpl; 12 | 13 | class LDL_LIBRARY OpenGLFunctions : LDL::Core::FastPimpl 14 | { 15 | public: 16 | OpenGLFunctions(); 17 | LDL::VoidFuncPtr Function(const char* name); 18 | private: 19 | OpenGLFunctionsImpl* _FunctionsImpl; 20 | }; 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/LDL/APIs/OpenGL/OpenGL_Matrix4.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_Matrix4_hpp 2 | #define LDL_OpenGL_Matrix4_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Math 9 | { 10 | typedef Matrix4 MatrixGLDouble; 11 | typedef Matrix4 MatrixGLFloat; 12 | } 13 | } 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /include/LDL/Allocators/Allocator.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Allocators_Allocator_hpp 2 | #define LDL_Allocators_Allocator_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Allocators 9 | { 10 | class Allocator 11 | { 12 | public: 13 | enum 14 | { 15 | Kb = 1024, 16 | Mb = Kb * 1024, 17 | Gb = Mb * 1024 18 | }; 19 | virtual void* Allocate(size_t bytes) = 0; 20 | virtual void Deallocate(void* ptr) = 0; 21 | virtual size_t UsedBytes() = 0; 22 | virtual void Reset() = 0; 23 | private: 24 | }; 25 | } 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /include/LDL/Audio/AudioContext.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Audio_AudioContext_hpp 2 | #define LDL_Audio_AudioContext_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Audio 10 | { 11 | class AudioContextImpl; 12 | 13 | class LDL_LIBRARY AudioContext : public LDL::Core::FastPimpl 14 | { 15 | public: 16 | AudioContext(LDL::Graphics::Window* window, size_t rate, size_t bits, size_t channels); 17 | ~AudioContext(); 18 | AudioContextImpl* GetAudioContextImpl(); 19 | void* Context(); 20 | private: 21 | AudioContextImpl* _impl; 22 | }; 23 | } 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /include/LDL/Audio/Mixer.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Audio_Mixer_hpp 2 | #define LDL_Audio_Mixer_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Audio 10 | { 11 | class MixerImpl; 12 | 13 | class LDL_LIBRARY Mixer : public Core::FastPimpl 14 | { 15 | public: 16 | Mixer(); 17 | ~Mixer(); 18 | MixerImpl* GetMixerImpl(); 19 | void Play(Sound* sound); 20 | void Stop(Sound* sound); 21 | private: 22 | MixerImpl* _impl; 23 | }; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/LDL/Audio/Sound.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Audio_Sound_hpp 2 | #define LDL_Audio_Sound_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Audio 10 | { 11 | class SoundImpl; 12 | 13 | class LDL_LIBRARY Sound : public Core::FastPimpl 14 | { 15 | public: 16 | Sound(AudioContext* audioContext, size_t channels, size_t rate, size_t samples, uint8_t* bytes); 17 | ~Sound(); 18 | SoundImpl* GetSoundImpl(); 19 | private: 20 | SoundImpl* _impl; 21 | }; 22 | } 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/LDL/Contexts/Direct3D10.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Contexts_Direct3D10_hpp 2 | #define LDL_Contexts_Direct3D10_hpp 3 | 4 | namespace LDL 5 | { 6 | namespace Contexts 7 | { 8 | class Direct3D10 9 | { 10 | public: 11 | }; 12 | } 13 | } 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /include/LDL/Contexts/Direct3D9.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Contexts_Direct3D9_hpp 2 | #define LDL_Contexts_Direct3D9_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Contexts 9 | { 10 | class Direct3D9 11 | { 12 | public: 13 | DirectX9::LPDIRECT3D9 Direct; 14 | DirectX9::LPDIRECT3DDEVICE9 Device; 15 | }; 16 | } 17 | } 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /include/LDL/Contexts/DirectDrawContext.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Contexts_DirectDrawContext_hpp 2 | #define LDL_Contexts_DirectDrawContext_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Contexts 9 | { 10 | class DirectDrawContext 11 | { 12 | public: 13 | LPDIRECTDRAW _DirectDraw; 14 | DDSURFACEDESC _SurfaceDesc; 15 | DDSCAPS _SurfaceCaps; 16 | LPDIRECTDRAWSURFACE _Primary; 17 | LPDIRECTDRAWSURFACE _Screen; 18 | LPDIRECTDRAWCLIPPER _DirectDrawClipper; 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/LDL/Core/Assert.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_Assert_hpp 2 | #define LDL_Core_Assert_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Core 10 | { 11 | LDL_LIBRARY void Assert(bool condition, const std::string& description, const std::string& detail, const char* file, size_t line); 12 | } 13 | } 14 | 15 | #define LDL_ASSERT(x) LDL::Core::Assert(x, #x, "", __FILE__, __LINE__) 16 | #define LDL_ASSERT_DETAIL(x, y) LDL::Core::Assert(x, #x, y, __FILE__, __LINE__) 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/LDL/Core/CommandLineParser.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_CommandLineParser_hpp 2 | #define LDL_Core_CommandLineParser_hpp 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace LDL 9 | { 10 | namespace Core 11 | { 12 | class LDL_LIBRARY CommandLineParser 13 | { 14 | public: 15 | CommandLineParser(size_t argc, char* argv[]); 16 | const std::vector& Lines(); 17 | private: 18 | std::vector _lines; 19 | }; 20 | } 21 | } 22 | 23 | #endif -------------------------------------------------------------------------------- /include/LDL/Core/Console.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_Console_hpp 2 | #define LDL_Core_Console_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Core 10 | { 11 | class ConsoleImpl; 12 | 13 | class LDL_LIBRARY Console 14 | { 15 | public: 16 | Console(); 17 | ~Console(); 18 | void Write(const std::string& text); 19 | private: 20 | ConsoleImpl* _impl; 21 | }; 22 | } 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/LDL/Core/FastPimpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_FastPimpl_hpp 2 | #define LDL_Core_FastPimpl_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Core 9 | { 10 | class LDL_LIBRARY FastPimpl 11 | { 12 | public: 13 | void* operator new(size_t bytes); 14 | void operator delete(void* ptr); 15 | private: 16 | }; 17 | } 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /include/LDL/Core/FileInfo.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_FileInfo_hpp 2 | #define LDL_Core_FileInfo_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Core 10 | { 11 | class LDL_LIBRARY FileInfo 12 | { 13 | public: 14 | const std::string& Name(); 15 | void Name(const std::string& source); 16 | private: 17 | std::string _name; 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /include/LDL/Core/Library.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_Library_hpp 2 | #define LDL_Core_Library_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | typedef void(*VoidFuncPtr)(void); 10 | 11 | namespace Core 12 | { 13 | class LibraryImpl; 14 | 15 | class LDL_LIBRARY Library : public FastPimpl 16 | { 17 | public: 18 | Library(const std::string& path); 19 | ~Library(); 20 | VoidFuncPtr Function(const std::string& name); 21 | private: 22 | LibraryImpl* _impl; 23 | }; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/LDL/Core/NumberToString.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_NumberToString_hpp 2 | #define LDL_Core_NumberToString_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Core 9 | { 10 | class LDL_LIBRARY NumberToString 11 | { 12 | public: 13 | NumberToString(); 14 | const char* Convert(intmax_t num, uint8_t base = 10); 15 | private: 16 | void Swap(char& t1, char& t2); 17 | void Reverse(char * str, size_t length); 18 | char _buffer[32]; 19 | int _result; 20 | }; 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/LDL/Core/Terminate.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_Terminate_hpp 2 | #define LDL_Core_Terminate_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Core 9 | { 10 | LDL_LIBRARY void Terminate(); 11 | } 12 | } 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /include/LDL/Core/TestEqual.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Core_TestEqual_hpp 2 | #define LDL_Core_TestEqual_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Core 10 | { 11 | void LDL_LIBRARY TestEqual(bool condition, const std::string& description, const std::string& function, const std::string& file, size_t line); 12 | } 13 | } 14 | 15 | #define LDL_TEST_EQUAL(x) LDL::Core::TestEqual(x, #x, "__FUNCTION__", __FILE__, __LINE__) 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/LDL/Enums/ButtonState.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Enums_ButtonState_hpp 2 | #define LDL_Enums_ButtonState_hpp 3 | 4 | namespace LDL 5 | { 6 | namespace Enums 7 | { 8 | class ButtonState 9 | { 10 | public: 11 | enum 12 | { 13 | Pressed = 1, 14 | Released 15 | }; 16 | }; 17 | } 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /include/LDL/Enums/MouseButton.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Enums_MouseButton_hpp 2 | #define LDL_Enums_MouseButton_hpp 3 | 4 | namespace LDL 5 | { 6 | namespace Enums 7 | { 8 | class MouseButton 9 | { 10 | public: 11 | enum 12 | { 13 | Left = 1, 14 | Right, 15 | Middle 16 | }; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /include/LDL/Enums/MouseScroll.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Enums_MouseScroll_hpp 2 | #define LDL_Enums_MouseScroll_hpp 3 | 4 | namespace LDL 5 | { 6 | namespace Enums 7 | { 8 | class MouseScroll 9 | { 10 | public: 11 | enum 12 | { 13 | Vertical = 1, 14 | Horizontal 15 | }; 16 | }; 17 | } 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /include/LDL/Enums/RenderMode.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Enums_RenderMode_hpp 2 | #define LDL_Enums_RenderMode_hpp 3 | 4 | namespace LDL 5 | { 6 | namespace Enums 7 | { 8 | class RenderMode 9 | { 10 | public: 11 | enum 12 | { 13 | Software = 1, 14 | OpenGL1, 15 | OpenGL3, 16 | DirectDraw, 17 | Glide, 18 | Direct3D6, 19 | Max 20 | }; 21 | }; 22 | } 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/LDL/Enums/WindowMode.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Enums_WindowMode_hpp 2 | #define LDL_Enums_WindowMode_hpp 3 | 4 | namespace LDL 5 | { 6 | namespace Enums 7 | { 8 | class WindowMode 9 | { 10 | public: 11 | enum 12 | { 13 | Resized = 1, 14 | Fixed, 15 | FullScreen 16 | }; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /include/LDL/Events/GainedFocus.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Events_GainedFocus_hpp 2 | #define LDL_Events_GainedFocus_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Events 9 | { 10 | class GainedFocus 11 | { 12 | public: 13 | uint8_t Type; 14 | }; 15 | } 16 | } 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/LDL/Events/Keyboard.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Events_Keyboard_hpp 2 | #define LDL_Events_Keyboard_hpp 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace LDL 9 | { 10 | namespace Events 11 | { 12 | class Keyboard 13 | { 14 | public: 15 | uint8_t Type; 16 | uint8_t State; 17 | uint8_t Key; 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /include/LDL/Events/LostFocus.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Events_LostFocus_hpp 2 | #define LDL_Events_LostFocus_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Events 9 | { 10 | class LostFocus 11 | { 12 | public: 13 | uint8_t Type; 14 | }; 15 | } 16 | } 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/LDL/Events/Mouse.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Events_Mouse_hpp 2 | #define LDL_Events_Mouse_hpp 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | namespace LDL 10 | { 11 | namespace Events 12 | { 13 | class Mouse 14 | { 15 | public: 16 | uint8_t Type; 17 | size_t PosX; 18 | size_t PosY; 19 | uint8_t State; 20 | uint8_t Button; 21 | size_t Scroll; 22 | size_t Delta; 23 | }; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/LDL/Events/Quit.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Events_Quit_hpp 2 | #define LDL_Events_Quit_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Events 9 | { 10 | class Quit 11 | { 12 | public: 13 | uint8_t Type; 14 | }; 15 | } 16 | } 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/LDL/Events/Resize.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Events_Resize_hpp 2 | #define LDL_Events_Resize_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Events 9 | { 10 | class Resize 11 | { 12 | public: 13 | uint8_t Type; 14 | size_t Width; 15 | size_t Height; 16 | }; 17 | } 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /include/LDL/Graphics/ImageResizer.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_ImageResizer_hpp 2 | #define LDL_Graphics_ImageResizer_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class LDL_LIBRARY ImageResizer 12 | { 13 | public: 14 | ImageResizer(const Math::Vec2u& size); 15 | Surface* Resize(const Math::Vec2u& size, Surface* surface); 16 | private: 17 | Surface _surface; 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /include/LDL/Graphics/ImageWritter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_ImageWritter_hpp 2 | #define LDL_Graphics_ImageWritter_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class LDL_LIBRARY ImageWritter 12 | { 13 | public: 14 | void Save(const std::string& path, const Math::Vec2u& size, size_t bytesPerPixel, uint8_t* pixels); 15 | private: 16 | }; 17 | } 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /include/LDL/Graphics/Isometric.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Isometric_hpp 2 | #define LDL_Graphics_Isometric_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class LDL_LIBRARY Isometric 11 | { 12 | public: 13 | const Math::Vec2u& CartesianToIsometric(const Math::Vec2u& pt); 14 | const Math::Vec2u& IsometricToCartesian(const Math::Vec2u& pt); 15 | private: 16 | LDL::Math::Vec2u _result; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /include/LDL/Graphics/Palette.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Palette_hpp 2 | #define LDL_Graphics_Palette_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class LDL_LIBRARY Palette 11 | { 12 | public: 13 | enum 14 | { 15 | Max = 256 16 | }; 17 | Palette(); 18 | Color* Colors(); 19 | size_t Count(); 20 | private: 21 | Color _colors[Max]; 22 | }; 23 | } 24 | } 25 | 26 | #endif -------------------------------------------------------------------------------- /include/LDL/Graphics/PixelConverter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_PixelConverter_hpp 2 | #define LDL_Graphics_PixelConverter_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class LDL_LIBRARY PixelConverter 12 | { 13 | public: 14 | void Fill(uint8_t* pixels, const Math::Vec2u& size, uint8_t bytesPerPixel, const Color& color); 15 | void RgbToBgr(uint8_t* pixels, const Math::Vec2u& size, uint8_t bytesPerPixel); 16 | void BgrToRgb(uint8_t* pixels, const Math::Vec2u& size, uint8_t bytesPerPixel); 17 | private: 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /include/LDL/Graphics/RenderContext.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_RenderContext_hpp 2 | #define LDL_Graphics_RenderContext_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class RenderContextImpl; 12 | 13 | class LDL_LIBRARY RenderContext : public LDL::Core::FastPimpl 14 | { 15 | public: 16 | RenderContext(size_t mode = Enums::RenderMode::OpenGL1); 17 | ~RenderContext(); 18 | RenderContextImpl* GetRenderContextImpl(); 19 | size_t Mode(); 20 | void* Context(); 21 | private: 22 | RenderContextImpl* _impl; 23 | }; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/LDL/Graphics/Screenshoter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Screenshoter_hpp 2 | #define LDL_Graphics_Screenshoter_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class ScreenshoterImpl; 11 | 12 | class Screenshoter : public LDL::Core::FastPimpl 13 | { 14 | public: 15 | Screenshoter(const std::string& path, const std::string& name, Render* render, Surface* image); 16 | ~Screenshoter(); 17 | void Shot(); 18 | private: 19 | ScreenshoterImpl* _impl; 20 | }; 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/LDL/Graphics/VideoMode.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_VideoMode_hpp 2 | #define LDL_Graphics_VideoMode_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class LDL_LIBRARY VideoMode 11 | { 12 | public: 13 | enum 14 | { 15 | Limit = 32 16 | }; 17 | VideoMode(); 18 | VideoMode(const Math::Vec2u& size, size_t bytesPerPixel); 19 | const Math::Vec2u& Size(); 20 | size_t BitsPerPixel(); 21 | private: 22 | LDL::Math::Vec2u _size; 23 | size_t _bitsPerPixel; 24 | }; 25 | } 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /include/LDL/Input/Display.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Input_Display_hpp 2 | #define LDL_Input_Display_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Input 10 | { 11 | class LDL_LIBRARY Display 12 | { 13 | public: 14 | Display(); 15 | const std::vector& Modes(); 16 | const LDL::Graphics::VideoMode& Current(); 17 | private: 18 | LDL::Graphics::VideoMode _videoMode; 19 | std::vector _videoModes; 20 | }; 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/LDL/Input/Mouse.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Input_Mouse_hpp 2 | #define LDL_Input_Mouse_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Input 9 | { 10 | class LDL_LIBRARY Mouse 11 | { 12 | public: 13 | const Math::Vec2u& Pos(); 14 | void Pos(const Math::Vec2u& pos); 15 | void Hide(); 16 | void Show(); 17 | private: 18 | LDL::Math::Vec2u _pos; 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/LDL/Loaders/FontLoader.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Loaders_FontLoader_hpp 2 | #define LDL_Loaders_FontLoader_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Loaders 10 | { 11 | class LDL_LIBRARY FontLoader 12 | { 13 | public: 14 | FontLoader(LDL::Allocators::Allocator* allocator); 15 | ~FontLoader(); 16 | void Clear(); 17 | void Load(const std::string& path); 18 | uint8_t* Font(); 19 | size_t Size(); 20 | private: 21 | LDL::Allocators::Allocator* _allocator; 22 | uint8_t* _buffer; 23 | }; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/LDL/Math/Vec2.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Math_Vec2_hpp 2 | #define LDL_Math_Vec2_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Math 9 | { 10 | template 11 | class Vec2 12 | { 13 | public: 14 | Vec2() 15 | { 16 | x = T(); 17 | y = T(); 18 | } 19 | 20 | Vec2(T v1, T v2) 21 | { 22 | x = v1; 23 | y = v2; 24 | } 25 | 26 | T x; 27 | T y; 28 | }; 29 | 30 | typedef Vec2 Vec2f; 31 | typedef Vec2 Vec2i; 32 | typedef Vec2 Vec2u; 33 | } 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /include/LDL/Text/Font.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Text_Font_hpp 2 | #define LDL_Text_Font_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Text 9 | { 10 | class FontImpl; 11 | 12 | class LDL_LIBRARY Font : public LDL::Core::FastPimpl 13 | { 14 | public: 15 | Font(RasterizerContext* rasterizerContext,size_t fontSize, uint8_t* font, size_t size); 16 | ~Font(); 17 | FontImpl* GetFontImpl(); 18 | private: 19 | FontImpl* _impl; 20 | }; 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/LDL/Text/RasterizerContext.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Text_RasterizerContext_hpp 2 | #define LDL_Text_RasterizerContext_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Text 9 | { 10 | class RasterizerContextImpl; 11 | 12 | class LDL_LIBRARY RasterizerContext : public LDL::Core::FastPimpl 13 | { 14 | public: 15 | RasterizerContext(); 16 | ~RasterizerContext(); 17 | RasterizerContextImpl* GetRasterizerContextImpl(); 18 | private: 19 | RasterizerContextImpl* _impl; 20 | }; 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/LDL/Time/FpsCounter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Time_FpsCounter_hpp 2 | #define LDL_Time_FpsCounter_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Time 9 | { 10 | class LDL_LIBRARY FpsCounter 11 | { 12 | public: 13 | FpsCounter(); 14 | void Start(); 15 | bool Calc(); 16 | size_t Fps(); 17 | void Clear(); 18 | private: 19 | size_t _Current; 20 | size_t _Delta; 21 | size_t _Old; 22 | size_t _Fps; 23 | }; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/LDL/Time/FpsLimiter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Time_FpsLimiter_hpp 2 | #define LDL_Time_FpsLimiter_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Time 9 | { 10 | class LDL_LIBRARY FpsLimiter 11 | { 12 | public: 13 | FpsLimiter(size_t fps = 60); 14 | void Mark(); 15 | void Throttle() const; 16 | private: 17 | size_t _Fps; 18 | size_t _Ticks; 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/LDL/Time/Ticks.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Time_Ticks_hpp 2 | #define LDL_Time_Ticks_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Time 9 | { 10 | LDL_LIBRARY size_t Ticks(); 11 | LDL_LIBRARY void Delay(size_t count); 12 | } 13 | } 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /include/LDLC/LDL.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_h 2 | #define LDL_h 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /include/LDLC/LDL_Allocator.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Allocator_h 2 | #define LDL_Allocator_h 3 | 4 | #define LDL_Allocator_Kb (1024) 5 | #define LDL_Allocator_Mb (LDL_Allocator_Kb * 1024) 6 | #define LDL_Allocator_Gb (LDL_Allocator_Mb * 1024) 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /include/LDLC/LDL_Enums.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Enums_h 2 | #define LDL_Enums_h 3 | 4 | #define LDL_WindowModeResized (1) 5 | #define LDL_WindowModeFixed (2) 6 | #define LDL_WindowModeFullScreen (3) 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /include/LDLC/LDL_Export.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Export_h 2 | #define LDL_Export_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/LDL_FpsLimiter.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_FpsLimiter_h 2 | #define LDL_FpsLimiter_h 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | typedef struct LDL_FpsLimiter LDL_FpsLimiter; 12 | 13 | LDL_LIBRARY LDL_FpsLimiter* LDL_FpsLimiterNew(size_t fps); 14 | LDL_LIBRARY void LDL_FpsLimiterFree(LDL_FpsLimiter* fpsLimiter); 15 | LDL_LIBRARY void LDL_FpsLimiterMark(LDL_FpsLimiter* fpsLimiter); 16 | LDL_LIBRARY void LDL_FpsLimiterThrottle(LDL_FpsLimiter* fpsLimiter); 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /include/LDLC/LDL_Library.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Library_h 2 | #define LDL_Library_h 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | typedef void(*LDL_VoidFuncPtr)(void); 12 | 13 | typedef struct LDL_Library LDL_Library; 14 | 15 | LDL_LIBRARY LDL_Library* LDL_LibraryNew(const char* path); 16 | LDL_LIBRARY void LDL_LibraryFree(LDL_Library* library); 17 | LDL_LIBRARY LDL_VoidFuncPtr LDL_LibraryFunction(LDL_Library* library, const char* path); 18 | 19 | #ifdef __cplusplus 20 | } 21 | #endif 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/LDLC/LDL_NumberToString.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_NumberToString_h 2 | #define LDL_NumberToString_h 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | typedef struct LDL_NumberToString LDL_NumberToString; 12 | 13 | LDL_LIBRARY LDL_NumberToString* LDL_NumberToStringNew(); 14 | LDL_LIBRARY void LDL_NumberToStringFree(LDL_NumberToString* numberToString); 15 | LDL_LIBRARY const char* LDL_NumberToStringConvertInt(LDL_NumberToString* numberToString, intmax_t num); 16 | 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /include/LDLC/LDL_OpenGLLoader.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGLLoader_h 2 | #define LDL_OpenGLLoader_h 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | typedef struct LDL_OpenGLLoader LDL_OpenGLLoader; 12 | 13 | LDL_LIBRARY LDL_OpenGLLoader* LDL_OpenGLLoaderNew(size_t major, size_t minor); 14 | LDL_LIBRARY void LDL_OpenGLLoaderFree(LDL_OpenGLLoader* openGLLoader); 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /include/LDLC/LDL_RenderContext.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_RenderContext_h 2 | #define LDL_RenderContext_h 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | typedef struct LDL_RenderContext LDL_RenderContext; 12 | 13 | LDL_LIBRARY LDL_RenderContext* LDL_RenderContextNew(); 14 | LDL_LIBRARY void LDL_RenderContextFree(LDL_RenderContext* renderContext); 15 | LDL_LIBRARY void LDL_RenderContextGetContext(LDL_RenderContext* renderContext); 16 | 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /include/LDLC/LDL_Texture.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Texture_h 2 | #define LDL_Texture_h 3 | 4 | #include 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | typedef struct LDL_Texture LDL_Texture; 11 | 12 | LDL_LIBRARY LDL_Texture* LDL_TextureNew(LDL_RenderContext* renderContext, size_t w, size_t h, uint8_t* pixels, uint8_t bytesPerPixel); 13 | LDL_LIBRARY void LDL_TextureFree(LDL_Texture* render); 14 | LDL_LIBRARY size_t LDL_TextureGetSizeX(LDL_Texture* render); 15 | LDL_LIBRARY size_t LDL_TextureGetSizeY(LDL_Texture* render); 16 | 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /include/LDLC/LDL_Ticks.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Ticks_h 2 | #define LDL_Ticks_h 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | LDL_LIBRARY size_t LDL_Ticks(); 12 | LDL_LIBRARY void LDL_Delay(size_t count); 13 | 14 | #ifdef __cplusplus 15 | } 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/LDLC/LDL_Types.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Types_h 2 | #define LDL_Types_h 3 | 4 | #include 5 | 6 | #ifdef __cplusplus 7 | #else 8 | #include 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL1_0.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL1_0_h 2 | #define LDL_OpenGL_OpenGL1_0_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL1_1.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL1_1_h 2 | #define LDL_OpenGL_OpenGL1_1_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL1_2.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL1_2_h 2 | #define LDL_OpenGL_OpenGL1_2_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL1_3.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL1_3_h 2 | #define LDL_OpenGL_OpenGL1_3_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL1_4.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL1_4_h 2 | #define LDL_OpenGL_OpenGL1_4_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL1_5.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL1_5_h 2 | #define LDL_OpenGL_OpenGL1_5_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL2_0.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL2_0_h 2 | #define LDL_OpenGL_OpenGL2_0_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL2_1.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL2_1_h 2 | #define LDL_OpenGL_OpenGL2_1_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL3_0.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL3_0_h 2 | #define LDL_OpenGL_OpenGL3_0_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL3_1.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL3_1_h 2 | #define LDL_OpenGL_OpenGL3_1_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL3_2.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL3_2_h 2 | #define LDL_OpenGL_OpenGL3_2_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL3_3.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL3_3_h 2 | #define LDL_OpenGL_OpenGL3_3_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL4_0.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL4_0_h 2 | #define LDL_OpenGL_OpenGL4_0_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL4_1.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL4_1_h 2 | #define LDL_OpenGL_OpenGL4_1_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL4_2.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL4_2_h 2 | #define LDL_OpenGL_OpenGL4_2_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL4_3.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL4_3_h 2 | #define LDL_OpenGL_OpenGL4_3_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL4_4.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL4_4_h 2 | #define LDL_OpenGL_OpenGL4_4_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL4_5.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL4_5_h 2 | #define LDL_OpenGL_OpenGL4_5_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/LDLC/OpenGL/OpenGL4_6.h: -------------------------------------------------------------------------------- 1 | #ifndef LDL_OpenGL_OpenGL4_6_h 2 | #define LDL_OpenGL_OpenGL4_6_h 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /source/Platforms/Linux/Audio/OpenAL/AudioContextImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Linux_Audio_OpenAL_AudioContextImpl_hpp 2 | #define LDL_Platforms_Linux_Audio_OpenAL_AudioContextImpl_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Audio 9 | { 10 | class AudioContextImpl 11 | { 12 | public: 13 | AudioContextImpl(LDL::Graphics::Window* window, size_t rate, size_t bits, size_t channels); 14 | ~AudioContextImpl(); 15 | size_t Rate(); 16 | size_t Bits(); 17 | size_t Channels(); 18 | private: 19 | size_t _Rate; 20 | size_t _Bits; 21 | size_t _Channels; 22 | }; 23 | } 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /source/Platforms/Linux/Audio/OpenAL/MixerImpl.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "MixerImpl.hpp" 3 | #include "SoundImpl.hpp" 4 | 5 | using namespace LDL::Audio; 6 | using namespace LDL::Core; 7 | 8 | MixerImpl::MixerImpl() 9 | { 10 | } 11 | 12 | MixerImpl::~MixerImpl() 13 | { 14 | } 15 | 16 | void MixerImpl::Play(Sound* sound) 17 | { 18 | } 19 | 20 | void MixerImpl::Stop(Sound* sound) 21 | { 22 | } -------------------------------------------------------------------------------- /source/Platforms/Linux/Audio/OpenAL/MixerImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Linux_Audio_OpenAL_MixerImpl_hpp 2 | #define LDL_Platforms_Linux_Audio_OpenAL_MixerImpl_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Audio 9 | { 10 | class MixerImpl 11 | { 12 | public: 13 | MixerImpl(); 14 | ~MixerImpl(); 15 | void Play(Sound* sound); 16 | void Stop(Sound* sound); 17 | private: 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /source/Platforms/Linux/Audio/OpenAL/SoundImpl.cpp: -------------------------------------------------------------------------------- 1 | #include "SoundImpl.hpp" 2 | #include 3 | 4 | using namespace LDL::Audio; 5 | using namespace LDL::Core; 6 | 7 | SoundImpl::SoundImpl(AudioContext* audioContext, size_t channels, size_t rate, size_t samples, uint8_t* bytes) 8 | { 9 | } 10 | 11 | SoundImpl::~SoundImpl() 12 | { 13 | } -------------------------------------------------------------------------------- /source/Platforms/Linux/Audio/OpenAL/SoundImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Linux_Audio_OpenAL_SoundImpl_hpp 2 | #define LDL_Platforms_Linux_Audio_OpenAL_SoundImpl_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Audio 10 | { 11 | class SoundImpl 12 | { 13 | public: 14 | SoundImpl(AudioContext* audioContext, size_t channels, size_t rate, size_t samples, uint8_t* bytes); 15 | ~SoundImpl(); 16 | public: 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Platforms/Linux/Core/LibraryImpl.cpp: -------------------------------------------------------------------------------- 1 | #include "LibraryImpl.hpp" 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace LDL::Core; 7 | 8 | LibraryImpl::LibraryImpl(const std::string& path) 9 | { 10 | _Library = dlopen(path.c_str(), RTLD_NOW | RTLD_GLOBAL); 11 | } 12 | 13 | LibraryImpl::~LibraryImpl() 14 | { 15 | if (_Library != NULL) 16 | dlclose(_Library); 17 | } 18 | 19 | LDL::VoidFuncPtr LibraryImpl::Function(const std::string& name) 20 | { 21 | return (LDL::VoidFuncPtr)dlsym(_Library, name.c_str()); 22 | } -------------------------------------------------------------------------------- /source/Platforms/Linux/Core/LibraryImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Windows_Core_LibraryImpl_hpp 2 | #define LDL_Platforms_Windows_Core_LibraryImpl_hpp 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace LDL 9 | { 10 | namespace Core 11 | { 12 | class LibraryImpl 13 | { 14 | public: 15 | LibraryImpl(const std::string& path); 16 | ~LibraryImpl(); 17 | LDL::VoidFuncPtr Function(const std::string& name); 18 | private: 19 | void* _Library; 20 | }; 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /source/Platforms/Linux/Graphics/OpenGL/FunctionsImpl.cpp: -------------------------------------------------------------------------------- 1 | #include "FunctionsImpl.hpp" 2 | #include 3 | #include "../GLX.hpp" 4 | 5 | using namespace LDL::Core; 6 | using namespace LDL::Graphics; 7 | 8 | OpenGLFunctionsImpl::OpenGLFunctionsImpl(const char* path) : 9 | _Library(path) 10 | { 11 | } 12 | 13 | LDL::VoidFuncPtr OpenGLFunctionsImpl::Function(const char* name) 14 | { 15 | LDL::VoidFuncPtr result = glXGetProcAddress((const GLubyte*)name); 16 | 17 | if (result == NULL) 18 | throw RuntimeError("glXGetProcAddress failes: " + std::string(name)); 19 | 20 | return result; 21 | } -------------------------------------------------------------------------------- /source/Platforms/Linux/Graphics/OpenGL/FunctionsImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Windows_Linux_OpenGL_OpenGLFunctionsImpl_hpp 2 | #define LDL_Platforms_Windows_Linux_OpenGL_OpenGLFunctionsImpl_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class OpenGLFunctionsImpl 11 | { 12 | public: 13 | OpenGLFunctionsImpl(const char* path); 14 | LDL::VoidFuncPtr Function(const char* name); 15 | private: 16 | LDL::Core::Library _Library; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Platforms/Linux/Graphics/Window.cpp: -------------------------------------------------------------------------------- 1 | #include "MainWindow.hpp" -------------------------------------------------------------------------------- /source/Platforms/Linux/Input/Display.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Input; 5 | using namespace LDL::Graphics; 6 | using namespace LDL::Math; 7 | 8 | Display::Display() 9 | { 10 | _VideoModes.reserve(VideoMode::Limit); 11 | } 12 | 13 | const std::vector& Display::Modes() 14 | { 15 | return _VideoModes; 16 | } 17 | 18 | const VideoMode& Display::Current() 19 | { 20 | return _VideoMode; 21 | } -------------------------------------------------------------------------------- /source/Platforms/Linux/Input/Mouse.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Input; 5 | using namespace LDL::Math; 6 | 7 | const Vec2u& Mouse::Pos() 8 | { 9 | return _Pos; 10 | } 11 | 12 | void Mouse::Pos(const Vec2u& pos) 13 | { 14 | } -------------------------------------------------------------------------------- /source/Platforms/Linux/Time/Ticks.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | size_t LDL::Time::Ticks() 6 | { 7 | struct timeval tv; 8 | 9 | gettimeofday(&tv, NULL); 10 | 11 | return (tv.tv_sec * 1000) + (tv.tv_usec / 1000); 12 | } 13 | 14 | void LDL::Time::Delay(size_t count) 15 | { 16 | if (count >= 1000) 17 | sleep(count / 1000); 18 | 19 | usleep((count % 1000) * 1000); 20 | } -------------------------------------------------------------------------------- /source/Platforms/Windows/Audio/DirectSound8/MixerImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Windows_Audio_DirectSound8_MixerImpl_hpp 2 | #define LDL_Platforms_Windows_Audio_DirectSound8_MixerImpl_hpp 3 | 4 | #include 5 | #include "../source/Platforms/Windows/DirectX/DirectSound8.hpp" 6 | 7 | namespace LDL 8 | { 9 | namespace Audio 10 | { 11 | class MixerImpl 12 | { 13 | public: 14 | MixerImpl(); 15 | ~MixerImpl(); 16 | void Play(Sound* sound); 17 | void Stop(Sound* sound); 18 | private: 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/Platforms/Windows/Audio/DirectSound8/SoundImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Windows_Audio_DirectSound8_SoundImpl_hpp 2 | #define LDL_Platforms_Windows_Audio_DirectSound8_SoundImpl_hpp 3 | 4 | #include 5 | #include 6 | #include "../source/Platforms/Windows/DirectX/DirectSound8.hpp" 7 | 8 | namespace LDL 9 | { 10 | namespace Audio 11 | { 12 | class SoundImpl 13 | { 14 | public: 15 | SoundImpl(AudioContext* audioContext, size_t channels, size_t rate, size_t samples, uint8_t* bytes); 16 | ~SoundImpl(); 17 | public: 18 | IDirectSoundBuffer8* _secondaryBuffer; 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/Platforms/Windows/Core/ConsoleImpl.cpp: -------------------------------------------------------------------------------- 1 | #include "ConsoleImpl.hpp" 2 | 3 | using namespace LDL::Core; 4 | 5 | ConsoleImpl::ConsoleImpl() 6 | { 7 | _output = GetStdHandle(STD_OUTPUT_HANDLE); 8 | } 9 | 10 | void ConsoleImpl::Write(const std::string& text) 11 | { 12 | DWORD count = 0; 13 | 14 | WriteConsole(_output, text.c_str(), text.size(), &count, NULL); 15 | } 16 | -------------------------------------------------------------------------------- /source/Platforms/Windows/Core/ConsoleImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Windows_Core_ConsoleImpl_hpp 2 | #define LDL_Platforms_Windows_Core_ConsoleImpl_hpp 3 | 4 | #include "../Windows.hpp" 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Core 10 | { 11 | class ConsoleImpl 12 | { 13 | public: 14 | ConsoleImpl(); 15 | void Write(const std::string& text); 16 | private: 17 | HANDLE _output; 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /source/Platforms/Windows/Core/LibraryImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Windows_Core_LibraryImpl_hpp 2 | #define LDL_Platforms_Windows_Core_LibraryImpl_hpp 3 | 4 | #include 5 | #include 6 | #include "../Windows.hpp" 7 | #include 8 | 9 | namespace LDL 10 | { 11 | namespace Core 12 | { 13 | class LibraryImpl 14 | { 15 | public: 16 | LibraryImpl(const std::string& path); 17 | ~LibraryImpl(); 18 | LDL::VoidFuncPtr Function(const std::string& name); 19 | private: 20 | HMODULE _module; 21 | }; 22 | } 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /source/Platforms/Windows/Core/Terminate.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../Windows.hpp" 3 | 4 | LDL_LIBRARY void LDL::Core::Terminate() 5 | { 6 | ExitProcess(0); 7 | } 8 | -------------------------------------------------------------------------------- /source/Platforms/Windows/DirectX/DirectDraw.cpp: -------------------------------------------------------------------------------- 1 | #include "DirectDraw.hpp" 2 | 3 | PFNDirectDrawCreate DirectDrawCreate = NULL; -------------------------------------------------------------------------------- /source/Platforms/Windows/DirectX/DirectSound8.cpp: -------------------------------------------------------------------------------- 1 | #include "DirectSound8.hpp" 2 | 3 | PFNDirectSoundCreate8 DirectSoundCreate8 = NULL; 4 | 5 | const GUID GUID_NULL = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } }; 6 | -------------------------------------------------------------------------------- /source/Platforms/Windows/Graphics/OpenGLFunctionsImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Platforms_Windows_Graphics_OpenGL_OpenGLFunctionsImpl_hpp 2 | #define LDL_Platforms_Windows_Graphics_OpenGL_OpenGLFunctionsImpl_hpp 3 | 4 | #include "../Windows.hpp" 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class OpenGLFunctionsImpl 12 | { 13 | public: 14 | OpenGLFunctionsImpl(const std::string& path); 15 | LDL::VoidFuncPtr Function(const std::string& name); 16 | private: 17 | bool IsValid(LDL::VoidFuncPtr ptr); 18 | LDL::Core::Library _library; 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/Platforms/Windows/Time/Ticks.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../Windows.hpp" 3 | 4 | size_t LDL::Time::Ticks() 5 | { 6 | return timeGetTime(); 7 | } 8 | 9 | void LDL::Time::Delay(size_t count) 10 | { 11 | Sleep((DWORD)count); 12 | } 13 | -------------------------------------------------------------------------------- /source/Shared/APIs/DirectX/DirectX6.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace LDL 5 | { 6 | namespace DirectX6 7 | { 8 | PFN_DirectDrawCreate DirectDrawCreate = NULL; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /source/Shared/APIs/DirectX/DirectX6Loader.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::DirectX6; 4 | 5 | DirectX6Loader::DirectX6Loader(): 6 | _ddraw("ddraw.dll") 7 | { 8 | DirectDrawCreate = (PFN_DirectDrawCreate)_ddraw.Function("DirectDrawCreate"); 9 | } -------------------------------------------------------------------------------- /source/Shared/APIs/DirectX/DirectX9.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::DirectX9; 4 | 5 | PFNDirect3DCreate9 Direct3DCreate9 = NULL; -------------------------------------------------------------------------------- /source/Shared/APIs/DirectX/DirectXLoader.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::DirectX; 5 | using namespace LDL::DirectX9; 6 | 7 | #define D3D_SDK_VERSION 31 8 | 9 | LDL::DirectX::DirectXLoader::DirectXLoader() : 10 | _Library_d3d9("d3d9.dll") 11 | { 12 | } 13 | 14 | LPDIRECT3D9 DirectXLoader::GetDirect3D() 15 | { 16 | LPDIRECT3D9 result = NULL; 17 | 18 | Direct3DCreate9 = (PFNDirect3DCreate9)_Library_d3d9.Function("Direct3DCreate9"); 19 | 20 | assert(Direct3DCreate9 != NULL); 21 | 22 | result = Direct3DCreate9(D3D_SDK_VERSION); 23 | 24 | assert(result != NULL); 25 | 26 | return result; 27 | } 28 | -------------------------------------------------------------------------------- /source/Shared/APIs/Glide/Glide.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace LDL 4 | { 5 | namespace Glide 6 | { 7 | PFN_grGlideInit grGlideInit = NULL; 8 | PFN_grGlideShutdown grGlideShutdown = NULL; 9 | PFN_grSstSelect grSstSelect = NULL; 10 | PFN_grSstWinOpen grSstWinOpen = NULL; 11 | PFN_grVertexLayout grVertexLayout = NULL; 12 | PFN_grColorCombine grColorCombine = NULL; 13 | PFN_grBufferClear grBufferClear = NULL; 14 | PFN_grBufferSwap grBufferSwap = NULL; 15 | PFN_grDrawLine grDrawLine = NULL; 16 | PFN_grConstantColorValue grConstantColorValue = NULL; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /source/Shared/APIs/LDLC/LDL_Ticks.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Time; 5 | 6 | size_t LDL_Ticks() 7 | { 8 | return Ticks(); 9 | } 10 | 11 | void LDL_Delay(size_t count) 12 | { 13 | Delay(count); 14 | } 15 | -------------------------------------------------------------------------------- /source/Shared/APIs/OpenGL/OpenGL1_2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements = NULL; 4 | PFNGLTEXIMAGE3DPROC glTexImage3D = NULL; 5 | PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D = NULL; 6 | PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D = NULL; 7 | -------------------------------------------------------------------------------- /source/Shared/APIs/OpenGL/OpenGL2_1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv = NULL; 4 | PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv = NULL; 5 | PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv = NULL; 6 | PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv = NULL; 7 | PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv = NULL; 8 | PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv = NULL; 9 | -------------------------------------------------------------------------------- /source/Shared/APIs/OpenGL/OpenGL4_4.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | PFNGLBUFFERSTORAGEPROC glBufferStorage = NULL; 4 | PFNGLCLEARTEXIMAGEPROC glClearTexImage = NULL; 5 | PFNGLCLEARTEXSUBIMAGEPROC glClearTexSubImage = NULL; 6 | PFNGLBINDBUFFERSBASEPROC glBindBuffersBase = NULL; 7 | PFNGLBINDBUFFERSRANGEPROC glBindBuffersRange = NULL; 8 | PFNGLBINDTEXTURESPROC glBindTextures = NULL; 9 | PFNGLBINDSAMPLERSPROC glBindSamplers = NULL; 10 | PFNGLBINDIMAGETEXTURESPROC glBindImageTextures = NULL; 11 | PFNGLBINDVERTEXBUFFERSPROC glBindVertexBuffers = NULL; 12 | -------------------------------------------------------------------------------- /source/Shared/APIs/OpenGL/OpenGL4_6.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | PFNGLSPECIALIZESHADERPROC glSpecializeShader = NULL; 4 | PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glMultiDrawArraysIndirectCount = NULL; 5 | PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glMultiDrawElementsIndirectCount = NULL; 6 | PFNGLPOLYGONOFFSETCLAMPPROC glPolygonOffsetClamp = NULL; 7 | -------------------------------------------------------------------------------- /source/Shared/Audio/Mixer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if defined(_WIN32) 4 | #include "../source/Platforms/Windows/Audio/DirectSound8/MixerImpl.hpp" 5 | #elif defined(__unix__) 6 | #include "../source/Platforms/Linux/Audio/OpenAL/MixerImpl.hpp" 7 | #endif 8 | 9 | using namespace LDL::Audio; 10 | 11 | Mixer::Mixer() : 12 | _impl(new MixerImpl()) 13 | { 14 | } 15 | 16 | Mixer::~Mixer() 17 | { 18 | delete _impl; 19 | } 20 | 21 | MixerImpl* Mixer::GetMixerImpl() 22 | { 23 | return _impl; 24 | } 25 | 26 | void Mixer::Play(Sound* sound) 27 | { 28 | _impl->Play(sound); 29 | } 30 | 31 | void Mixer::Stop(Sound* sound) 32 | { 33 | _impl->Stop(sound); 34 | } 35 | -------------------------------------------------------------------------------- /source/Shared/Audio/Sound.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if defined(_WIN32) 4 | #include "../source/Platforms/Windows/Audio/DirectSound8/SoundImpl.hpp" 5 | #elif defined(__unix__) 6 | #include "../source/Platforms/Linux/Audio/OpenAL/SoundImpl.hpp" 7 | #endif 8 | 9 | using namespace LDL::Audio; 10 | 11 | Sound::Sound(AudioContext* audioContext, size_t channels, size_t rate, size_t samples, uint8_t* bytes) : 12 | _impl(new SoundImpl(audioContext, channels, rate, samples, bytes)) 13 | { 14 | } 15 | 16 | Sound::~Sound() 17 | { 18 | delete _impl; 19 | } 20 | 21 | SoundImpl* Sound::GetSoundImpl() 22 | { 23 | return _impl; 24 | } 25 | -------------------------------------------------------------------------------- /source/Shared/Core/Assert.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace LDL::Core; 7 | 8 | void LDL::Core::Assert(bool condition, const std::string& description, const std::string& detail, const char* file, size_t line) 9 | { 10 | if (!condition) 11 | { 12 | NumberToString conv; 13 | 14 | std::string message = '\n' + "Assert: " + description + ", detail " + detail + ", file " + file + ", line " + conv.Convert(line) + '\n'; 15 | 16 | Console console; 17 | console.Write(message); 18 | 19 | Terminate(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /source/Shared/Core/CommandLineParser.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Core; 4 | 5 | CommandLineParser::CommandLineParser(size_t argc, char* argv[]) 6 | { 7 | for (size_t i = 0; i < argc; i++) 8 | { 9 | _lines.push_back(argv[i]); 10 | } 11 | } 12 | 13 | const std::vector& CommandLineParser::Lines() 14 | { 15 | return _lines; 16 | } 17 | -------------------------------------------------------------------------------- /source/Shared/Core/Console.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if defined(_WIN32) 4 | #include "../source/Platforms/Windows/Core/ConsoleImpl.hpp" 5 | #elif defined(__unix__) 6 | #include "../source/Platforms/Linux/Core/ConsoleImpl.hpp" 7 | #endif 8 | 9 | using namespace LDL::Core; 10 | 11 | Console::Console() : 12 | _impl(new ConsoleImpl()) 13 | { 14 | } 15 | 16 | Console::~Console() 17 | { 18 | delete _impl; 19 | } 20 | 21 | void Console::Write(const std::string& text) 22 | { 23 | _impl->Write(text); 24 | } 25 | -------------------------------------------------------------------------------- /source/Shared/Core/FastPimpl.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Core; 5 | 6 | void* FastPimpl::operator new(size_t bytes) 7 | { 8 | return malloc(bytes); 9 | } 10 | 11 | void FastPimpl::operator delete(void* ptr) 12 | { 13 | free(ptr); 14 | } 15 | -------------------------------------------------------------------------------- /source/Shared/Core/FileInfo.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Core; 4 | 5 | const std::string& FileInfo::Name() 6 | { 7 | return _name; 8 | } 9 | 10 | void FileInfo::Name(const std::string& source) 11 | { 12 | _name = source; 13 | } 14 | -------------------------------------------------------------------------------- /source/Shared/Core/Library.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if defined(_WIN32) 4 | #include "../source/Platforms/Windows/Core/LibraryImpl.hpp" 5 | #elif defined(__unix__) 6 | #include "../source/Platforms/Linux/Core/LibraryImpl.hpp" 7 | #endif 8 | 9 | using namespace LDL::Core; 10 | 11 | Library::Library(const std::string& path) : 12 | _impl(new LDL::Core::LibraryImpl(path)) 13 | { 14 | } 15 | 16 | Library::~Library() 17 | { 18 | _impl->~LibraryImpl(); 19 | } 20 | 21 | LDL::VoidFuncPtr Library::Function(const std::string& name) 22 | { 23 | return (LDL::VoidFuncPtr)_impl->Function(name); 24 | } 25 | -------------------------------------------------------------------------------- /source/Shared/Core/TestEqual.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | void LDL::Core::TestEqual(bool condition, const std::string& description, const std::string& function, const std::string& file, size_t line) 6 | { 7 | if (!condition) 8 | { 9 | NumberToString conv; 10 | 11 | std::string message = '\n' + "Test failed: " + description + ", function " + function + ", file " + file + ", line " + conv.Convert(line) + '\n'; 12 | 13 | Console console; 14 | console.Write(message); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /source/Shared/Events/Eventer.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Events_Eventer_hpp 2 | #define LDL_Events_Eventer_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Events 10 | { 11 | class LDL_LIBRARY Eventer 12 | { 13 | public: 14 | Eventer(); 15 | bool Empty(); 16 | void Push(Event& event); 17 | bool Pop(Event& event); 18 | bool Running(); 19 | void Stop(); 20 | private: 21 | bool _running; 22 | std::queue _queue; 23 | }; 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Base/BaseRender.cpp: -------------------------------------------------------------------------------- 1 | #include "BaseRender.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | 6 | BaseRender::BaseRender(const Vec2u& size) : 7 | _Size(size) 8 | { 9 | } 10 | 11 | const Vec2u& BaseRender::Size() 12 | { 13 | return _Size; 14 | } 15 | 16 | const LDL::Graphics::Color& BaseRender::Color() 17 | { 18 | return _Current; 19 | } 20 | 21 | void BaseRender::Color(const LDL::Graphics::Color& color) 22 | { 23 | _Current = color; 24 | } 25 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Base/BaseRender.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_BaseRender_hpp 2 | #define LDL_Graphics_BaseRender_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class LDL_LIBRARY BaseRender 12 | { 13 | public: 14 | BaseRender(const Math::Vec2u& size); 15 | const Math::Vec2u& Size(); 16 | const LDL::Graphics::Color& Color(); 17 | void Color(const LDL::Graphics::Color& color); 18 | public: 19 | LDL::Math::Vec2u _Size; 20 | LDL::Graphics::Color _Current; 21 | }; 22 | } 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Base/BaseScreenshoter.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_BaseScreenshoter_hpp 2 | #define LDL_Graphics_BaseScreenshoter_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class LDL_LIBRARY BaseScreenshoter 12 | { 13 | public: 14 | const std::string Prefix(); 15 | private: 16 | std::string _Prefix; 17 | LDL::Core::NumberToString _Converter; 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Creators/RenderContextImplCreator.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Creators_RenderContext_hpp 2 | #define LDL_Graphics_Creators_RenderContext_hpp 3 | 4 | #include 5 | #include "../Impls/RenderContextImpl.hpp" 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | namespace Creators 12 | { 13 | class RenderContextImplCreator 14 | { 15 | public: 16 | RenderContextImpl* Create(size_t mode); 17 | private: 18 | }; 19 | } 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Creators/RenderImplCreator.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Creators_RenderImplCreator_hpp 2 | #define LDL_Graphics_Creators_RenderImplCreator_hpp 3 | 4 | #include 5 | #include "../Impls/RenderImpl.hpp" 6 | #include 7 | #include 8 | #include 9 | 10 | namespace LDL 11 | { 12 | namespace Graphics 13 | { 14 | namespace Creators 15 | { 16 | class RenderImplCreator 17 | { 18 | public: 19 | RenderImpl* Create(RenderContext* renderContext, Window* window); 20 | private: 21 | }; 22 | } 23 | } 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Creators/TextureBatcherImplCreator.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Creators_TextureBatcherImplCreator_hpp 2 | #define LDL_Graphics_Creators_TextureBatcherImplCreator_hpp 3 | 4 | #include 5 | #include "../Impls/TextureBatcherImpl.hpp" 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | namespace Creators 12 | { 13 | class TextureBatcherImplCreator 14 | { 15 | public: 16 | TextureBatcherImpl* Create(RenderContext* renderContext, Texture* texture, size_t count); 17 | private: 18 | }; 19 | } 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/Shared/Graphics/ImageWritter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define STB_IMAGE_WRITE_IMPLEMENTATION 4 | #undef __STDC_LIB_EXT1__ 5 | #include "../../../dependencies/stb/stb_image_write.h" 6 | 7 | using namespace LDL::Graphics; 8 | using namespace LDL::Math; 9 | 10 | void ImageWritter::Save(const std::string& path, const Vec2u& size, size_t bytesPerPixel, uint8_t* pixels) 11 | { 12 | stbi_flip_vertically_on_write(true); 13 | 14 | stbi_write_png(path.c_str(), (int)size.x, (int)size.y, (int)bytesPerPixel, pixels, (int)size.x * (int)bytesPerPixel); 15 | } 16 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Impls/CameraImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_CameraImpl_hpp 2 | #define LDL_Graphics_CameraImpl_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class CameraImpl 11 | { 12 | public: 13 | virtual const Math::Vec2u& Pos() = 0; 14 | virtual const Math::Vec2u& Size() = 0; 15 | virtual void Pos(const Math::Vec2u& pos) = 0; 16 | virtual void Size(const Math::Vec2u& size) = 0; 17 | private: 18 | }; 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Impls/RenderContextImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_RenderContextImpl_hpp 2 | #define LDL_Graphics_RenderContextImpl_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class RenderContextImpl 11 | { 12 | public: 13 | virtual ~RenderContextImpl() {}; 14 | virtual size_t Mode() = 0; 15 | private: 16 | }; 17 | } 18 | } 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Impls/ScreenshoterImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_ScreenshoterImpl_hpp 2 | #define LDL_Graphics_ScreenshoterImpl_hpp 3 | 4 | namespace LDL 5 | { 6 | namespace Graphics 7 | { 8 | class ScreenshoterImpl 9 | { 10 | public: 11 | virtual ~ScreenshoterImpl() {}; 12 | virtual void Shot() = 0; 13 | private: 14 | }; 15 | } 16 | } 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Impls/TextureBatcherImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_TextureBatcherImpl_hpp 2 | #define LDL_Graphics_TextureBatcherImpl_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class TextureBatcherImpl 11 | { 12 | public: 13 | virtual ~TextureBatcherImpl() {}; 14 | virtual void Draw(const Math::Vec2u& dstPos, const Math::Vec2u& dstSize, const Math::Vec2u& srcPos, const Math::Vec2u& srcSize) = 0; 15 | virtual void Clear() = 0; 16 | private: 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Isometric.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | 6 | const Vec2u& Isometric::CartesianToIsometric(const Vec2u& pt) 7 | { 8 | size_t x = pt.x - pt.y; 9 | size_t y = (pt.x + pt.y) / 2; 10 | 11 | _result = Vec2u(x, y); 12 | 13 | return _result; 14 | } 15 | 16 | const Vec2u& Isometric::IsometricToCartesian(const Vec2u& pt) 17 | { 18 | size_t x = (2 * pt.y + pt.x) / 2; 19 | size_t y = (2 * pt.y - pt.x) / 2; 20 | 21 | _result = Vec2u(x, y); 22 | 23 | return _result; 24 | } 25 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Palette.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | 5 | Palette::Palette() 6 | { 7 | for (size_t i = 0; i < Count(); i++) 8 | { 9 | _colors[i].r = 0; 10 | _colors[i].g = 0; 11 | _colors[i].b = 0; 12 | _colors[i].a = 0; 13 | } 14 | } 15 | 16 | Color* Palette::Colors() 17 | { 18 | return _colors; 19 | } 20 | 21 | size_t Palette::Count() 22 | { 23 | return Max; 24 | } 25 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Direct3D6/RenderContextImplDirect3D6.cpp: -------------------------------------------------------------------------------- 1 | #include "RenderContextImplDirect3D6.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | 5 | RenderContextImplDirect3D6::RenderContextImplDirect3D6(size_t mode) : 6 | _mode(mode) 7 | { 8 | } 9 | 10 | size_t RenderContextImplDirect3D6::Mode() 11 | { 12 | return _mode; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Direct3D6/RenderContextImplDirect3D6.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Direct3D6_RenderContextImplDirect3D6_hpp 2 | #define LDL_Graphics_Direct3D6_RenderContextImplDirect3D6_hpp 3 | 4 | #include "../../Impls/RenderContextImpl.hpp" 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class RenderContextImplDirect3D6 : public RenderContextImpl 11 | { 12 | public: 13 | RenderContextImplDirect3D6(size_t mode); 14 | size_t Mode(); 15 | private: 16 | size_t _mode; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Direct3D6/TextureBatcherImplDirect3D6.cpp: -------------------------------------------------------------------------------- 1 | #include "TextureBatcherImplDirect3D6.hpp" 2 | #include "TextureImplDirect3D6.hpp" 3 | 4 | using namespace LDL::Graphics; 5 | using namespace LDL::Math; 6 | 7 | TextureBatcherImplDirect3D6::TextureBatcherImplDirect3D6(Texture* texture, size_t count) 8 | { 9 | } 10 | 11 | void TextureBatcherImplDirect3D6::Draw(const Vec2u& dstPos, const Vec2u& dstSize, const Vec2u& srcPos, const Vec2u& srcSize) 12 | { 13 | } 14 | 15 | void TextureBatcherImplDirect3D6::Clear() 16 | { 17 | } 18 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/DirectX.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Render_DirectX_hpp 2 | #define LDL_Graphics_Render_DirectX_hpp 3 | 4 | #include 5 | 6 | inline void ZeroMemory(void* dst, size_t size) 7 | { 8 | memset(dst, 0, size); 9 | } 10 | 11 | #endif -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Glide/RenderContextImplGlide.cpp: -------------------------------------------------------------------------------- 1 | #include "RenderContextImplGlide.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | 5 | RenderContextImplGlide::RenderContextImplGlide(size_t mode) : 6 | _mode(mode) 7 | { 8 | } 9 | 10 | size_t RenderContextImplGlide::Mode() 11 | { 12 | return _mode; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Glide/RenderContextImplGlide.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Renders_Glide_RenderContextImplGlide_hpp 2 | #define LDL_Graphics_Renders_Glide_RenderContextImplGlide_hpp 3 | 4 | #include "../../Impls/RenderContextImpl.hpp" 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class RenderContextImplGlide : public RenderContextImpl 11 | { 12 | public: 13 | RenderContextImplGlide(size_t mode); 14 | size_t Mode(); 15 | private: 16 | size_t _mode; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Glide/ScreenshoterImplGlide.cpp: -------------------------------------------------------------------------------- 1 | #include "ScreenshoterImplGlide.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | 5 | ScreenshoterImplGlide::ScreenshoterImplGlide(const std::string& path, const std::string& name, Render* render, Surface* image) : 6 | _shortPath(path), 7 | _name(name), 8 | _render(render), 9 | _image(image) 10 | { 11 | } 12 | 13 | void ScreenshoterImplGlide::Shot() 14 | { 15 | } 16 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Glide/TextureBatcherImplGlide.cpp: -------------------------------------------------------------------------------- 1 | #include "TextureBatcherImplGlide.hpp" 2 | #include "TextureImplGlide.hpp" 3 | 4 | using namespace LDL::Graphics; 5 | using namespace LDL::Math; 6 | 7 | TextureBatcherImplGlide::TextureBatcherImplGlide(Texture* texture, size_t count) 8 | { 9 | } 10 | 11 | void TextureBatcherImplGlide::Draw(const Vec2u& dstPos, const Vec2u& dstSize, const Vec2u& srcPos, const Vec2u& srcSize) 12 | { 13 | } 14 | 15 | void TextureBatcherImplGlide::Clear() 16 | { 17 | } -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/OpenGL/Functions.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #if defined(_WIN32) 4 | #include "../source/Platforms/Windows/Graphics/OpenGLFunctionsImpl.hpp" 5 | #elif defined(__unix__) 6 | #include "../source/Platforms/Linux/Graphics/OpenGL/FunctionsImpl.hpp" 7 | #endif 8 | 9 | 10 | using namespace LDL::Graphics; 11 | 12 | OpenGLFunctions::OpenGLFunctions() : 13 | _FunctionsImpl(new OpenGLFunctionsImpl("opengl32")) 14 | { 15 | } 16 | 17 | LDL::VoidFuncPtr OpenGLFunctions::Function(const char* name) 18 | { 19 | return _FunctionsImpl->Function(name); 20 | } 21 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/OpenGL1/RenderContextImplOpenGL1.cpp: -------------------------------------------------------------------------------- 1 | #include "RenderContextImplOpenGL1.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | 5 | RenderContextImplOpenGL1::RenderContextImplOpenGL1(size_t mode) : 6 | _mode(mode) 7 | { 8 | } 9 | 10 | size_t RenderContextImplOpenGL1::Mode() 11 | { 12 | return _mode; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/OpenGL1/RenderContextImplOpenGL1.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_OpenGL1_RenderContextImpl_hpp 2 | #define LDL_Graphics_OpenGL1_RenderContextImpl_hpp 3 | 4 | #include "../../Impls/RenderContextImpl.hpp" 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class RenderContextImplOpenGL1: public RenderContextImpl 11 | { 12 | public: 13 | RenderContextImplOpenGL1(size_t mode); 14 | size_t Mode(); 15 | private: 16 | size_t _mode; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/OpenGL3/RenderContextImplOpenGL3.cpp: -------------------------------------------------------------------------------- 1 | #include "RenderContextImplOpenGL3.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | 5 | RenderContextImplOpenGL3::RenderContextImplOpenGL3(size_t mode) : 6 | _mode(mode) 7 | { 8 | } 9 | 10 | size_t RenderContextImplOpenGL3::Mode() 11 | { 12 | return _mode; 13 | } 14 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/OpenGL3/RenderContextImplOpenGL3.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_OpenGL3_RenderContextImpl_hpp 2 | #define LDL_Graphics_OpenGL3_RenderContextImpl_hpp 3 | 4 | #include "../../Impls/RenderContextImpl.hpp" 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class RenderContextImplOpenGL3 : public RenderContextImpl 11 | { 12 | public: 13 | RenderContextImplOpenGL3(size_t mode); 14 | size_t Mode(); 15 | private: 16 | size_t _mode; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/OpenGL3/ShaderLoaderOpenGL3.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_OpenGL3_ShaderLoader_hpp 2 | #define LDL_Graphics_OpenGL3_ShaderLoader_hpp 3 | 4 | #include 5 | #include 6 | 7 | namespace LDL 8 | { 9 | namespace Graphics 10 | { 11 | class ShaderLoader 12 | { 13 | public: 14 | ShaderLoader(); 15 | ~ShaderLoader(); 16 | bool Load(const std::string& path); 17 | const std::string& Result(); 18 | private: 19 | std::fstream _File; 20 | std::string _Result; 21 | std::string _Line; 22 | }; 23 | } 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Software/RenderContextImplSoftware.cpp: -------------------------------------------------------------------------------- 1 | #include "RenderContextImplSoftware.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | 5 | RenderContextImplSoftware::RenderContextImplSoftware(size_t mode) : 6 | _mode(mode) 7 | { 8 | } 9 | 10 | size_t RenderContextImplSoftware::Mode() 11 | { 12 | return _mode; 13 | } 14 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Software/RenderContextImplSoftware.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Software_RenderContextImpl_hpp 2 | #define LDL_Graphics_Software_RenderContextImpl_hpp 3 | 4 | #include "../../Impls/RenderContextImpl.hpp" 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | class RenderContextImplSoftware : public RenderContextImpl 11 | { 12 | public: 13 | RenderContextImplSoftware(size_t mode); 14 | size_t Mode(); 15 | private: 16 | size_t _mode; 17 | }; 18 | } 19 | } 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Renders/Software/TextureBatcherImplSoftware.cpp: -------------------------------------------------------------------------------- 1 | #include "TextureBatcherImplSoftware.hpp" 2 | #include "TextureImplSoftware.hpp" 3 | #include "../OpenGL/Util.hpp" 4 | 5 | using namespace LDL::Graphics; 6 | using namespace LDL::Math; 7 | 8 | TextureBatcherImplSoftware::TextureBatcherImplSoftware(Texture* texture, size_t count) 9 | { 10 | } 11 | 12 | void TextureBatcherImplSoftware::Draw(const Vec2u& dstPos, const Vec2u& dstSize, const Vec2u& srcPos, const Vec2u& srcSize) 13 | { 14 | } 15 | 16 | void TextureBatcherImplSoftware::Clear() 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Screenshoter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Renders/OpenGL1/ScreenshoterImplOpenGL1.hpp" 3 | 4 | using namespace LDL::Graphics; 5 | 6 | Screenshoter::Screenshoter(const std::string& path, const std::string& name, Render* render, Surface* image) 7 | { 8 | _impl = new ScreenshoterImplOpenGL1(path, name, render, image); 9 | } 10 | 11 | Screenshoter::~Screenshoter() 12 | { 13 | delete _impl; 14 | } 15 | 16 | void Screenshoter::Shot() 17 | { 18 | _impl->Shot(); 19 | } 20 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Utils/PotTextureSizer.cpp: -------------------------------------------------------------------------------- 1 | #include "PotTextureSizer.hpp" 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | 6 | const size_t _TextureCount = 13; 7 | const size_t _TextureSizes[_TextureCount] = {16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 }; 8 | 9 | size_t Utils::PotTextureSizer::Calc(const Vec2u& size) 10 | { 11 | size_t w = size.x; 12 | size_t h = size.y; 13 | 14 | for (size_t i = 0; i < _TextureCount; i++) 15 | { 16 | if (w <= _TextureSizes[i] && h <= _TextureSizes[i]) 17 | { 18 | return _TextureSizes[i]; 19 | } 20 | } 21 | 22 | return 0; 23 | } 24 | -------------------------------------------------------------------------------- /source/Shared/Graphics/Utils/PotTextureSizer.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Graphics_Utils_PotTextureSizer_hpp 2 | #define LDL_Graphics_Utils_PotTextureSizer_hpp 3 | 4 | #include 5 | 6 | namespace LDL 7 | { 8 | namespace Graphics 9 | { 10 | namespace Utils 11 | { 12 | class PotTextureSizer 13 | { 14 | public: 15 | size_t Calc(const Math::Vec2u& size); 16 | private: 17 | }; 18 | } 19 | } 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /source/Shared/Graphics/VideoMode.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Graphics; 4 | using namespace LDL::Math; 5 | 6 | VideoMode::VideoMode() : 7 | _bitsPerPixel(0) 8 | { 9 | } 10 | 11 | VideoMode::VideoMode(const Vec2u& size, size_t bytesPerPixel) : 12 | _size(size), 13 | _bitsPerPixel(bytesPerPixel) 14 | { 15 | } 16 | 17 | const Vec2u& VideoMode::Size() 18 | { 19 | return _size; 20 | } 21 | 22 | size_t VideoMode::BitsPerPixel() 23 | { 24 | return _bitsPerPixel; 25 | } 26 | -------------------------------------------------------------------------------- /source/Shared/Text/Font.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "FontImpl.hpp" 3 | 4 | using namespace LDL::Core; 5 | using namespace LDL::Text; 6 | 7 | Font::Font(RasterizerContext* rasterizerContext,size_t fontSize, uint8_t* font, size_t size) : 8 | _impl(new FontImpl(rasterizerContext->GetRasterizerContextImpl(), fontSize, font, size)) 9 | { 10 | } 11 | 12 | Font::~Font() 13 | { 14 | delete _impl; 15 | } 16 | 17 | FontImpl* Font::GetFontImpl() 18 | { 19 | return _impl; 20 | } 21 | -------------------------------------------------------------------------------- /source/Shared/Text/FontImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Text_FontImpl_hpp 2 | #define LDL_Text_FontImpl_hpp 3 | 4 | #include 5 | #include "RasterizerContextImpl.hpp" 6 | 7 | namespace LDL 8 | { 9 | namespace Text 10 | { 11 | class LDL_LIBRARY FontImpl 12 | { 13 | public: 14 | FontImpl(RasterizerContextImpl* rasterizerContextImpl, size_t fontSize, uint8_t* font, size_t size); 15 | ~FontImpl(); 16 | FT_Face GetFace(); 17 | private: 18 | FT_Face _Face; 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/Shared/Text/FreeType.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Text_FreeType_hpp 2 | #define LDL_Text_FreeType_hpp 3 | 4 | #include 5 | #include FT_FREETYPE_H 6 | 7 | #endif -------------------------------------------------------------------------------- /source/Shared/Text/RasterizerContext.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "RasterizerContextImpl.hpp" 3 | 4 | using namespace LDL::Text; 5 | 6 | RasterizerContext::RasterizerContext() : 7 | _impl(new RasterizerContextImpl) 8 | { 9 | } 10 | 11 | RasterizerContext::~RasterizerContext() 12 | { 13 | delete _impl; 14 | } 15 | 16 | RasterizerContextImpl* RasterizerContext::GetRasterizerContextImpl() 17 | { 18 | return _impl; 19 | } 20 | -------------------------------------------------------------------------------- /source/Shared/Text/RasterizerContextImpl.cpp: -------------------------------------------------------------------------------- 1 | #include "RasterizerContextImpl.hpp" 2 | #include 3 | 4 | using namespace LDL::Core; 5 | using namespace LDL::Text; 6 | 7 | RasterizerContextImpl::RasterizerContextImpl() 8 | { 9 | FT_Error error = FT_Init_FreeType(&_Library); 10 | LDL_ASSERT_DETAIL(error == 0, "FT_Init_FreeType failed"); 11 | } 12 | 13 | RasterizerContextImpl::~RasterizerContextImpl() 14 | { 15 | FT_Done_FreeType(_Library); 16 | } 17 | 18 | FT_Library RasterizerContextImpl::GetLibrary() 19 | { 20 | return _Library; 21 | } 22 | -------------------------------------------------------------------------------- /source/Shared/Text/RasterizerContextImpl.hpp: -------------------------------------------------------------------------------- 1 | #ifndef LDL_Text_RasterizerContextImpl_hpp 2 | #define LDL_Text_RasterizerContextImpl_hpp 3 | 4 | #include 5 | #include "FreeType.hpp" 6 | 7 | namespace LDL 8 | { 9 | namespace Text 10 | { 11 | class LDL_LIBRARY RasterizerContextImpl 12 | { 13 | public: 14 | RasterizerContextImpl(); 15 | ~RasterizerContextImpl(); 16 | FT_Library GetLibrary(); 17 | private: 18 | FT_Library _Library; 19 | }; 20 | } 21 | } 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /source/Shared/Time/FpsCounter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace LDL::Time; 4 | 5 | FpsCounter::FpsCounter() : 6 | _Current(0), 7 | _Delta(0), 8 | _Old(0), 9 | _Fps(0) 10 | { 11 | } 12 | 13 | void FpsCounter::Start() 14 | { 15 | _Current = Ticks(); 16 | } 17 | 18 | bool FpsCounter::Calc() 19 | { 20 | _Fps++; 21 | 22 | _Delta = Ticks() - _Current; 23 | 24 | _Old += _Delta; 25 | 26 | if (_Old >= 1000) 27 | { 28 | return true; 29 | } 30 | 31 | return false; 32 | } 33 | 34 | size_t FpsCounter::Fps() 35 | { 36 | return _Fps; 37 | } 38 | 39 | void FpsCounter::Clear() 40 | { 41 | _Fps = 0; 42 | _Old = 0; 43 | } 44 | -------------------------------------------------------------------------------- /source/Shared/Time/FpsLimiter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Time; 5 | 6 | FpsLimiter::FpsLimiter(size_t fps) : 7 | _Fps(fps), 8 | _Ticks(0) 9 | { 10 | } 11 | 12 | void FpsLimiter::Mark() 13 | { 14 | _Ticks = Ticks(); 15 | } 16 | 17 | void FpsLimiter::Throttle() const 18 | { 19 | if (1000 / _Fps > Ticks() - _Ticks) 20 | { 21 | Delay(1000 / _Fps - (Ticks() - _Ticks)); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /test/Allocators/Allocator.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Allocators; 5 | 6 | void CheckSize() 7 | { 8 | LDL_TEST_EQUAL(Allocator::Kb == 1024); 9 | LDL_TEST_EQUAL(Allocator::Mb == 1024 * 1024); 10 | LDL_TEST_EQUAL(Allocator::Gb == 1024 * 1024 * 1024); 11 | } 12 | 13 | int main() 14 | { 15 | CheckSize(); 16 | 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /test/Allocators/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(Allocator "Allocator.cpp") 2 | target_link_libraries(Allocator LDL) 3 | 4 | add_executable(FixedLinear "FixedLinear.cpp") 5 | target_link_libraries(FixedLinear LDL) 6 | 7 | add_executable(ObjectPool "ObjectPool.cpp") 8 | target_link_libraries(ObjectPool LDL) 9 | 10 | add_executable(SmallAllocator "SmallAllocator.cpp") 11 | target_link_libraries(SmallAllocator LDL) -------------------------------------------------------------------------------- /test/Allocators/ObjectPool.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Allocators; 5 | 6 | const size_t Count = 1024; 7 | 8 | void ObjectPoolTest() 9 | { 10 | ObjectPool objectPool; 11 | 12 | size_t* p1 = objectPool.New(); 13 | 14 | LDL_TEST_EQUAL(p1 != NULL); 15 | 16 | objectPool.Delete(p1); 17 | 18 | size_t* p2 = objectPool.New(); 19 | 20 | LDL_TEST_EQUAL(p2 != NULL); 21 | LDL_TEST_EQUAL(p2 == p1); 22 | 23 | objectPool.Delete(p2); 24 | } 25 | 26 | int main() 27 | { 28 | ObjectPoolTest(); 29 | 30 | return 0; 31 | } 32 | -------------------------------------------------------------------------------- /test/Audio/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(Mixer "Mixer.cpp") 2 | target_link_libraries(Mixer LDL) -------------------------------------------------------------------------------- /test/Audio/Mixer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace LDL::Graphics; 6 | using namespace LDL::Audio; 7 | using namespace LDL::Math; 8 | 9 | int main() 10 | { 11 | RenderContext renderContext; 12 | 13 | Window window(&renderContext, Vec2u(1, 2), Vec2u(640, 480), "Mixer.cpp"); 14 | AudioContext audioContext(&window, 44100, 16, 2); 15 | 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory("Graphics") 2 | add_subdirectory("Allocators") 3 | add_subdirectory("Loaders") 4 | add_subdirectory("Core") 5 | add_subdirectory("Input") 6 | add_subdirectory("Containers") 7 | add_subdirectory("Performance") 8 | add_subdirectory("Math") 9 | add_subdirectory("Audio") 10 | add_subdirectory("LDLC") -------------------------------------------------------------------------------- /test/Containers/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(List "List.cpp") 2 | target_link_libraries(List LDL) -------------------------------------------------------------------------------- /test/Core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(NumberToString "NumberToString.cpp") 2 | target_link_libraries(NumberToString LDL) 3 | 4 | add_executable(Directory "Directory.cpp") 5 | target_link_libraries(Directory LDL) -------------------------------------------------------------------------------- /test/Core/NumberToString.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace LDL::Core; 6 | 7 | int main() 8 | { 9 | NumberToString convert; 10 | 11 | LDL_TEST_EQUAL(strcmp(convert.Convert(100500), "100500") == 0); 12 | 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /test/Graphics/Utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(PotTextureSizer "PotTextureSizer.cpp") 2 | target_link_libraries(PotTextureSizer LDL) -------------------------------------------------------------------------------- /test/Input/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(Display "Display.cpp") 2 | target_link_libraries(Display LDL) 3 | 4 | add_executable(Mouse "Mouse.cpp") 5 | target_link_libraries(Mouse LDL) -------------------------------------------------------------------------------- /test/Input/Mouse.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Input; 5 | 6 | void GetPos() 7 | { 8 | Mouse mouse; 9 | 10 | LDL_TEST_EQUAL(mouse.Pos().x > 0); 11 | LDL_TEST_EQUAL(mouse.Pos().y > 0); 12 | } 13 | 14 | int main() 15 | { 16 | GetPos(); 17 | 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /test/LDLC/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(LDL_WindowTest "LDL_WindowTest.cpp") 2 | target_link_libraries(LDL_WindowTest LDL) 3 | 4 | add_executable(LDL_RenderTest "LDL_RenderTest.cpp") 5 | target_link_libraries(LDL_RenderTest LDL) 6 | 7 | add_executable(LDL_EventsTest "LDL_EventsTest.cpp") 8 | target_link_libraries(LDL_EventsTest LDL) -------------------------------------------------------------------------------- /test/Loaders/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(ImageLoader "ImageLoader.cpp") 2 | target_link_libraries(ImageLoader LDL) 3 | 4 | add_executable(FontLoader "FontLoader.cpp") 5 | target_link_libraries(FontLoader LDL) 6 | 7 | add_executable(SoundLoader "SoundLoader.cpp") 8 | target_link_libraries(SoundLoader LDL) -------------------------------------------------------------------------------- /test/Math/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(Vec2 "Vec2.cpp") 2 | target_link_libraries(Vec2 LDL) 3 | 4 | add_executable(Vec3 "Vec3.cpp") 5 | target_link_libraries(Vec3 LDL) 6 | 7 | add_executable(Mat4 "Mat4.cpp") 8 | target_link_libraries(Mat4 LDL) 9 | 10 | add_executable(Funcs "Funcs.cpp") 11 | target_link_libraries(Funcs LDL) -------------------------------------------------------------------------------- /test/Math/Funcs.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | using namespace LDL::Math; 7 | 8 | int main() 9 | { 10 | Mat4f mat1 = Ortho(0.0f, 800.0f, 600.0f, 0.0f, 0.0f, 1.0f); 11 | 12 | Mat4f mat2 = Perspective(45.0f, (float)800 / 600, 0.1f, 100.0f); 13 | 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /test/Math/Mat4.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Math; 5 | 6 | void Default() 7 | { 8 | Mat4f mat; 9 | } 10 | 11 | void Multiply() 12 | { 13 | Mat4f mat1; 14 | Mat4f mat2; 15 | 16 | Mat4f mat3 = mat1 * mat2; 17 | } 18 | 19 | int main() 20 | { 21 | Default(); 22 | Multiply(); 23 | 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /test/Math/Vec2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace LDL::Math; 5 | 6 | void Default() 7 | { 8 | Vec2f vec; 9 | 10 | LDL_TEST_EQUAL(vec.x == 0.0f); 11 | LDL_TEST_EQUAL(vec.y == 0.0f); 12 | } 13 | 14 | void InitValues() 15 | { 16 | Vec2f vec(1.0f, 2.0f); 17 | 18 | LDL_TEST_EQUAL(vec.x == 1.0f); 19 | LDL_TEST_EQUAL(vec.y == 2.0f); 20 | } 21 | 22 | int main() 23 | { 24 | Default(); 25 | InitValues(); 26 | 27 | return 0; 28 | } 29 | -------------------------------------------------------------------------------- /test/Performance/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(PerfPixelPainter "PixelPainter.cpp") 2 | target_link_libraries(PerfPixelPainter LDL) --------------------------------------------------------------------------------