├── .gitignore ├── .gitmodules ├── .vscode ├── c_cpp_properties.json ├── launch.json └── tasks.json ├── AthenaLegacy.code-workspace ├── CMakeLists.txt ├── Engine ├── Lib │ └── SDL2-2.0.8 │ │ ├── BUGS.txt │ │ ├── COPYING.txt │ │ ├── README-SDL.txt │ │ ├── README.txt │ │ ├── WhatsNew.txt │ │ ├── docs │ │ ├── README-android.md │ │ ├── README-cmake.md │ │ ├── README-directfb.md │ │ ├── README-dynapi.md │ │ ├── README-emscripten.md │ │ ├── README-gesture.md │ │ ├── README-hg.md │ │ ├── README-ios.md │ │ ├── README-linux.md │ │ ├── README-macosx.md │ │ ├── README-nacl.md │ │ ├── README-pandora.md │ │ ├── README-platforms.md │ │ ├── README-porting.md │ │ ├── README-psp.md │ │ ├── README-raspberrypi.md │ │ ├── README-touch.md │ │ ├── README-wince.md │ │ ├── README-windows.md │ │ ├── README-winrt.md │ │ ├── README.md │ │ └── doxyfile │ │ ├── include │ │ ├── SDL.h │ │ ├── SDL_assert.h │ │ ├── SDL_atomic.h │ │ ├── SDL_audio.h │ │ ├── SDL_bits.h │ │ ├── SDL_blendmode.h │ │ ├── SDL_clipboard.h │ │ ├── SDL_config.h │ │ ├── SDL_config.h.cmake │ │ ├── SDL_config.h.in │ │ ├── SDL_config_android.h │ │ ├── SDL_config_iphoneos.h │ │ ├── SDL_config_macosx.h │ │ ├── SDL_config_macosx.h.orig │ │ ├── SDL_config_minimal.h │ │ ├── SDL_config_pandora.h │ │ ├── SDL_config_psp.h │ │ ├── SDL_config_windows.h │ │ ├── SDL_config_winrt.h │ │ ├── SDL_config_wiz.h │ │ ├── SDL_copying.h │ │ ├── SDL_cpuinfo.h │ │ ├── SDL_egl.h │ │ ├── SDL_endian.h │ │ ├── SDL_error.h │ │ ├── SDL_events.h │ │ ├── SDL_filesystem.h │ │ ├── SDL_gamecontroller.h │ │ ├── SDL_gesture.h │ │ ├── SDL_haptic.h │ │ ├── SDL_hints.h │ │ ├── SDL_joystick.h │ │ ├── SDL_keyboard.h │ │ ├── SDL_keycode.h │ │ ├── SDL_loadso.h │ │ ├── SDL_log.h │ │ ├── SDL_main.h │ │ ├── SDL_messagebox.h │ │ ├── SDL_mouse.h │ │ ├── SDL_mutex.h │ │ ├── SDL_name.h │ │ ├── SDL_opengl.h │ │ ├── SDL_opengl_glext.h │ │ ├── SDL_opengles.h │ │ ├── SDL_opengles2.h │ │ ├── SDL_opengles2_gl2.h │ │ ├── SDL_opengles2_gl2ext.h │ │ ├── SDL_opengles2_gl2platform.h │ │ ├── SDL_opengles2_khrplatform.h │ │ ├── SDL_pixels.h │ │ ├── SDL_platform.h │ │ ├── SDL_power.h │ │ ├── SDL_quit.h │ │ ├── SDL_rect.h │ │ ├── SDL_render.h │ │ ├── SDL_revision.h │ │ ├── SDL_rwops.h │ │ ├── SDL_scancode.h │ │ ├── SDL_shape.h │ │ ├── SDL_stdinc.h │ │ ├── SDL_surface.h │ │ ├── SDL_system.h │ │ ├── SDL_syswm.h │ │ ├── SDL_test.h │ │ ├── SDL_test_assert.h │ │ ├── SDL_test_common.h │ │ ├── SDL_test_compare.h │ │ ├── SDL_test_crc32.h │ │ ├── SDL_test_font.h │ │ ├── SDL_test_fuzzer.h │ │ ├── SDL_test_harness.h │ │ ├── SDL_test_images.h │ │ ├── SDL_test_log.h │ │ ├── SDL_test_md5.h │ │ ├── SDL_test_memory.h │ │ ├── SDL_test_random.h │ │ ├── SDL_thread.h │ │ ├── SDL_timer.h │ │ ├── SDL_touch.h │ │ ├── SDL_types.h │ │ ├── SDL_version.h │ │ ├── SDL_video.h │ │ ├── SDL_vulkan.h │ │ ├── begin_code.h │ │ └── close_code.h │ │ └── lib │ │ ├── x64 │ │ ├── SDL2.dll │ │ ├── SDL2.lib │ │ ├── SDL2main.lib │ │ └── SDL2test.lib │ │ └── x86 │ │ ├── SDL2.dll │ │ ├── SDL2.lib │ │ ├── SDL2main.lib │ │ └── SDL2test.lib ├── Resources │ └── Shaders │ │ ├── Bloom.hlsl │ │ ├── Particles.hlsl │ │ ├── PostProcessing.hlsl │ │ └── VertColor.hlsl └── Source │ ├── AssetDatabase │ ├── AssetDatabase.cpp │ ├── AssetDatabase.h │ ├── CMakeLists.txt │ ├── Font.cpp │ ├── Font.h │ ├── Image.cpp │ ├── Image.h │ ├── Mesh.cpp │ ├── Mesh.h │ ├── Model.cpp │ ├── Model.h │ ├── Shader.cpp │ ├── Shader.h │ ├── Sound.cpp │ ├── Sound.h │ ├── Text.cpp │ └── Text.h │ ├── CMakeLists.txt │ ├── Core │ ├── AABB.cpp │ ├── AABB.h │ ├── AppWindow.cpp │ ├── AppWindow.h │ ├── Base64.cpp │ ├── Base64.h │ ├── CMakeLists.txt │ ├── Engine.cpp │ ├── Engine.h │ ├── ErrorHandling.cpp │ ├── ErrorHandling.h │ ├── FileStream.cpp │ ├── FileStream.h │ ├── FileSystem.h │ ├── FileSystem_Win32.cpp │ ├── IntersectionTests.cpp │ ├── IntersectionTests.h │ ├── Json.cpp │ ├── Json.h │ ├── LinearAllocator.cpp │ ├── LinearAllocator.h │ ├── Log.cpp │ ├── Log.h │ ├── Maths.cpp │ ├── Maths.h │ ├── Matrix.cpp │ ├── Matrix.h │ ├── Memory.h │ ├── Path.cpp │ ├── Path.h │ ├── PreCompiledHeader.h │ ├── Profiler.cpp │ ├── Profiler.h │ ├── Quat.cpp │ ├── Quat.h │ ├── Scanning.cpp │ ├── Scanning.h │ ├── Scene.cpp │ ├── Scene.h │ ├── SceneQueries.cpp │ ├── SceneQueries.h │ ├── SceneSerializer.cpp │ ├── SceneSerializer.h │ ├── StringHash.h │ ├── TypeSystem.cpp │ ├── TypeSystem.h │ ├── UUID.cpp │ ├── UUID.h │ ├── Variant.cpp │ ├── Variant.h │ ├── Vec2.cpp │ ├── Vec2.h │ ├── Vec3.cpp │ ├── Vec3.h │ ├── Vec4.cpp │ ├── Vec4.h │ └── Vsnprintf.cpp │ ├── Devices │ ├── AudioDevice.cpp │ ├── AudioDevice.h │ ├── CMakeLists.txt │ ├── GraphicsDevice.cpp │ └── GraphicsDevice.h │ ├── EntitySystem │ ├── CMakeLists.txt │ ├── Entity.cpp │ ├── Entity.h │ ├── IComponent.h │ ├── SpatialComponent.cpp │ ├── SpatialComponent.h │ ├── Systems.h │ ├── World.cpp │ └── World.h │ ├── Modules │ ├── CMakeLists.txt │ ├── Editor │ │ ├── CMakeLists.txt │ │ ├── Console.cpp │ │ ├── Console.h │ │ ├── Editor.cpp │ │ ├── Editor.h │ │ ├── EntityInspector.cpp │ │ ├── EntityInspector.h │ │ ├── FrameStats.cpp │ │ ├── FrameStats.h │ │ ├── GameView.cpp │ │ ├── GameView.h │ │ ├── SceneHeirarchy.cpp │ │ ├── SceneHeirarchy.h │ │ ├── SceneView.cpp │ │ └── SceneView.h │ ├── Input │ │ ├── CMakeLists.txt │ │ ├── Input.cpp │ │ └── Input.h │ └── Rendering │ │ ├── CMakeLists.txt │ │ ├── DebugDraw.cpp │ │ ├── DebugDraw.h │ │ ├── FontSystem.cpp │ │ ├── FontSystem.h │ │ ├── GameRenderer.cpp │ │ ├── GameRenderer.h │ │ ├── ParticlesSystem.cpp │ │ ├── ParticlesSystem.h │ │ ├── PostProcessing.cpp │ │ ├── PostProcessing.h │ │ ├── RectPacking.cpp │ │ ├── RectPacking.h │ │ ├── SceneDrawSystem.cpp │ │ ├── SceneDrawSystem.h │ │ ├── SpriteDrawSystem.cpp │ │ └── SpriteDrawSystem.h │ └── ThirdParty │ ├── EABase │ ├── .gitignore │ ├── .gitmodules │ ├── .p4ignore │ ├── .travis.yml │ ├── CMakeLists.txt │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── doc │ │ └── EABase.html │ ├── include │ │ └── Common │ │ │ └── EABase │ │ │ ├── config │ │ │ ├── eacompiler.h │ │ │ ├── eacompilertraits.h │ │ │ └── eaplatform.h │ │ │ ├── eabase.h │ │ │ ├── eahave.h │ │ │ ├── earesult.h │ │ │ ├── eastdarg.h │ │ │ ├── eaunits.h │ │ │ ├── int128.h │ │ │ ├── nullptr.h │ │ │ └── version.h │ └── test │ │ ├── CMakeLists.txt │ │ └── source │ │ ├── CEntryPoint.cpp │ │ ├── TestEABase.cpp │ │ ├── TestEABase.h │ │ ├── TestEABaseC.c │ │ └── TestEABaseSeparate.cpp │ ├── EASTL │ ├── .clang-format │ ├── .gitattributes │ ├── .gitignore │ ├── .gitmodules │ ├── .p4ignore │ ├── .travis.yml │ ├── 3RDPARTYLICENSES.TXT │ ├── CMakeLists.txt │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── README.md │ ├── doc │ │ ├── Benchmarks.md │ │ ├── BestPractices.md │ │ ├── Bonus │ │ │ └── tuple_vector_readme.md │ │ ├── CMake │ │ │ └── EASTL_Project_Integration.md │ │ ├── Design.md │ │ ├── EASTL.natvis │ │ ├── FAQ.md │ │ ├── Glossary.md │ │ ├── Gotchas.md │ │ ├── Introduction.md │ │ ├── Maintenance.md │ │ ├── Modules.md │ │ ├── html │ │ │ ├── EASTL Benchmarks.html │ │ │ ├── EASTL Best Practices.html │ │ │ ├── EASTL Design.html │ │ │ ├── EASTL FAQ.html │ │ │ ├── EASTL Glossary.html │ │ │ ├── EASTL Gotchas.html │ │ │ ├── EASTL Introduction.html │ │ │ ├── EASTL Maintenance.html │ │ │ ├── EASTL Modules.html │ │ │ └── EASTLDoc.css │ │ └── quick-reference.pdf │ ├── include │ │ └── EASTL │ │ │ ├── algorithm.h │ │ │ ├── allocator.h │ │ │ ├── allocator_malloc.h │ │ │ ├── any.h │ │ │ ├── array.h │ │ │ ├── bitset.h │ │ │ ├── bitvector.h │ │ │ ├── bonus │ │ │ ├── adaptors.h │ │ │ ├── call_traits.h │ │ │ ├── compressed_pair.h │ │ │ ├── fixed_ring_buffer.h │ │ │ ├── fixed_tuple_vector.h │ │ │ ├── intrusive_sdlist.h │ │ │ ├── intrusive_slist.h │ │ │ ├── list_map.h │ │ │ ├── lru_cache.h │ │ │ ├── ring_buffer.h │ │ │ ├── sort_extra.h │ │ │ ├── sparse_matrix.h │ │ │ └── tuple_vector.h │ │ │ ├── chrono.h │ │ │ ├── core_allocator.h │ │ │ ├── core_allocator_adapter.h │ │ │ ├── deque.h │ │ │ ├── finally.h │ │ │ ├── fixed_allocator.h │ │ │ ├── fixed_function.h │ │ │ ├── fixed_hash_map.h │ │ │ ├── fixed_hash_set.h │ │ │ ├── fixed_list.h │ │ │ ├── fixed_map.h │ │ │ ├── fixed_set.h │ │ │ ├── fixed_slist.h │ │ │ ├── fixed_string.h │ │ │ ├── fixed_substring.h │ │ │ ├── fixed_vector.h │ │ │ ├── functional.h │ │ │ ├── hash_map.h │ │ │ ├── hash_set.h │ │ │ ├── heap.h │ │ │ ├── initializer_list.h │ │ │ ├── internal │ │ │ ├── allocator_traits.h │ │ │ ├── allocator_traits_fwd_decls.h │ │ │ ├── char_traits.h │ │ │ ├── config.h │ │ │ ├── copy_help.h │ │ │ ├── enable_shared.h │ │ │ ├── fill_help.h │ │ │ ├── fixed_pool.h │ │ │ ├── function.h │ │ │ ├── function_detail.h │ │ │ ├── function_help.h │ │ │ ├── functional_base.h │ │ │ ├── generic_iterator.h │ │ │ ├── hashtable.h │ │ │ ├── in_place_t.h │ │ │ ├── integer_sequence.h │ │ │ ├── intrusive_hashtable.h │ │ │ ├── mem_fn.h │ │ │ ├── memory_base.h │ │ │ ├── move_help.h │ │ │ ├── pair_fwd_decls.h │ │ │ ├── piecewise_construct_t.h │ │ │ ├── red_black_tree.h │ │ │ ├── smart_ptr.h │ │ │ ├── thread_support.h │ │ │ ├── tuple_fwd_decls.h │ │ │ ├── type_compound.h │ │ │ ├── type_fundamental.h │ │ │ ├── type_pod.h │ │ │ ├── type_properties.h │ │ │ └── type_transformations.h │ │ │ ├── intrusive_hash_map.h │ │ │ ├── intrusive_hash_set.h │ │ │ ├── intrusive_list.h │ │ │ ├── intrusive_ptr.h │ │ │ ├── iterator.h │ │ │ ├── linked_array.h │ │ │ ├── linked_ptr.h │ │ │ ├── list.h │ │ │ ├── map.h │ │ │ ├── memory.h │ │ │ ├── meta.h │ │ │ ├── numeric.h │ │ │ ├── numeric_limits.h │ │ │ ├── optional.h │ │ │ ├── priority_queue.h │ │ │ ├── queue.h │ │ │ ├── random.h │ │ │ ├── ratio.h │ │ │ ├── safe_ptr.h │ │ │ ├── scoped_array.h │ │ │ ├── scoped_ptr.h │ │ │ ├── segmented_vector.h │ │ │ ├── set.h │ │ │ ├── shared_array.h │ │ │ ├── shared_ptr.h │ │ │ ├── slist.h │ │ │ ├── sort.h │ │ │ ├── span.h │ │ │ ├── stack.h │ │ │ ├── string.h │ │ │ ├── string_hash_map.h │ │ │ ├── string_map.h │ │ │ ├── string_view.h │ │ │ ├── tuple.h │ │ │ ├── type_traits.h │ │ │ ├── unique_ptr.h │ │ │ ├── unordered_map.h │ │ │ ├── unordered_set.h │ │ │ ├── utility.h │ │ │ ├── variant.h │ │ │ ├── vector.h │ │ │ ├── vector_map.h │ │ │ ├── vector_multimap.h │ │ │ ├── vector_multiset.h │ │ │ ├── vector_set.h │ │ │ ├── version.h │ │ │ └── weak_ptr.h │ ├── scripts │ │ ├── CMake │ │ │ └── CommonCppFlags.cmake │ │ └── build.sh │ ├── source │ │ ├── allocator_eastl.cpp │ │ ├── assert.cpp │ │ ├── fixed_pool.cpp │ │ ├── hashtable.cpp │ │ ├── intrusive_list.cpp │ │ ├── numeric_limits.cpp │ │ ├── red_black_tree.cpp │ │ ├── string.cpp │ │ └── thread_support.cpp │ └── test │ │ ├── CMakeLists.txt │ │ └── source │ │ ├── ConceptImpls.h │ │ ├── EASTLTest.cpp │ │ ├── EASTLTest.h │ │ ├── EASTLTestAllocator.cpp │ │ ├── EASTLTestAllocator.h │ │ ├── GetTypeName.h │ │ ├── TestAlgorithm.cpp │ │ ├── TestAllocator.cpp │ │ ├── TestAny.cpp │ │ ├── TestArray.cpp │ │ ├── TestBitVector.cpp │ │ ├── TestBitset.cpp │ │ ├── TestCharTraits.cpp │ │ ├── TestChrono.cpp │ │ ├── TestCppCXTypeTraits.cpp │ │ ├── TestDeque.cpp │ │ ├── TestExtra.cpp │ │ ├── TestFinally.cpp │ │ ├── TestFixedFunction.cpp │ │ ├── TestFixedHash.cpp │ │ ├── TestFixedList.cpp │ │ ├── TestFixedMap.cpp │ │ ├── TestFixedSList.cpp │ │ ├── TestFixedSet.cpp │ │ ├── TestFixedString.cpp │ │ ├── TestFixedTupleVector.cpp │ │ ├── TestFixedVector.cpp │ │ ├── TestFunctional.cpp │ │ ├── TestHash.cpp │ │ ├── TestHeap.cpp │ │ ├── TestIntrusiveHash.cpp │ │ ├── TestIntrusiveList.cpp │ │ ├── TestIntrusiveSDList.cpp │ │ ├── TestIntrusiveSList.cpp │ │ ├── TestIterator.cpp │ │ ├── TestList.cpp │ │ ├── TestListMap.cpp │ │ ├── TestLruCache.cpp │ │ ├── TestMap.cpp │ │ ├── TestMap.h │ │ ├── TestMemory.cpp │ │ ├── TestMeta.cpp │ │ ├── TestNumericLimits.cpp │ │ ├── TestOptional.cpp │ │ ├── TestRandom.cpp │ │ ├── TestRatio.cpp │ │ ├── TestRingBuffer.cpp │ │ ├── TestSList.cpp │ │ ├── TestSegmentedVector.cpp │ │ ├── TestSet.cpp │ │ ├── TestSet.h │ │ ├── TestSmartPtr.cpp │ │ ├── TestSort.cpp │ │ ├── TestSpan.cpp │ │ ├── TestSparseMatrix.cpp │ │ ├── TestString.cpp │ │ ├── TestString.inl │ │ ├── TestStringHashMap.cpp │ │ ├── TestStringMap.cpp │ │ ├── TestStringView.cpp │ │ ├── TestStringView.inl │ │ ├── TestTuple.cpp │ │ ├── TestTupleVector.cpp │ │ ├── TestTypeTraits.cpp │ │ ├── TestUtility.cpp │ │ ├── TestVariant.cpp │ │ ├── TestVector.cpp │ │ ├── TestVectorMap.cpp │ │ ├── TestVectorSet.cpp │ │ └── main.cpp │ ├── FreeType │ ├── CMakeLists.txt │ ├── FTL.TXT │ ├── GPLv2.TXT │ ├── LICENSE.TXT │ ├── include │ │ ├── freetype │ │ │ ├── config │ │ │ │ ├── ftconfig.h │ │ │ │ ├── ftheader.h │ │ │ │ ├── ftmodule.h │ │ │ │ ├── ftoption.h │ │ │ │ └── ftstdlib.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 │ │ │ ├── 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 │ │ │ │ ├── ftcalc.h │ │ │ │ ├── ftdebug.h │ │ │ │ ├── ftdrv.h │ │ │ │ ├── ftgloadr.h │ │ │ │ ├── fthash.h │ │ │ │ ├── ftmemory.h │ │ │ │ ├── ftobjs.h │ │ │ │ ├── ftpsprop.h │ │ │ │ ├── ftrfork.h │ │ │ │ ├── ftserv.h │ │ │ │ ├── ftstream.h │ │ │ │ ├── fttrace.h │ │ │ │ ├── ftvalid.h │ │ │ │ ├── internal.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 │ │ │ │ ├── t1types.h │ │ │ │ ├── tttypes.h │ │ │ │ └── wofftypes.h │ │ │ ├── t1tables.h │ │ │ ├── ttnameid.h │ │ │ ├── tttables.h │ │ │ └── tttags.h │ │ └── ft2build.h │ └── src │ │ ├── autofit │ │ ├── afangles.c │ │ ├── afangles.h │ │ ├── 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 │ │ ├── aflatin2.c │ │ ├── aflatin2.h │ │ ├── afloader.c │ │ ├── afloader.h │ │ ├── afmodule.c │ │ ├── afmodule.h │ │ ├── afranges.c │ │ ├── afranges.h │ │ ├── afscript.h │ │ ├── afshaper.c │ │ ├── afshaper.h │ │ ├── afstyles.h │ │ ├── aftypes.h │ │ ├── afwarp.c │ │ ├── afwarp.h │ │ ├── afwrtsys.h │ │ ├── autofit.c │ │ ├── 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 │ │ ├── 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 │ │ ├── adler32.c │ │ ├── ftgzip.c │ │ ├── ftzconf.h │ │ ├── infblock.c │ │ ├── infblock.h │ │ ├── infcodes.c │ │ ├── infcodes.h │ │ ├── inffixed.h │ │ ├── inflate.c │ │ ├── inftrees.c │ │ ├── inftrees.h │ │ ├── infutil.c │ │ ├── infutil.h │ │ ├── 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 │ │ ├── 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 │ │ ├── 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 │ │ ├── smooth │ │ ├── ftgrays.c │ │ ├── ftgrays.h │ │ ├── ftsmerrs.h │ │ ├── ftsmooth.c │ │ ├── ftsmooth.h │ │ ├── module.mk │ │ ├── rules.mk │ │ └── smooth.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 │ ├── Imgui │ ├── .github │ │ ├── FUNDING.yml │ │ ├── issue_template.md │ │ ├── pull_request_template.md │ │ └── workflows │ │ │ ├── build.yml │ │ │ └── static-analysis.yml │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── docs │ │ ├── CHANGELOG.txt │ │ ├── FAQ.md │ │ ├── FONTS.md │ │ ├── README.md │ │ └── TODO.txt │ ├── examples │ │ ├── README.txt │ │ ├── example_allegro5 │ │ │ ├── README.md │ │ │ ├── example_allegro5.vcxproj │ │ │ ├── example_allegro5.vcxproj.filters │ │ │ ├── imconfig_allegro5.h │ │ │ └── main.cpp │ │ ├── example_apple_metal │ │ │ ├── README.md │ │ │ ├── Shared │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Renderer.h │ │ │ │ ├── Renderer.mm │ │ │ │ ├── ViewController.h │ │ │ │ ├── ViewController.mm │ │ │ │ └── main.m │ │ │ ├── example_apple_metal.xcodeproj │ │ │ │ └── project.pbxproj │ │ │ ├── iOS │ │ │ │ ├── Base.lproj │ │ │ │ │ └── Main.storyboard │ │ │ │ ├── Default-568h@2x.png │ │ │ │ ├── Info-iOS.plist │ │ │ │ └── Launch Screen.storyboard │ │ │ └── macOS │ │ │ │ ├── Base.lproj │ │ │ │ └── Main.storyboard │ │ │ │ └── Info-macOS.plist │ │ ├── example_apple_opengl2 │ │ │ ├── example_apple_opengl2.xcodeproj │ │ │ │ └── project.pbxproj │ │ │ └── main.mm │ │ ├── example_emscripten │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── main.cpp │ │ │ └── shell_minimal.html │ │ ├── example_glfw_metal │ │ │ ├── Makefile │ │ │ └── main.mm │ │ ├── example_glfw_opengl2 │ │ │ ├── Makefile │ │ │ ├── build_win32.bat │ │ │ ├── example_glfw_opengl2.vcxproj │ │ │ ├── example_glfw_opengl2.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_glfw_opengl3 │ │ │ ├── Makefile │ │ │ ├── build_win32.bat │ │ │ ├── example_glfw_opengl3.vcxproj │ │ │ ├── example_glfw_opengl3.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_glfw_vulkan │ │ │ ├── CMakeLists.txt │ │ │ ├── build_win32.bat │ │ │ ├── build_win64.bat │ │ │ ├── example_glfw_vulkan.vcxproj │ │ │ ├── example_glfw_vulkan.vcxproj.filters │ │ │ ├── gen_spv.sh │ │ │ ├── glsl_shader.frag │ │ │ ├── glsl_shader.vert │ │ │ └── main.cpp │ │ ├── example_glut_opengl2 │ │ │ ├── Makefile │ │ │ ├── example_glut_opengl2.vcxproj │ │ │ ├── example_glut_opengl2.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_marmalade │ │ │ ├── data │ │ │ │ └── app.icf │ │ │ ├── main.cpp │ │ │ └── marmalade_example.mkb │ │ ├── example_null │ │ │ ├── Makefile │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_sdl_directx11 │ │ │ ├── build_win32.bat │ │ │ ├── example_sdl_directx11.vcxproj │ │ │ ├── example_sdl_directx11.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_sdl_metal │ │ │ ├── Makefile │ │ │ └── main.mm │ │ ├── example_sdl_opengl2 │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── build_win32.bat │ │ │ ├── example_sdl_opengl2.vcxproj │ │ │ ├── example_sdl_opengl2.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_sdl_opengl3 │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── build_win32.bat │ │ │ ├── example_sdl_opengl3.vcxproj │ │ │ ├── example_sdl_opengl3.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_sdl_vulkan │ │ │ ├── example_sdl_vulkan.vcxproj │ │ │ ├── example_sdl_vulkan.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_win32_directx10 │ │ │ ├── build_win32.bat │ │ │ ├── example_win32_directx10.vcxproj │ │ │ ├── example_win32_directx10.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_win32_directx11 │ │ │ ├── build_win32.bat │ │ │ ├── example_win32_directx11.vcxproj │ │ │ ├── example_win32_directx11.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_win32_directx12 │ │ │ ├── build_win32.bat │ │ │ ├── example_win32_directx12.vcxproj │ │ │ ├── example_win32_directx12.vcxproj.filters │ │ │ └── main.cpp │ │ ├── example_win32_directx9 │ │ │ ├── build_win32.bat │ │ │ ├── example_win32_directx9.vcxproj │ │ │ ├── example_win32_directx9.vcxproj.filters │ │ │ └── main.cpp │ │ ├── imgui_examples.sln │ │ ├── imgui_impl_allegro5.cpp │ │ ├── imgui_impl_allegro5.h │ │ ├── imgui_impl_dx10.cpp │ │ ├── imgui_impl_dx10.h │ │ ├── imgui_impl_dx11.cpp │ │ ├── imgui_impl_dx11.h │ │ ├── imgui_impl_dx12.cpp │ │ ├── imgui_impl_dx12.h │ │ ├── imgui_impl_dx9.cpp │ │ ├── imgui_impl_dx9.h │ │ ├── imgui_impl_glfw.cpp │ │ ├── imgui_impl_glfw.h │ │ ├── imgui_impl_glut.cpp │ │ ├── imgui_impl_glut.h │ │ ├── imgui_impl_marmalade.cpp │ │ ├── imgui_impl_marmalade.h │ │ ├── imgui_impl_metal.h │ │ ├── imgui_impl_metal.mm │ │ ├── imgui_impl_opengl2.cpp │ │ ├── imgui_impl_opengl2.h │ │ ├── imgui_impl_opengl3.cpp │ │ ├── imgui_impl_opengl3.h │ │ ├── imgui_impl_osx.h │ │ ├── imgui_impl_osx.mm │ │ ├── imgui_impl_sdl.cpp │ │ ├── imgui_impl_sdl.h │ │ ├── imgui_impl_vulkan.cpp │ │ ├── imgui_impl_vulkan.h │ │ ├── imgui_impl_win32.cpp │ │ ├── imgui_impl_win32.h │ │ └── libs │ │ │ ├── gl3w │ │ │ └── GL │ │ │ │ ├── gl3w.c │ │ │ │ ├── gl3w.h │ │ │ │ └── glcorearb.h │ │ │ ├── glfw │ │ │ ├── COPYING.txt │ │ │ ├── include │ │ │ │ └── GLFW │ │ │ │ │ ├── glfw3.h │ │ │ │ │ └── glfw3native.h │ │ │ ├── lib-vc2010-32 │ │ │ │ └── glfw3.lib │ │ │ └── lib-vc2010-64 │ │ │ │ └── glfw3.lib │ │ │ └── usynergy │ │ │ ├── README.txt │ │ │ ├── uSynergy.c │ │ │ └── uSynergy.h │ ├── imconfig.h │ ├── imgui.cpp │ ├── imgui.h │ ├── imgui_demo.cpp │ ├── imgui_draw.cpp │ ├── imgui_internal.h │ ├── imgui_widgets.cpp │ ├── imstb_rectpack.h │ ├── imstb_textedit.h │ ├── imstb_truetype.h │ └── misc │ │ ├── README.txt │ │ ├── cpp │ │ ├── README.txt │ │ ├── imgui_stdlib.cpp │ │ └── imgui_stdlib.h │ │ ├── fonts │ │ ├── Cousine-Regular.ttf │ │ ├── DroidSans.ttf │ │ ├── Karla-Regular.ttf │ │ ├── ProggyClean.ttf │ │ ├── ProggyTiny.ttf │ │ ├── Roboto-Medium.ttf │ │ └── binary_to_compressed_c.cpp │ │ ├── freetype │ │ ├── README.md │ │ ├── imgui_freetype.cpp │ │ └── imgui_freetype.h │ │ ├── natvis │ │ ├── README.txt │ │ └── imgui.natvis │ │ └── single_file │ │ └── imgui_single_file.h │ ├── README.md │ └── stb │ ├── CMakeLists.txt │ ├── implementations.cpp │ └── stb_image.h ├── Games ├── Asteroids │ ├── Asteroids.cfg │ ├── Resources │ │ ├── Audio │ │ │ ├── Engine.wav │ │ │ ├── Explosion.wav │ │ │ └── Shoot.wav │ │ └── Fonts │ │ │ └── Hyperspace │ │ │ ├── Font License.txt │ │ │ ├── Hyperspace Bold.otf │ │ │ └── Hyperspace.otf │ └── Source │ │ ├── Asteroids.cpp │ │ ├── Asteroids.h │ │ ├── CMakeLists.txt │ │ ├── Components.cpp │ │ ├── Components.h │ │ ├── EntitySystems │ │ ├── MenuController.cpp │ │ ├── MenuController.h │ │ ├── PlayerController.cpp │ │ ├── PlayerController.h │ │ ├── PlayerDeathSystem.cpp │ │ ├── PlayerDeathSystem.h │ │ ├── UIUpdateSystem.cpp │ │ └── UIUpdateSystem.h │ │ └── WorldSystems │ │ ├── AsteroidSpawner.cpp │ │ ├── AsteroidSpawner.h │ │ ├── CollisionSystem.cpp │ │ ├── CollisionSystem.h │ │ ├── MovementSystem.cpp │ │ ├── MovementSystem.h │ │ ├── PolylineDrawSystem.cpp │ │ └── PolylineDrawSystem.h ├── GameTemplate │ ├── CMakeLists.txt │ ├── Components.cpp │ ├── Components.h │ ├── Game.cpp │ ├── Game.h │ ├── Systems.cpp │ └── Systems.h ├── PigeonGame │ ├── Resources │ │ ├── Images │ │ │ └── Pigeon.png │ │ └── Levels │ │ │ └── PigeonScene.lvl │ └── Source │ │ ├── CMakeLists.txt │ │ ├── Pigeons.cpp │ │ └── Pigeons.h ├── Pigeons │ └── Pigeons.cfg └── RacerGame │ ├── Resources │ ├── Levels │ │ └── RacerGame.lvl │ └── Models │ │ └── monkey.gltf │ └── Source │ ├── CMakeLists.txt │ ├── Components.cpp │ ├── Components.h │ ├── RacerGame.cpp │ ├── RacerGame.h │ ├── Systems.cpp │ └── Systems.h ├── GitHubImages ├── AsteroidsImage1.png └── AsteroidsImage2.png ├── README.md └── SDL2.dll /.gitignore: -------------------------------------------------------------------------------- 1 | build/* 2 | !build/FindSDL2.cmake 3 | !build/GroupSources.cmake 4 | .vs/ 5 | *.obj 6 | *.exp 7 | *.ilk 8 | freetype.tlog/ 9 | *.pdb 10 | freetype.dll 11 | engine.log 12 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Source/Engine/ThirdParty/EASTL"] 2 | path = Source/Engine/ThirdParty/EASTL 3 | url = https://github.com/electronicarts/EASTL.git 4 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Win32", 5 | "includePath": [ 6 | "${workspaceFolder}/**" 7 | ], 8 | "defines": [ 9 | "_DEBUG", 10 | "UNICODE", 11 | "_UNICODE" 12 | ], 13 | "windowsSdkVersion": "10.0.17763.0", 14 | "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe", 15 | "cStandard": "c11", 16 | "cppStandard": "c++17", 17 | "intelliSenseMode": "msvc-x64" 18 | } 19 | ], 20 | "version": 4 21 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "Run Cmake Debug Build", 8 | "type": "shell", 9 | "command": "cmake --build Build/ --config Debug", 10 | "group": { 11 | "kind": "build", 12 | "isDefault": true 13 | }, 14 | "problemMatcher": [ 15 | "$msCompile" 16 | ] 17 | }, 18 | { 19 | "label": "Run Cmake Release Build", 20 | "type": "shell", 21 | "command": "cmake --build Build/ --config Release", 22 | "problemMatcher": [ 23 | "$msCompile" 24 | ] 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/BUGS.txt: -------------------------------------------------------------------------------- 1 | 2 | Bugs are now managed in the SDL bug tracker, here: 3 | 4 | https://bugzilla.libsdl.org/ 5 | 6 | You may report bugs there, and search to see if a given issue has already 7 | been reported, discussed, and maybe even fixed. 8 | 9 | 10 | You may also find help at the SDL forums/mailing list: 11 | 12 | https://discourse.libsdl.org/ 13 | 14 | Bug reports are welcome here, but we really appreciate if you use Bugzilla, as 15 | bugs discussed on the mailing list may be forgotten or missed. 16 | 17 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/COPYING.txt: -------------------------------------------------------------------------------- 1 | 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2018 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | 21 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/README-SDL.txt: -------------------------------------------------------------------------------- 1 | 2 | Please distribute this file with the SDL runtime environment: 3 | 4 | The Simple DirectMedia Layer (SDL for short) is a cross-platform library 5 | designed to make it easy to write multi-media software, such as games 6 | and emulators. 7 | 8 | The Simple DirectMedia Layer library source code is available from: 9 | https://www.libsdl.org/ 10 | 11 | This library is distributed under the terms of the zlib license: 12 | http://www.zlib.net/zlib_license.html 13 | 14 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/README.txt: -------------------------------------------------------------------------------- 1 | 2 | Simple DirectMedia Layer 3 | 4 | (SDL) 5 | 6 | Version 2.0 7 | 8 | --- 9 | https://www.libsdl.org/ 10 | 11 | Simple DirectMedia Layer is a cross-platform development library designed 12 | to provide low level access to audio, keyboard, mouse, joystick, and graphics 13 | hardware via OpenGL and Direct3D. It is used by video playback software, 14 | emulators, and popular games including Valve's award winning catalog 15 | and many Humble Bundle games. 16 | 17 | More extensive documentation is available in the docs directory, starting 18 | with README.md 19 | 20 | Enjoy! 21 | Sam Lantinga (slouken@libsdl.org) 22 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/docs/README-cmake.md: -------------------------------------------------------------------------------- 1 | CMake 2 | ================================================================================ 3 | (www.cmake.org) 4 | 5 | SDL's build system was traditionally based on autotools. Over time, this 6 | approach has suffered from several issues across the different supported 7 | platforms. 8 | To solve these problems, a new build system based on CMake is under development. 9 | It works in parallel to the legacy system, so users can experiment with it 10 | without complication. 11 | While still experimental, the build system should be usable on the following 12 | platforms: 13 | 14 | * FreeBSD 15 | * Linux 16 | * VS.NET 2010 17 | * MinGW and Msys 18 | * OS X with support for XCode 19 | 20 | 21 | ================================================================================ 22 | Usage 23 | ================================================================================ 24 | 25 | Assuming the source for SDL is located at ~/sdl 26 | 27 | cd ~ 28 | mkdir build 29 | cd build 30 | cmake ../sdl 31 | 32 | This will build the static and dynamic versions of SDL in the ~/build directory. 33 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/docs/README-emscripten.md: -------------------------------------------------------------------------------- 1 | Emscripten 2 | ================================================================================ 3 | 4 | Build: 5 | 6 | $ mkdir build 7 | $ cd build 8 | $ emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-O2" 9 | $ emmake make 10 | 11 | Or with cmake: 12 | 13 | $ mkdir build 14 | $ cd build 15 | $ emcmake cmake .. 16 | $ emmake make 17 | 18 | To build one of the tests: 19 | 20 | $ cd test/ 21 | $ emcc -O2 --js-opts 0 -g4 testdraw2.c -I../include ../build/.libs/libSDL2.a ../build/libSDL2_test.a -o a.html 22 | 23 | Uses GLES2 renderer or software 24 | 25 | Some other SDL2 libraries can be easily built (assuming SDL2 is installed somewhere): 26 | 27 | SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/): 28 | 29 | $ EMCONFIGURE_JS=1 emconfigure ../configure 30 | build as usual... 31 | 32 | SDL_gfx (http://cms.ferzkopp.net/index.php/software/13-sdl-gfx): 33 | 34 | $ EMCONFIGURE_JS=1 emconfigure ../configure --disable-mmx 35 | build as usual... 36 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/docs/README-hg.md: -------------------------------------------------------------------------------- 1 | Mercurial 2 | ========= 3 | 4 | The latest development version of SDL is available via Mercurial. 5 | Mercurial allows you to get up-to-the-minute fixes and enhancements; 6 | as a developer works on a source tree, you can use "hg" to mirror that 7 | source tree instead of waiting for an official release. Please look 8 | at the Mercurial website ( https://www.mercurial-scm.org/ ) for more 9 | information on using hg, where you can also download software for 10 | Mac OS X, Windows, and Unix systems. 11 | 12 | hg clone http://hg.libsdl.org/SDL 13 | 14 | If you are building SDL via configure, you will need to run autogen.sh 15 | before running configure. 16 | 17 | There is a web interface to the subversion repository at: 18 | http://hg.libsdl.org/SDL/ 19 | 20 | There is an RSS feed available at that URL, for those that want to 21 | track commits in real time. 22 | 23 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/docs/README-pandora.md: -------------------------------------------------------------------------------- 1 | Pandora 2 | ===================================================================== 3 | 4 | ( http://openpandora.org/ ) 5 | - A pandora specific video driver was written to allow SDL 2.0 with OpenGL ES 6 | support to work on the pandora under the framebuffer. This driver do not have 7 | input support for now, so if you use it you will have to add your own control code. 8 | The video driver name is "pandora" so if you have problem running it from 9 | the framebuffer, try to set the following variable before starting your application : 10 | "export SDL_VIDEODRIVER=pandora" 11 | 12 | - OpenGL ES support was added to the x11 driver, so it's working like the normal 13 | x11 driver one with OpenGLX support, with SDL input event's etc.. 14 | 15 | 16 | David Carré (Cpasjuste) 17 | cpasjuste@gmail.com 18 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/docs/README-platforms.md: -------------------------------------------------------------------------------- 1 | Platforms 2 | ========= 3 | 4 | We maintain the list of supported platforms on our wiki now, and how to 5 | build and install SDL for those platforms: 6 | 7 | https://wiki.libsdl.org/Installation 8 | 9 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/docs/README-psp.md: -------------------------------------------------------------------------------- 1 | PSP 2 | ====== 3 | SDL port for the Sony PSP contributed by 4 | Captian Lex 5 | 6 | Credit to 7 | Marcus R.Brown,Jim Paris,Matthew H for the original SDL 1.2 for PSP 8 | Geecko for his PSP GU lib "Glib2d" 9 | 10 | Building 11 | -------- 12 | To build for the PSP, make sure psp-config is in the path and run: 13 | make -f Makefile.psp 14 | 15 | 16 | 17 | To Do 18 | ------ 19 | PSP Screen Keyboard 20 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/docs/README-wince.md: -------------------------------------------------------------------------------- 1 | WinCE 2 | ===== 3 | 4 | Windows CE is no longer supported by SDL. 5 | 6 | We have left the CE support in SDL 1.2 for those that must have it, and we 7 | have support for Windows Phone 8 and WinRT in SDL2, as of SDL 2.0.3. 8 | 9 | --ryan. 10 | 11 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/include/SDL_copying.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2017 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/include/SDL_name.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2018 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | #ifndef SDLname_h_ 23 | #define SDLname_h_ 24 | 25 | #if defined(__STDC__) || defined(__cplusplus) 26 | #define NeedFunctionPrototypes 1 27 | #endif 28 | 29 | #define SDL_NAME(X) SDL_##X 30 | 31 | #endif /* SDLname_h_ */ 32 | 33 | /* vi: set ts=4 sw=4 expandtab: */ 34 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/include/SDL_opengles2_gl2platform.h: -------------------------------------------------------------------------------- 1 | #ifndef __gl2platform_h_ 2 | #define __gl2platform_h_ 3 | 4 | /* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */ 5 | 6 | /* 7 | * This document is licensed under the SGI Free Software B License Version 8 | * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . 9 | */ 10 | 11 | /* Platform-specific types and definitions for OpenGL ES 2.X gl2.h 12 | * 13 | * Adopters may modify khrplatform.h and this file to suit their platform. 14 | * You are encouraged to submit all modifications to the Khronos group so that 15 | * they can be included in future versions of this file. Please submit changes 16 | * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) 17 | * by filing a bug against product "OpenGL-ES" component "Registry". 18 | */ 19 | 20 | /*#include */ 21 | 22 | #ifndef GL_APICALL 23 | #define GL_APICALL KHRONOS_APICALL 24 | #endif 25 | 26 | #ifndef GL_APIENTRY 27 | #define GL_APIENTRY KHRONOS_APIENTRY 28 | #endif 29 | 30 | #endif /* __gl2platform_h_ */ 31 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/include/SDL_revision.h: -------------------------------------------------------------------------------- 1 | #define SDL_REVISION "hg-11914:f1084c419f33" 2 | #define SDL_REVISION_NUMBER 11914 3 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/include/SDL_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | Simple DirectMedia Layer 3 | Copyright (C) 1997-2018 Sam Lantinga 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | */ 21 | 22 | /** 23 | * \file SDL_types.h 24 | * 25 | * \deprecated 26 | */ 27 | 28 | /* DEPRECATED */ 29 | #include "SDL_stdinc.h" 30 | -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x64/SDL2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x64/SDL2.dll -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x64/SDL2.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x64/SDL2.lib -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x64/SDL2main.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x64/SDL2main.lib -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x64/SDL2test.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x64/SDL2test.lib -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x86/SDL2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x86/SDL2.dll -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x86/SDL2.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x86/SDL2.lib -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x86/SDL2main.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x86/SDL2main.lib -------------------------------------------------------------------------------- /Engine/Lib/SDL2-2.0.8/lib/x86/SDL2test.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Lib/SDL2-2.0.8/lib/x86/SDL2test.lib -------------------------------------------------------------------------------- /Engine/Resources/Shaders/Particles.hlsl: -------------------------------------------------------------------------------- 1 | cbuffer cbPerObject 2 | { 3 | float4x4 VP; 4 | }; 5 | 6 | cbuffer InstanceData 7 | { 8 | struct { 9 | column_major float4x4 transform; 10 | } array[64]; 11 | }; 12 | 13 | struct VS_OUTPUT 14 | { 15 | float4 Pos : SV_POSITION; 16 | float2 Tex: TEXCOORD0; 17 | float4 Col: COLOR0; 18 | }; 19 | 20 | VS_OUTPUT VSMain(float4 inPos : POSITION, float2 inTex : TEXCOORD0, float4 inCol : COLOR0, uint instanceId : SV_InstanceID) 21 | { 22 | VS_OUTPUT output; 23 | 24 | float4x4 wvp = mul(array[instanceId].transform, VP); 25 | output.Pos = mul(inPos, wvp); 26 | output.Col = float4(1, 1, 1, 1); 27 | output.Tex = inTex; 28 | 29 | return output; 30 | } 31 | 32 | float4 PSMain(VS_OUTPUT input) : SV_TARGET 33 | { 34 | return input.Col; 35 | } -------------------------------------------------------------------------------- /Engine/Resources/Shaders/VertColor.hlsl: -------------------------------------------------------------------------------- 1 | // Constant buffer for transform info 2 | cbuffer cbTransform 3 | { 4 | float4x4 WVP; 5 | }; 6 | 7 | // Constant buffer for shader properties (i.e. line thickness) 8 | 9 | 10 | // struct for vert input data 11 | // Struct for vertex output data 12 | 13 | struct VS_OUTPUT 14 | { 15 | float4 Pos : SV_POSITION; 16 | float4 col : COLOR_0; 17 | }; 18 | 19 | VS_OUTPUT VSMain(float4 inPos : SV_POSITION, float3 norm : NORMAL, float2 tex : TEXCOORD_0, float4 col : COLOR_0) 20 | { 21 | VS_OUTPUT output; 22 | output.Pos = mul(inPos, WVP); 23 | output.col = col; 24 | return output; 25 | } 26 | 27 | float4 PSMain(VS_OUTPUT input) : SV_TARGET 28 | { 29 | return input.col; 30 | } -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(Engine 2 | PRIVATE 3 | "AssetDatabase.h" 4 | "AssetDatabase.cpp" 5 | "Model.h" 6 | "Model.cpp" 7 | "Mesh.h" 8 | "Mesh.cpp" 9 | "Text.h" 10 | "Text.cpp" 11 | "Sound.h" 12 | "Sound.cpp" 13 | "Shader.h" 14 | "Shader.cpp" 15 | "Font.h" 16 | "Font.cpp" 17 | "Image.h" 18 | "Image.cpp" 19 | ) -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Font.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "AssetDatabase.h" 4 | #include "GraphicsDevice.h" 5 | #include "Rendering/FontSystem.h" 6 | 7 | #include 8 | 9 | struct Font : Asset 10 | { 11 | virtual void Load(Path path, AssetHandle handleForThis) override; 12 | ~Font(); 13 | 14 | TextureHandle fontTexture; 15 | eastl::vector characters; 16 | }; 17 | -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Image.cpp: -------------------------------------------------------------------------------- 1 | #include "Image.h" 2 | 3 | #include "FileSystem.h" 4 | #include "Log.h" 5 | #include "GraphicsDevice.h" 6 | 7 | #include 8 | 9 | void Image::Load(Path path, AssetHandle handleForThis) 10 | { 11 | imgData = stbi_load(path.AsRawString(), &xSize, &ySize, &nChannels, 0); 12 | 13 | if (imgData == nullptr) 14 | { 15 | Log::Crit("Image load failed on file %s for reason %s", path.AsRawString(), stbi_failure_reason()); 16 | } 17 | 18 | gpuHandle = GfxDevice::CreateTexture(xSize, ySize, TextureFormat::RGBA8, imgData, path.AsString()); 19 | } 20 | 21 | Image::~Image() 22 | { 23 | stbi_image_free(imgData); 24 | } -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Image.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "AssetDatabase.h" 4 | #include "GraphicsDevice.h" 5 | 6 | struct Image : Asset 7 | { 8 | virtual void Load(Path path, AssetHandle handleForThis) override; 9 | 10 | ~Image(); 11 | 12 | int xSize; 13 | int ySize; 14 | int nChannels; 15 | unsigned char* imgData; 16 | TextureHandle gpuHandle; 17 | }; 18 | -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Model.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Mesh.h" 4 | 5 | struct Model : Asset 6 | { 7 | eastl::vector meshes; 8 | eastl::vector subAssets; 9 | 10 | virtual void Load(Path path, AssetHandle handleForThis) override; 11 | ~Model() {} 12 | }; -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Shader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "AssetDatabase.h" 4 | 5 | #include "GraphicsDevice.h" 6 | 7 | struct Shader : Asset 8 | { 9 | Shader(); 10 | virtual void Load(Path path, AssetHandle handleForThis) override; 11 | virtual void Reload(Path loadPath, AssetHandle handleForThis) override; 12 | ~Shader(); 13 | 14 | PixelShaderHandle pixelShader; 15 | VertexShaderHandle vertShader; 16 | 17 | ProgramHandle program; 18 | }; 19 | -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Sound.cpp: -------------------------------------------------------------------------------- 1 | #include "Sound.h" 2 | 3 | #include "Log.h" 4 | 5 | void Sound::Load(Path path, AssetHandle handleForThis) 6 | { 7 | if (SDL_LoadWAV(path.AsRawString(), &spec, &buffer, &length) == nullptr) 8 | { 9 | Log::Warn("%s", SDL_GetError()); 10 | } 11 | 12 | if (spec.channels == 1) // doubling our actual buffer length since we reuse the samples for stereo 13 | length *= 2; 14 | 15 | // @TODO Ensure the loaded audio file is of the correct format and give errors otherwise 16 | } 17 | 18 | Sound::~Sound() 19 | { 20 | SDL_FreeWAV(buffer); 21 | } -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Sound.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "AssetDatabase.h" 4 | 5 | #include 6 | 7 | struct Sound : Asset 8 | { 9 | virtual void Load(Path path, AssetHandle handleForThis) override; 10 | ~Sound(); 11 | 12 | SDL_AudioSpec spec; 13 | uint32_t length{ 0 }; 14 | uint8_t* buffer{ nullptr }; 15 | 16 | // @TODO: protect this struct from hot reloads 17 | }; 18 | -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Text.cpp: -------------------------------------------------------------------------------- 1 | #include "Text.h" 2 | 3 | #include 4 | 5 | void Text::Load(Path path, AssetHandle handleForThis) 6 | { 7 | contents = FileSys::ReadWholeFile(path); 8 | } -------------------------------------------------------------------------------- /Engine/Source/AssetDatabase/Text.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "AssetDatabase.h" 4 | 5 | struct Text : Asset 6 | { 7 | virtual void Load(Path path, AssetHandle handleForThis) override; 8 | 9 | eastl::string contents; 10 | }; 11 | -------------------------------------------------------------------------------- /Engine/Source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(Engine) 2 | 3 | include_directories("AssetDatabase/") 4 | include_directories("Core/") 5 | include_directories("EntitySystem/") 6 | include_directories("Devices/") 7 | include_directories("Modules/") 8 | include_directories("ThirdParty/") 9 | include_directories("ThirdParty/EASTL/include/") 10 | include_directories("ThirdParty/EABase/include/Common/") 11 | include_directories("ThirdParty/FreeType/include") 12 | add_Library(Engine "") 13 | 14 | add_subdirectory(AssetDatabase) 15 | add_subdirectory(Core) 16 | add_subdirectory(EntitySystem) 17 | add_subdirectory(Devices) 18 | add_subdirectory(Modules) 19 | add_subdirectory(ThirdParty/Imgui) 20 | add_subdirectory(ThirdParty/EASTL) 21 | add_subdirectory(ThirdParty/EABase) 22 | add_subdirectory(ThirdParty/FreeType) 23 | add_subdirectory(ThirdParty/stb) 24 | 25 | GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) 26 | 27 | target_precompile_headers(Engine PRIVATE "Core/PreCompiledHeader.h") 28 | 29 | target_link_libraries(Engine ${SDL2_LIBRARIES} freetype Imgui EASTL d3d11 d3d10 d3dcompiler dxguid stb) 30 | 31 | if(MSVC) 32 | target_compile_options(Engine PRIVATE /W3 /WX) 33 | else() 34 | target_compile_options(Engine PRIVATE -Wall -Werror) 35 | endif() 36 | 37 | # target_compile_options(Engine PRIVATE /Bt) 38 | # target_compile_options(Engine PRIVATE /showIncludes) -------------------------------------------------------------------------------- /Engine/Source/Core/AABB.cpp: -------------------------------------------------------------------------------- 1 | #include "AABB.h" 2 | 3 | REFLECT_TEMPLATED_BEGIN(AABBf) 4 | REFLECT_MEMBER(min) 5 | REFLECT_MEMBER(max) 6 | REFLECT_END() 7 | 8 | REFLECT_TEMPLATED_BEGIN(AABBd) 9 | REFLECT_MEMBER(min) 10 | REFLECT_MEMBER(max) 11 | REFLECT_END() 12 | -------------------------------------------------------------------------------- /Engine/Source/Core/AABB.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Vec3.h" 4 | #include "Matrix.h" 5 | #include "TypeSystem.h" 6 | 7 | template 8 | struct AABB 9 | { 10 | REFLECT() 11 | 12 | Vec3 min; 13 | Vec3 max; 14 | 15 | // Probably want merge for mesh combining primitives? 16 | }; 17 | 18 | template 19 | AABB TransformAABB(AABB a, Matrix m) 20 | { 21 | AABB res; 22 | Vec3 sca = m.ExtractScaling(); 23 | for (int i = 0; i < 3; i++) 24 | { 25 | for (int j = 0; j < 3; j++) 26 | { 27 | float e = m.m[i][j] * a.min[j]; 28 | float f = m.m[i][j] * a.max[j]; 29 | if (e < f) 30 | { 31 | res.min[i] += e; 32 | res.max[i] += f; 33 | } 34 | else 35 | { 36 | res.min[i] += f; 37 | res.max[i] += e; 38 | } 39 | } 40 | res.min[i] *= sca[i]; 41 | res.max[i] *= sca[i]; 42 | res.min[i] += m.m[i][3]; 43 | res.max[i] += m.m[i][3]; 44 | } 45 | return res; 46 | } 47 | 48 | typedef AABB AABBf; 49 | typedef AABB AABBd; -------------------------------------------------------------------------------- /Engine/Source/Core/AppWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "GraphicsDevice.h" 4 | 5 | namespace AppWindow 6 | { 7 | void Create(float initialWidth, float initialHeight, const eastl::string& windowName); 8 | 9 | void RenderToWindow(TextureHandle frame); 10 | 11 | void Resize(float width, float height); 12 | 13 | float GetWidth(); 14 | float GetHeight(); 15 | 16 | SDL_Window* GetSDLWindow(); 17 | 18 | void Destroy(); 19 | } -------------------------------------------------------------------------------- /Engine/Source/Core/Base64.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | eastl::string DecodeBase64(eastl::string const& encoded_string); 6 | 7 | eastl::string EncodeBase64(size_t length, const char* bytes); 8 | -------------------------------------------------------------------------------- /Engine/Source/Core/ErrorHandling.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define ASSERT(condition, text) ((condition) ? (void)0 : Assertion(text, __FILE__, __LINE__)) 4 | 5 | int ShowAssertDialog(const char* errorMsg, const char* file, int line); 6 | 7 | void Assertion(const char* errorMsg, const char* file, int line); -------------------------------------------------------------------------------- /Engine/Source/Core/FileStream.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct SDL_RWops; 6 | 7 | enum FileStreamMode 8 | { 9 | FileAppend = 0x01, ///< A file stream that will append rather than write 10 | FileRead = 0x02, ///< A file stream that can read 11 | FileWrite = 0x04, ///< A file stream that can write 12 | FileBinary = 0x08, ///< File stream will be treated as binary 13 | }; 14 | 15 | enum SeekFrom 16 | { 17 | SeekStart, 18 | SeekCurr, 19 | SeekEnd 20 | }; 21 | 22 | class FileStream 23 | { 24 | public: 25 | 26 | FileStream(); 27 | 28 | FileStream(const FileStream & fileStream); 29 | 30 | FileStream(FileStream && fileStream); 31 | 32 | FileStream(eastl::string _path, unsigned int mode); 33 | 34 | ~FileStream(); 35 | 36 | void Close(); 37 | 38 | eastl::string Read(size_t length); 39 | 40 | void Read(char* buffer, size_t length); 41 | 42 | void Write(const char* buffer, size_t length); 43 | 44 | size_t Seek(size_t offset, SeekFrom from = SeekCurr); 45 | 46 | size_t Tell(); 47 | 48 | size_t Size(); 49 | 50 | bool IsValid(); 51 | 52 | private: 53 | SDL_RWops* rwops{ nullptr }; 54 | eastl::string path{ "" }; 55 | eastl::string modeString{ "" }; 56 | }; -------------------------------------------------------------------------------- /Engine/Source/Core/IntersectionTests.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace Intersect 7 | { 8 | 9 | bool RayAABB(Vec3f rayStart, Vec3f rayDir, AABBf bounds, float& resultDistance, Vec3f& resultIntersect); 10 | bool RayTriangle(Vec3f rayStart, Vec3f rayDir, Vec3f p0, Vec3f p1, Vec3f p2, float& resultDistance, Vec3f& resultIntersect); 11 | 12 | } -------------------------------------------------------------------------------- /Engine/Source/Core/LinearAllocator.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "LinearAllocator.h" 3 | #include "ErrorHandling.h" 4 | #include "Log.h" 5 | 6 | LinearAllocator::LinearAllocator() 7 | {} 8 | 9 | LinearAllocator::~LinearAllocator() 10 | { 11 | delete[] pData; 12 | } 13 | 14 | void LinearAllocator::Init(size_t size) 15 | { 16 | pData = new char[size]; 17 | totalSize = size; 18 | } 19 | 20 | uintptr_t AlignAddress(uintptr_t address, size_t alignment) 21 | { 22 | const size_t mask = alignment - 1; 23 | ASSERT((alignment & mask) == 0, "Alignment must be a power of 2"); 24 | return (address + mask) & ~mask; 25 | } 26 | 27 | void* LinearAllocator::Allocate(size_t nBytes, size_t alignment) 28 | { 29 | uintptr_t currentAddress = reinterpret_cast(pData) + offset; 30 | 31 | // Calculate alignment 32 | size_t padding = 0; 33 | if (alignment != 0) 34 | padding = AlignAddress(currentAddress, alignment) - currentAddress; 35 | 36 | ASSERT(offset + padding + nBytes < totalSize, "Memory buffer overflow"); 37 | 38 | uintptr_t nextAddress = currentAddress + padding; 39 | offset += nBytes + padding; 40 | return reinterpret_cast(nextAddress); 41 | } 42 | 43 | void LinearAllocator::Clear() 44 | { 45 | // set head pointer to base 46 | offset = 0; 47 | } -------------------------------------------------------------------------------- /Engine/Source/Core/LinearAllocator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct LinearAllocator 4 | { 5 | LinearAllocator(); 6 | ~LinearAllocator(); 7 | 8 | void Init(size_t size); 9 | 10 | // Allocate nBytes of data on the stack. Alignment must be power of 2 11 | void* Allocate(size_t nBytes, size_t alignment = 0); 12 | 13 | void Clear(); 14 | 15 | char* pData{ nullptr }; 16 | size_t totalSize{ 0 }; 17 | size_t offset{ 0 }; 18 | }; -------------------------------------------------------------------------------- /Engine/Source/Core/Log.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace Log 8 | { 9 | typedef eastl::fixed_string LogStringStorage; 10 | 11 | enum LogLevel 12 | { 13 | ECrit, 14 | EWarn, 15 | EInfo, 16 | EDebug 17 | }; 18 | 19 | struct LogEntry 20 | { 21 | LogLevel level; 22 | LogStringStorage message; 23 | }; 24 | 25 | typedef eastl::ring_buffer> StringHistoryBuffer; 26 | 27 | void SetLogLevel(LogLevel level); 28 | void Crit(const char* text, ...); 29 | void Warn(const char* text, ...); 30 | void Info(const char* text, ...); 31 | void Debug(const char* text, ...); 32 | 33 | const StringHistoryBuffer& GetLogHistory(); 34 | } 35 | -------------------------------------------------------------------------------- /Engine/Source/Core/Maths.cpp: -------------------------------------------------------------------------------- 1 | #include "Maths.h" 2 | 3 | // *********************************************************************** 4 | 5 | double generateGaussian(double mean, double stdDev) 6 | { 7 | // Implementation of Marsaglia polar method. Generates two normally distributed random variables in the range of 0-1 8 | // Thread local storage is used to return the alternate of the two random variables every other call 9 | 10 | thread_local double spare; 11 | thread_local bool hasSpare = false; 12 | 13 | if (hasSpare) 14 | { 15 | hasSpare = false; 16 | return spare * stdDev + mean; 17 | } 18 | else { 19 | double u, v, s; 20 | do 21 | { 22 | u = (rand() / ((double)RAND_MAX)) * 2.0 - 1.0; 23 | v = (rand() / ((double)RAND_MAX)) * 2.0 - 1.0; 24 | s = u * u + v * v; 25 | } 26 | while (s >= 1.0 || s == 0.0); 27 | 28 | s = sqrt(-2.0 * log(s) / s); 29 | spare = v * s; 30 | hasSpare = true; 31 | 32 | return mean + stdDev * u * s; 33 | } 34 | } -------------------------------------------------------------------------------- /Engine/Source/Core/Maths.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #define PI 3.14159f 6 | 7 | #define ToRadian(x) ((x) * 3.14159f /180.0f) 8 | #define ToDegree(x) ((x) * 180.0f / 3.14159f) 9 | 10 | inline float LinearMap(float x, float fromMin, float fromMax, float toMin, float toMax) 11 | { 12 | return toMin + ((x - fromMin) / (fromMax - fromMin)) * (toMax - toMin); 13 | } 14 | 15 | inline int mod_floor(int a, int n) { 16 | return ((a % n) + n) % n; 17 | } 18 | 19 | inline int mod_floor(int a, size_t n) { 20 | return mod_floor(a, (int)n); 21 | } 22 | 23 | template 24 | inline T clamp(T val, T min, T max) 25 | { 26 | if (val < min) 27 | return min; 28 | if (val > max) 29 | return max; 30 | return val; 31 | } 32 | 33 | double generateGaussian(double mean, double stdDev); -------------------------------------------------------------------------------- /Engine/Source/Core/Matrix.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/Core/Matrix.cpp -------------------------------------------------------------------------------- /Engine/Source/Core/Memory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Log.h" 4 | 5 | // EASTL expects us to define these, see allocator.h line 194 6 | void* operator new[](size_t size, const char* pName, int flags, 7 | unsigned debugFlags, const char* file, int line) 8 | { 9 | void* newStuff = malloc(size); 10 | //Log::Print(Log::EMsg, "New allocation Size %i Name \"%s\" File \"%s:%i\"", size, pName, file, line); 11 | return newStuff; 12 | } 13 | void* operator new[](size_t size, size_t alignment, size_t alignmentOffset, 14 | const char* pName, int flags, unsigned debugFlags, const char* file, int line) 15 | { 16 | // this allocator doesn't support alignment 17 | //EASTL_ASSERT(alignment <= 8); 18 | return _aligned_malloc(size, alignment); 19 | } -------------------------------------------------------------------------------- /Engine/Source/Core/PreCompiledHeader.h: -------------------------------------------------------------------------------- 1 | #include "EASTL/string.h" 2 | #include "EASTL/fixed_string.h" 3 | #include "EASTL/vector.h" 4 | #include "EASTL/fixed_vector.h" 5 | #include "EASTL/shared_ptr.h" 6 | #include "EASTL/bitset.h" 7 | #include "EASTL/sort.h" 8 | #include "EASTL/unique_ptr.h" 9 | 10 | #include "TypeSystem.h" -------------------------------------------------------------------------------- /Engine/Source/Core/Profiler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Log.h" 4 | 5 | namespace Profiler 6 | { 7 | struct ScopeData 8 | { 9 | ScopeData() : name(""), time(0) {} 10 | ScopeData(const char* _name, double _time) : name(_name), time(_time) {} 11 | const char* name; 12 | double time{ 0 }; 13 | }; 14 | 15 | void ClearFrameData(); 16 | 17 | void PushProfile(const char* _name, double _time); 18 | 19 | void GetFrameData(Profiler::ScopeData** pOutData, int& outNumElements); 20 | } 21 | 22 | 23 | #define PROFILE() AutoProfile p(__FUNCTION__) 24 | 25 | struct AutoProfile 26 | { 27 | AutoProfile(const char* _name); 28 | ~AutoProfile(); 29 | const char *name; 30 | uint64_t start; 31 | }; -------------------------------------------------------------------------------- /Engine/Source/Core/Quat.cpp: -------------------------------------------------------------------------------- 1 | #include "Quat.h" 2 | 3 | REFLECT_TEMPLATED_BEGIN(Quatf) 4 | REFLECT_MEMBER(x) 5 | REFLECT_MEMBER(y) 6 | REFLECT_MEMBER(z) 7 | REFLECT_MEMBER(w) 8 | REFLECT_END() 9 | 10 | REFLECT_TEMPLATED_BEGIN(Quatd) 11 | REFLECT_MEMBER(x) 12 | REFLECT_MEMBER(y) 13 | REFLECT_MEMBER(z) 14 | REFLECT_MEMBER(w) 15 | REFLECT_END() 16 | 17 | -------------------------------------------------------------------------------- /Engine/Source/Core/SceneQueries.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Vec3.h" 4 | #include "Scene.h" 5 | 6 | namespace SceneQueries 7 | { 8 | 9 | struct Hit 10 | { 11 | EntityID ent{ EntityID::InvalidID() }; 12 | Vec3f hitLoc{ Vec3f(0.0f) }; 13 | float distance{ 0.0f }; 14 | }; 15 | 16 | bool RaycastRenderables(Scene& scene, Vec3f rayStart, Vec3f rayEnd, Hit& outHit); 17 | 18 | } -------------------------------------------------------------------------------- /Engine/Source/Core/SceneSerializer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Scene.h" 4 | 5 | #include 6 | 7 | namespace SceneSerializer 8 | { 9 | JsonValue ToJson(Scene& scene); 10 | Scene* NewSceneFromJson(JsonValue json); 11 | } -------------------------------------------------------------------------------- /Engine/Source/Core/StringHash.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Implements compile time string hashing. 4 | // Forgive my academic masturbation here but this is a damn cool thing to have, 5 | // It's used to give types unique Ids at compile time based on their typeNames, which we guarantee are unique 6 | struct Fnv1a 7 | { 8 | constexpr static inline uint32_t Hash(char const*const aString, const uint32_t val = 0x811C9DC5) 9 | { 10 | return (aString[0] == '\0') ? val : Hash( &aString[1], ( val ^ uint32_t(aString[0]) ) * 0x01000193); 11 | } 12 | 13 | constexpr static inline uint32_t Hash(char const*const aString, const size_t aStrlen, const uint32_t val = 0x811C9DC5) 14 | { 15 | return (aStrlen == 0) ? val : Hash( aString + 1, aStrlen - 1, ( val ^ uint32_t(aString[0]) ) * 0x01000193); 16 | } 17 | }; 18 | 19 | inline constexpr uint32_t operator "" _hash (const char* aString, const size_t aStrlen) 20 | { 21 | return Fnv1a::Hash(aString, aStrlen); 22 | } -------------------------------------------------------------------------------- /Engine/Source/Core/UUID.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "EASTL/string.h" 4 | 5 | class Uuid 6 | { 7 | public: 8 | Uuid(); 9 | 10 | static Uuid New(); 11 | 12 | eastl::string ToString(); 13 | 14 | bool IsNill(); 15 | 16 | bool operator==(const Uuid& other) const; 17 | 18 | bool operator!=(const Uuid& other) const; 19 | 20 | bool operator<(const Uuid& other) const; 21 | 22 | private: 23 | union{ 24 | uint8_t u8[16]; 25 | uint64_t u64[2]; 26 | } data; 27 | }; -------------------------------------------------------------------------------- /Engine/Source/Core/Vec2.cpp: -------------------------------------------------------------------------------- 1 | #include "Vec2.h" 2 | 3 | REFLECT_TEMPLATED_BEGIN(Vec2f) 4 | REFLECT_MEMBER(x) 5 | REFLECT_MEMBER(y) 6 | REFLECT_END() 7 | 8 | REFLECT_TEMPLATED_BEGIN(Vec2d) 9 | REFLECT_MEMBER(x) 10 | REFLECT_MEMBER(y) 11 | REFLECT_END() 12 | 13 | REFLECT_TEMPLATED_BEGIN(Vec2i) 14 | REFLECT_MEMBER(x) 15 | REFLECT_MEMBER(y) 16 | REFLECT_END() -------------------------------------------------------------------------------- /Engine/Source/Core/Vec3.cpp: -------------------------------------------------------------------------------- 1 | #include "Vec3.h" 2 | 3 | REFLECT_TEMPLATED_BEGIN(Vec3f) 4 | REFLECT_MEMBER(x) 5 | REFLECT_MEMBER(y) 6 | REFLECT_MEMBER(z) 7 | REFLECT_END() 8 | 9 | REFLECT_TEMPLATED_BEGIN(Vec3d) 10 | REFLECT_MEMBER(x) 11 | REFLECT_MEMBER(y) 12 | REFLECT_MEMBER(z) 13 | REFLECT_END() -------------------------------------------------------------------------------- /Engine/Source/Core/Vec4.cpp: -------------------------------------------------------------------------------- 1 | #include "Vec4.h" 2 | 3 | REFLECT_TEMPLATED_BEGIN(Vec4f) 4 | REFLECT_MEMBER(x) 5 | REFLECT_MEMBER(y) 6 | REFLECT_MEMBER(z) 7 | REFLECT_MEMBER(w) 8 | REFLECT_END() 9 | 10 | REFLECT_TEMPLATED_BEGIN(Vec4d) 11 | REFLECT_MEMBER(x) 12 | REFLECT_MEMBER(y) 13 | REFLECT_MEMBER(z) 14 | REFLECT_MEMBER(w) 15 | REFLECT_END() -------------------------------------------------------------------------------- /Engine/Source/Core/Vsnprintf.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // A requirement of EASTL that we provide these functions for string::sprintf to work 4 | 5 | int Vsnprintf8(char* p, size_t n, const char* pFormat, va_list arguments) 6 | { 7 | return vsnprintf(p, n, pFormat, arguments); 8 | } 9 | 10 | int Vsnprintf16(char16_t* p, size_t n, const char16_t* pFormat, va_list arguments) 11 | { 12 | return vswprintf_s((wchar_t*)p, n, (wchar_t*)pFormat, arguments); 13 | } -------------------------------------------------------------------------------- /Engine/Source/Devices/AudioDevice.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "Log.h" 6 | #include "AssetDatabase.h" 7 | 8 | #include 9 | 10 | typedef unsigned long long SoundID; 11 | 12 | namespace AudioDevice 13 | { 14 | void Initialize(); 15 | 16 | SoundID PlaySound(AssetHandle soundAsset, float volume, bool loop); 17 | 18 | void StopSound(SoundID sound); 19 | 20 | void PauseSound(SoundID sound); 21 | 22 | void UnPauseSound(SoundID sound); 23 | 24 | void Destroy(); 25 | } -------------------------------------------------------------------------------- /Engine/Source/Devices/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(Engine 2 | PRIVATE 3 | "GraphicsDevice.h" 4 | "GraphicsDevice.cpp" 5 | "AudioDevice.h" 6 | "AudioDevice.cpp" 7 | ) -------------------------------------------------------------------------------- /Engine/Source/EntitySystem/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(Engine 2 | PRIVATE 3 | "World.h" 4 | "World.cpp" 5 | "Systems.h" 6 | "Entity.h" 7 | "Entity.cpp" 8 | "IComponent.h" 9 | "SpatialComponent.h" 10 | "SpatialComponent.cpp" 11 | ) -------------------------------------------------------------------------------- /Engine/Source/EntitySystem/IComponent.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "TypeSystem.h" 4 | #include "UUID.h" 5 | 6 | struct IComponent 7 | { 8 | friend class Entity; 9 | 10 | IComponent() : id(Uuid::New()) {} 11 | 12 | REFLECT_DERIVED() 13 | 14 | Uuid GetId() const { return id; } 15 | Uuid GetEntityId() const { return owningEntityId; } 16 | 17 | private: 18 | Uuid id; 19 | Uuid owningEntityId; 20 | }; 21 | -------------------------------------------------------------------------------- /Engine/Source/EntitySystem/SpatialComponent.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Entity.h" 4 | #include "Matrix.h" 5 | 6 | struct SpatialComponent : public IComponent 7 | { 8 | friend class Entity; 9 | 10 | REFLECT_DERIVED() 11 | 12 | SpatialComponent() : IComponent() {} 13 | 14 | void SetLocalPosition(const Vec3f& position); 15 | 16 | Vec3f GetLocalPosition(); 17 | 18 | 19 | void SetLocalRotation(const Vec3f& rotation); 20 | 21 | Vec3f GetLocalRotation(); 22 | 23 | 24 | void SetLocalScale(const Vec3f& scale); 25 | 26 | Vec3f GetLocalScale(); 27 | 28 | 29 | Matrixf GetWorldTransform(); 30 | 31 | private: 32 | void SetParent(SpatialComponent* pDesiredParent); 33 | 34 | Vec3f position{ Vec3f(0.0f) }; 35 | Vec3f rotation{ Vec3f(0.0f) }; 36 | Vec3f scale{ Vec3f(1.0f) }; 37 | Matrixf localTransform{ Matrixf::Identity() }; 38 | Matrixf worldTransform{ Matrixf::Identity() }; 39 | 40 | void UpdateTransforms(); 41 | 42 | SpatialComponent* pParent{ nullptr }; 43 | eastl::vector children; 44 | }; 45 | -------------------------------------------------------------------------------- /Engine/Source/EntitySystem/Systems.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct IComponent; 4 | struct FrameContext; 5 | struct UpdateContext; 6 | class Entity; 7 | 8 | class IEntitySystem 9 | { 10 | public: 11 | virtual void Activate() = 0; 12 | virtual void RegisterComponent(IComponent* pComponent) = 0; 13 | virtual void UnregisterComponent(IComponent* pComponent) = 0; 14 | 15 | virtual void Update(UpdateContext& ctx) {}; 16 | virtual void Draw(UpdateContext& ctx, FrameContext& frameCtx) {}; 17 | }; 18 | 19 | class IWorldSystem 20 | { 21 | public: 22 | virtual void Activate() = 0; 23 | virtual void Deactivate() = 0; 24 | virtual void RegisterComponent(Entity* pEntity, IComponent* pComponent) = 0; 25 | virtual void UnregisterComponent(Entity* pEntity, IComponent* pComponent) = 0; 26 | 27 | virtual void Update(UpdateContext& ctx) {}; 28 | virtual void Draw(UpdateContext& ctx, FrameContext& frameCtx) {}; 29 | }; -------------------------------------------------------------------------------- /Engine/Source/Modules/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(Editor) 2 | add_subdirectory(Input) 3 | add_subdirectory(Rendering) -------------------------------------------------------------------------------- /Engine/Source/Modules/Editor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(Engine 2 | PRIVATE 3 | "Editor.h" 4 | "Editor.cpp" 5 | "FrameStats.h" 6 | "FrameStats.cpp" 7 | "EntityInspector.h" 8 | "EntityInspector.cpp" 9 | "SceneHeirarchy.h" 10 | "SceneHeirarchy.cpp" 11 | "GameView.h" 12 | "GameView.cpp" 13 | "Console.h" 14 | "Console.cpp" 15 | "SceneView.h" 16 | "SceneView.cpp" 17 | ) -------------------------------------------------------------------------------- /Engine/Source/Modules/Editor/Console.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Editor.h" 4 | 5 | struct Console : public EditorTool 6 | { 7 | bool scrollToBottom{ true }; 8 | 9 | Console(); 10 | 11 | virtual void Update(Scene& scene, UpdateContext& ctx) override; 12 | }; -------------------------------------------------------------------------------- /Engine/Source/Modules/Editor/Editor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Vec2.h" 4 | #include "UUID.h" 5 | 6 | struct Scene; 7 | struct TextureHandle; 8 | struct UpdateContext; 9 | union SDL_Event; 10 | 11 | struct EditorTool 12 | { 13 | bool open { true }; 14 | eastl::string menuName{ "unnamed tool" }; 15 | virtual void Update(Scene& scene, UpdateContext& ctx) = 0; 16 | virtual void OnEditorResize(Vec2f newSize) {} 17 | virtual bool OnEvent(SDL_Event* event) { return false; } 18 | 19 | virtual ~EditorTool() {} 20 | }; 21 | 22 | namespace Editor 23 | { 24 | void Initialize(bool enabled); 25 | void PreUpdate(); 26 | bool ProcessEvent(SDL_Event* event); 27 | TextureHandle DrawFrame(Scene& scene, UpdateContext& ctx); 28 | void Destroy(); 29 | 30 | void ResizeEditorFrame(float width, float height); 31 | 32 | bool IsActive(); 33 | void ToggleEditor(); 34 | 35 | Uuid GetSelectedEntity(); 36 | void SetSelectedEntity(Uuid entity); 37 | } -------------------------------------------------------------------------------- /Engine/Source/Modules/Editor/EntityInspector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Editor.h" 4 | 5 | struct EntityInspector : public EditorTool 6 | { 7 | EntityInspector(); 8 | 9 | virtual void Update(Scene& scene, UpdateContext& ctx) override; 10 | 11 | Uuid selectedComponent; 12 | }; -------------------------------------------------------------------------------- /Engine/Source/Modules/Editor/FrameStats.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Editor.h" 4 | 5 | struct FrameStats : public EditorTool 6 | { 7 | int frameStatsCounter = 0; // used so we only update framerate every few frames to make it less annoying to read 8 | double oldRealFrameTime; 9 | double oldObservedFrameTime; 10 | 11 | FrameStats(); 12 | 13 | virtual void Update(Scene& scene, UpdateContext& ctx) override; 14 | }; -------------------------------------------------------------------------------- /Engine/Source/Modules/Editor/GameView.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Editor.h" 4 | #include "Vec2.h" 5 | 6 | struct GameView : public EditorTool 7 | { 8 | GameView(); 9 | 10 | virtual void Update(Scene& scene, UpdateContext& ctx) override; 11 | 12 | virtual void OnEditorResize(Vec2f newSize) override; 13 | 14 | virtual bool OnEvent(SDL_Event* event) override; 15 | }; -------------------------------------------------------------------------------- /Engine/Source/Modules/Editor/SceneHeirarchy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Editor.h" 4 | 5 | struct SceneHeirarchy : public EditorTool 6 | { 7 | SceneHeirarchy(); 8 | 9 | virtual void Update(Scene& scene, UpdateContext& ctx) override; 10 | }; -------------------------------------------------------------------------------- /Engine/Source/Modules/Input/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(Engine 2 | PRIVATE 3 | "Input.h" 4 | "Input.cpp" 5 | ) -------------------------------------------------------------------------------- /Engine/Source/Modules/Input/Input.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | struct Scene; 7 | union SDL_Event; 8 | 9 | struct InputState 10 | { 11 | #define NKEYS 512 12 | eastl::bitset keyDowns; 13 | eastl::bitset keyUps; 14 | eastl::bitset keyStates; 15 | 16 | eastl::bitset<5> mouseDowns; 17 | eastl::bitset<5> mouseUps; 18 | eastl::bitset<5> mouseStates; 19 | 20 | float mouseXPos{ 0.0f }; 21 | float mouseYPos{ 0.0f }; 22 | float mouseXDelta{ 0.0f }; 23 | float mouseYDelta{ 0.0f }; 24 | }; 25 | 26 | namespace Input 27 | { 28 | void CreateInputState(); 29 | 30 | bool GetKeyDown(int keyCode); 31 | bool GetKeyUp(int keyCode); 32 | bool GetKeyHeld(int keyCode); 33 | 34 | bool GetMouseDown(int buttonCode); 35 | bool GetMouseUp(int buttonCode); 36 | bool GetMouseHeld(int buttonCode); 37 | 38 | Vec2f GetMouseDelta(); 39 | bool GetMouseInRelativeMode(); 40 | 41 | void ClearState(); 42 | void ClearHeldState(); 43 | void ProcessEvent(SDL_Event* event); 44 | }; -------------------------------------------------------------------------------- /Engine/Source/Modules/Rendering/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(Engine 2 | PRIVATE 3 | "GameRenderer.h" 4 | "GameRenderer.cpp" 5 | "SceneDrawSystem.h" 6 | "SceneDrawSystem.cpp" 7 | "DebugDraw.h" 8 | "DebugDraw.cpp" 9 | "ParticlesSystem.h" 10 | "ParticlesSystem.cpp" 11 | "PostProcessing.h" 12 | "PostProcessing.cpp" 13 | "FontSystem.h" 14 | "FontSystem.cpp" 15 | "RectPacking.h" 16 | "RectPacking.cpp" 17 | "SpriteDrawSystem.h" 18 | "SpriteDrawSystem.cpp" 19 | ) -------------------------------------------------------------------------------- /Engine/Source/Modules/Rendering/DebugDraw.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Vec2.h" 4 | #include "Vec3.h" 5 | #include "Vec4.h" 6 | #include "Matrix.h" 7 | #include "GraphicsDevice.h" 8 | #include "Scene.h" 9 | 10 | struct FrameContext; 11 | struct UpdateContext; 12 | 13 | namespace DebugDraw 14 | { 15 | void Draw2DCircle(Vec2f pos, float radius, Vec4f color); 16 | void Draw2DLine(Vec2f start, Vec2f end, Vec4f color); 17 | 18 | void DrawLine(Vec3f start, Vec3f end, Vec4f color); 19 | 20 | void Initialize(); 21 | void Destroy(); 22 | void OnFrame(UpdateContext& ctx, FrameContext& frameCtx); 23 | void OnFrameEnd(float deltaTime); 24 | } -------------------------------------------------------------------------------- /Engine/Source/Modules/Rendering/PostProcessing.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct FrameContext; 4 | 5 | namespace PostProcessing 6 | { 7 | void Initialize(); 8 | void Destroy(); 9 | 10 | void OnFrame(FrameContext& ctx, float deltaTime); 11 | void OnWindowResize(float newWidth, float newHeight); 12 | } 13 | -------------------------------------------------------------------------------- /Engine/Source/Modules/Rendering/RectPacking.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Packing 6 | { 7 | struct Rect 8 | { 9 | int x{ 0 }; 10 | int y{ 0 }; 11 | 12 | int w{ 0 }; 13 | int h{ 0 }; 14 | 15 | bool wasPacked{ false }; 16 | 17 | int ordering{ -1 }; 18 | }; 19 | 20 | void RowPackRects(eastl::vector& rects, int width, int height); 21 | void SkylinePackRects(eastl::vector& rects, int width, int height); 22 | } -------------------------------------------------------------------------------- /Engine/Source/Modules/Rendering/SceneDrawSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "GraphicsDevice.h" 4 | #include "AssetDatabase.h" 5 | 6 | #include "Systems.h" 7 | #include "Entity.h" 8 | #include "SpatialComponent.h" 9 | 10 | struct IComponent; 11 | 12 | struct Scene; 13 | struct Mesh; 14 | struct FrameContext; 15 | struct UpdateContext; 16 | 17 | struct Renderable : public SpatialComponent 18 | { 19 | AssetHandle shaderHandle; 20 | AssetHandle meshHandle; 21 | 22 | REFLECT_DERIVED(); 23 | }; 24 | 25 | struct SceneDrawSystem : public IWorldSystem 26 | { 27 | ~SceneDrawSystem(); 28 | 29 | virtual void Activate() override; 30 | 31 | virtual void Deactivate() override; 32 | 33 | virtual void RegisterComponent(Entity* pEntity, IComponent* pComponent) override; 34 | 35 | virtual void UnregisterComponent(Entity* pEntity, IComponent* pComponent) override; 36 | 37 | virtual void Draw(UpdateContext& ctx, FrameContext& frameCtx) override; 38 | 39 | eastl::vector renderableComponents; 40 | }; 41 | -------------------------------------------------------------------------------- /Engine/Source/Modules/Rendering/SpriteDrawSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "GraphicsDevice.h" 4 | #include "AssetDatabase.h" 5 | 6 | #include "Systems.h" 7 | #include "SpatialComponent.h" 8 | #include "Mesh.h" 9 | 10 | struct Scene; 11 | struct Mesh; 12 | struct FrameContext; 13 | struct UpdateContext; 14 | 15 | struct Sprite : public SpatialComponent 16 | { 17 | AssetHandle spriteHandle; 18 | 19 | REFLECT_DERIVED(); 20 | }; 21 | 22 | struct SpriteDrawSystem : public IWorldSystem 23 | { 24 | ~SpriteDrawSystem(); 25 | 26 | virtual void Activate() override; 27 | 28 | virtual void Deactivate() override; 29 | 30 | virtual void RegisterComponent(Entity* pEntity, IComponent* pComponent) override; 31 | 32 | virtual void UnregisterComponent(Entity* pEntity, IComponent* pComponent) override; 33 | 34 | virtual void Draw(UpdateContext& ctx, FrameContext& frameCtx) override; 35 | 36 | private: 37 | ConstBufferHandle transformBufferHandle; 38 | SamplerHandle spriteSampler; 39 | VertexShaderHandle vertShader; 40 | PixelShaderHandle pixelShader; 41 | ProgramHandle program; 42 | BlendStateHandle blendState; 43 | 44 | Primitive quadPrim; 45 | 46 | eastl::vector spriteComponents; 47 | }; 48 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EABase/.gitignore: -------------------------------------------------------------------------------- 1 | tags 2 | build 3 | build.bat 4 | 5 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EABase/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "test/packages/EAMain"] 2 | path = test/packages/EAMain 3 | url = git@github.com:electronicarts/EAMain.git 4 | [submodule "test/packages/EATest"] 5 | path = test/packages/EATest 6 | url = git@github.com:electronicarts/EATest.git 7 | [submodule "test/packages/EAStdC"] 8 | path = test/packages/EAStdC 9 | url = git@github.com:electronicarts/EAStdC.git 10 | [submodule "test/packages/EAAssert"] 11 | path = test/packages/EAAssert 12 | url = git@github.com:electronicarts/EAAssert.git 13 | [submodule "test/packages/EAThread"] 14 | path = test/packages/EAThread 15 | url = git@github.com:electronicarts/EAThread.git 16 | [submodule "test/packages/EASTL"] 17 | path = test/packages/EASTL 18 | url = git@github.com:electronicarts/EASTL.git 19 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EABase/.p4ignore: -------------------------------------------------------------------------------- 1 | tags 2 | .p4ignore 3 | 4 | /.git/ 5 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EABase/README.md: -------------------------------------------------------------------------------- 1 | # EABase 2 | 3 | [![Build Status](https://travis-ci.org/electronicarts/EABase.svg?branch=master)](https://travis-ci.org/electronicarts/EABase) 4 | 5 | EABase is a small set of header files that define platform-independent data types and macros. 6 | 7 | 8 | ## Documentation 9 | 10 | Please see [Introduction](doc/EABase.html). 11 | 12 | 13 | ## Compiling sources 14 | 15 | Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on compiling and testing the source. 16 | 17 | 18 | ## Credits 19 | 20 | Roberto Parolin is the current EABase owner within EA and is responsible for the open source repository. 21 | 22 | 23 | ## License 24 | 25 | Modified BSD License (3-Clause BSD license) see the file LICENSE in the project root. 26 | 27 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EABase/test/source/CEntryPoint.cpp: -------------------------------------------------------------------------------- 1 | // EAMain/EAEntryPointMain.inl contains C++ code but it exposes the application entry point with C linkage. 2 | 3 | #include "EAMain/EAEntryPointMain.inl" 4 | #include "EATest/EASTLNewOperatorGuard.inl" 5 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EABase/test/source/TestEABase.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | #include 6 | #include 7 | 8 | 9 | // What we do here is verify that EA_PRAGMA_ONCE_SUPPORTED works as intended. 10 | // This header file should be #included two times by TestEABase.cpp 11 | // in order to test this. 12 | 13 | #if defined(EA_PRAGMA_ONCE_SUPPORTED) 14 | #pragma once 15 | const int EABaseOncePerTranslationUnitTestVariable = 0; // This should get compiled only once ever for a compilation unit. 16 | #else 17 | // Just implement a classic manual header include guard. 18 | // In this case we aren't really testing anything. 19 | #ifndef TESTEABASE_H 20 | #define TESTEABASE_H 21 | const int EABaseOncePerTranslationUnitTestVariable = 0; 22 | #endif 23 | #endif 24 | 25 | 26 | 27 | // EA_EXTERN_TEMPLATE / EA_COMPILER_NO_EXTERN_TEMPLATE 28 | 29 | #if defined(__cplusplus) 30 | template 31 | struct eabase_template 32 | { 33 | T value; 34 | T GetValue() const { return value; } 35 | }; 36 | 37 | EA_EXTERN_TEMPLATE(struct eabase_template); 38 | #endif 39 | 40 | 41 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EABase/test/source/TestEABaseSeparate.cpp: -------------------------------------------------------------------------------- 1 | // The purpose of this compilation unit is to test EABase in the absence of other system headers. 2 | // For example TestEABase.cpp directly includes system headers like ctype.h, stddef.h, stdarg, etc. 3 | // However, these headers make it impossible to verify that certain definitions are being provided 4 | // by EABase instead of the system headers being included directly. 5 | 6 | #include 7 | 8 | // This structure tests that EABase types are properly defined. 9 | struct EABaseDefinedTypesStruct 10 | { 11 | char8_t mChar8_t; 12 | char16_t mChar16_t; 13 | char32_t mChar32_t; 14 | wchar_t mWchar_t; 15 | bool8_t mBool8_t; 16 | int8_t mInt8_t; 17 | int16_t mInt16_t; 18 | int32_t mInt32_t; 19 | int64_t mInt64_t; 20 | uint8_t mUint8_t; 21 | uint16_t mUint16_t; 22 | uint32_t mUint32_t; 23 | uint64_t mUint64_t; 24 | intmax_t mIntmax_t; 25 | uintmax_t mUintmax_t; 26 | size_t mSize_t; 27 | ssize_t mSsize_t; 28 | float_t mFloat_t; 29 | double_t mDouble_t; 30 | intptr_t mIntptr_t; 31 | uintptr_t mUintptr_t; 32 | ptrdiff_t mPtrdiff_t; 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | # http://git-scm.com/docs/gitattributes 3 | * text=auto 4 | .appveyor.yml -text eol=crlf 5 | .appveyor-mingw.yml -text eol=crlf 6 | ci-*.cmd -text eol=crlf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/.gitignore: -------------------------------------------------------------------------------- 1 | tags 2 | cscope.out 3 | **/*.swp 4 | **/*.swo 5 | .swp 6 | *.swp 7 | .swo 8 | .TMP 9 | -.d 10 | eastl_build_out 11 | build_bench 12 | bench.bat 13 | build.bat 14 | .p4config 15 | 16 | ## CMake generated files 17 | CMakeCache.txt 18 | cmake_install.cmake 19 | 20 | ## Patch files 21 | *.patch 22 | 23 | ## For Visual Studio Generated projects 24 | *.sln 25 | **/*.vcxproj 26 | **/*.vcxproj.filters 27 | *.VC.opendb 28 | *.sdf 29 | **/*.suo 30 | **/*.user 31 | .vs/* 32 | **/Debug/* 33 | CMakeFiles/* 34 | EASTL.dir/** 35 | RelWithDebInfo/* 36 | Release/* 37 | Win32/* 38 | x64/* 39 | MinSizeRel/* 40 | build*/* 41 | Testing/* 42 | %ALLUSERSPROFILE%/* 43 | 44 | # Buck 45 | /buck-out/ 46 | /.buckd/ 47 | /buckaroo/ 48 | .buckconfig.local 49 | BUCKAROO_DEPS 50 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "test/packages/EABase"] 2 | path = test/packages/EABase 3 | url = ../EABase.git 4 | [submodule "test/packages/EAAssert"] 5 | path = test/packages/EAAssert 6 | url = ../EAAssert.git 7 | [submodule "test/packages/EAMain"] 8 | path = test/packages/EAMain 9 | url = ../EAMain.git 10 | [submodule "test/packages/EAStdC"] 11 | path = test/packages/EAStdC 12 | url = ../EAStdC.git 13 | [submodule "test/packages/EATest"] 14 | path = test/packages/EATest 15 | url = ../EATest.git 16 | [submodule "test/packages/EAThread"] 17 | path = test/packages/EAThread 18 | url = ../EAThread.git 19 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/.p4ignore: -------------------------------------------------------------------------------- 1 | /.git/ 2 | tags 3 | .gitignore 4 | cscope.out 5 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/doc/quick-reference.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/EASTL/doc/quick-reference.pdf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/include/EASTL/internal/allocator_traits_fwd_decls.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | 6 | #ifndef EASTL_INTERNAL_ALLOCATOR_TRAITS_H 7 | #define EASTL_INTERNAL_ALLOCATOR_TRAITS_H 8 | 9 | 10 | #include 11 | #if defined(EA_PRAGMA_ONCE_SUPPORTED) 12 | #pragma once 13 | #endif 14 | 15 | #include 16 | #include 17 | 18 | namespace eastl 19 | { 20 | template 21 | struct allocator_traits; 22 | 23 | } // namespace eastl 24 | 25 | #endif // Header include guard 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/include/EASTL/internal/pair_fwd_decls.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | #ifndef EASTL_PAIR_FWD_DECLS_H 6 | #define EASTL_PAIR_FWD_DECLS_H 7 | 8 | #include 9 | 10 | namespace eastl 11 | { 12 | template 13 | struct pair; 14 | } 15 | 16 | #endif // EASTL_PAIR_FWD_DECLS_H 17 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/include/EASTL/version.h: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | #ifndef EASTL_VERSION_H 6 | #define EASTL_VERSION_H 7 | 8 | #include 9 | #if defined(EA_PRAGMA_ONCE_SUPPORTED) 10 | #pragma once 11 | #endif 12 | 13 | #include 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/include/EASTL/weak_ptr.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | /////////////////////////////////////////////////////////////////////////////// 4 | 5 | 6 | #ifndef EASTL_WEAK_PTR_H 7 | #define EASTL_WEAK_PTR_H 8 | 9 | 10 | // This header file is deprecated. The implementation has moved: 11 | #include 12 | 13 | 14 | #endif 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/scripts/build.sh: -------------------------------------------------------------------------------- 1 | build_folder=build 2 | 3 | rm -rf $build_folder 4 | mkdir $build_folder 5 | pushd $build_folder 6 | 7 | cmake .. -DEASTL_BUILD_TESTS:BOOL=OFF -DEASTL_BUILD_BENCHMARK:BOOL=ON 8 | cmake --build . --config Release -- -j 32 9 | 10 | cmake .. -DEASTL_BUILD_TESTS:BOOL=OFF -DEASTL_BUILD_BENCHMARK:BOOL=OFF 11 | cmake --build . --config Release -- -j 32 12 | 13 | cmake .. -DEASTL_BUILD_TESTS:BOOL=ON -DEASTL_BUILD_BENCHMARK:BOOL=OFF 14 | cmake --build . --config Release -- -j 32 15 | 16 | cmake .. -DEASTL_BUILD_TESTS:BOOL=ON -DEASTL_BUILD_BENCHMARK:BOOL=ON 17 | cmake --build . --config Release -- -j 32 18 | cmake --build . --config Debug -- -j 32 19 | cmake --build . --config RelWithDebInfo -- -j 32 20 | cmake --build . --config MinSizeRel -- -j 32 21 | pushd test 22 | ctest -C Release -V 23 | ctest -C Debug -V 24 | ctest -C RelWithDebInfo -V 25 | ctest -C MinSizeRel -V 26 | popd 27 | popd 28 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/test/source/TestCharTraits.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | #include "EASTLTest.h" 6 | #include 7 | #include 8 | 9 | 10 | template 11 | int TestCharTraits() 12 | { 13 | int nErrorCount = 0; 14 | return nErrorCount; 15 | } 16 | 17 | 18 | int TestCharTraits() 19 | { 20 | using namespace eastl; 21 | 22 | int nErrorCount = 0; 23 | 24 | nErrorCount += TestCharTraits(); 25 | nErrorCount += TestCharTraits(); 26 | nErrorCount += TestCharTraits(); 27 | nErrorCount += TestCharTraits(); 28 | 29 | return nErrorCount; 30 | } 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/test/source/TestCppCXTypeTraits.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | 6 | #include "EASTLTest.h" 7 | #include 8 | 9 | using namespace eastl; 10 | 11 | #if defined(__cplusplus_winrt) 12 | ref class Foo 13 | { 14 | 15 | }; 16 | #endif 17 | 18 | int TestCppCXTypeTraits() 19 | { 20 | int nErrorCount = 0; 21 | 22 | // We can only build this code if C++/CX is enabled 23 | #if defined(__cplusplus_winrt) 24 | { 25 | Foo^ foo = ref new Foo(); 26 | static_assert(eastl::is_pod::value == false, "Ref types are not POD"); 27 | static_assert(eastl::is_trivially_destructible::value == false, "Ref types cannot be trivially destructible"); 28 | static_assert(eastl::is_trivially_constructible::value == false, "Ref types cannot be trivially constructible"); 29 | static_assert(eastl::is_trivially_copy_constructible::value == false, "Ref types cannot be trivially copyable"); 30 | static_assert(eastl::is_trivially_copy_assignable::value == false, "Ref types cannot be trivially copyable"); 31 | } 32 | #endif 33 | 34 | return nErrorCount; 35 | } 36 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/test/source/TestIntrusiveSList.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | 6 | #include "EASTLTest.h" 7 | #include 8 | #include 9 | 10 | 11 | 12 | // Template instantations. 13 | // These tell the compiler to compile all the functions for the given class. 14 | //template class intrusive_slist; 15 | 16 | 17 | 18 | int TestIntrusiveSList() 19 | { 20 | int nErrorCount = 0; 21 | 22 | // As of this writing, we don't yet have a completed intrusive_slist implementation. 23 | // The interface is in place but the implementation hasn't been done yet. 24 | 25 | return nErrorCount; 26 | } 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/EASTL/test/source/TestSparseMatrix.cpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Electronic Arts Inc. All rights reserved. 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | 6 | #include "EASTLTest.h" 7 | #include 8 | 9 | 10 | 11 | 12 | int TestSparseMatrix() 13 | { 14 | int nErrorCount = 0; 15 | 16 | return nErrorCount; 17 | } 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/include/freetype/internal/services/svtteng.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * svtteng.h 4 | * 5 | * The FreeType TrueType engine query service (specification). 6 | * 7 | * Copyright (C) 2006-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef SVTTENG_H_ 20 | #define SVTTENG_H_ 21 | 22 | #include FT_INTERNAL_SERVICE_H 23 | #include FT_MODULE_H 24 | 25 | 26 | FT_BEGIN_HEADER 27 | 28 | 29 | /* 30 | * SFNT table loading service. 31 | */ 32 | 33 | #define FT_SERVICE_ID_TRUETYPE_ENGINE "truetype-engine" 34 | 35 | /* 36 | * Used to implement FT_Get_TrueType_Engine_Type 37 | */ 38 | 39 | FT_DEFINE_SERVICE( TrueTypeEngine ) 40 | { 41 | FT_TrueTypeEngineType engine_type; 42 | }; 43 | 44 | /* */ 45 | 46 | 47 | FT_END_HEADER 48 | 49 | 50 | #endif /* SVTTENG_H_ */ 51 | 52 | 53 | /* END */ 54 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/include/freetype/internal/services/svwinfnt.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * svwinfnt.h 4 | * 5 | * The FreeType Windows FNT/FONT service (specification). 6 | * 7 | * Copyright (C) 2003-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef SVWINFNT_H_ 20 | #define SVWINFNT_H_ 21 | 22 | #include FT_INTERNAL_SERVICE_H 23 | #include FT_WINFONTS_H 24 | 25 | 26 | FT_BEGIN_HEADER 27 | 28 | 29 | #define FT_SERVICE_ID_WINFNT "winfonts" 30 | 31 | typedef FT_Error 32 | (*FT_WinFnt_GetHeaderFunc)( FT_Face face, 33 | FT_WinFNT_HeaderRec *aheader ); 34 | 35 | 36 | FT_DEFINE_SERVICE( WinFnt ) 37 | { 38 | FT_WinFnt_GetHeaderFunc get_header; 39 | }; 40 | 41 | /* */ 42 | 43 | 44 | FT_END_HEADER 45 | 46 | 47 | #endif /* SVWINFNT_H_ */ 48 | 49 | 50 | /* END */ 51 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/afangles.h: -------------------------------------------------------------------------------- 1 | /* 2 | * afangles.h 3 | * 4 | * This is a dummy file, used to please the build system. It is never 5 | * included by the auto-fitter sources. 6 | * 7 | */ 8 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/afblue.cin: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * afblue.c 4 | * 5 | * Auto-fitter data for blue strings (body). 6 | * 7 | * Copyright (C) 2013-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #include "aftypes.h" 20 | 21 | 22 | FT_LOCAL_ARRAY_DEF( char ) 23 | af_blue_strings[] = 24 | { 25 | /* */ 26 | @AF_BLUE_STRINGS_ARRAY@ 27 | }; 28 | 29 | 30 | /* stringsets are specific to styles */ 31 | FT_LOCAL_ARRAY_DEF( AF_Blue_StringRec ) 32 | af_blue_stringsets[] = 33 | { 34 | /* */ 35 | @AF_BLUE_STRINGSETS_ARRAY@ 36 | }; 37 | 38 | 39 | /* END */ 40 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/afdummy.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * afdummy.h 4 | * 5 | * Auto-fitter dummy routines to be used if no hinting should be 6 | * performed (specification). 7 | * 8 | * Copyright (C) 2003-2019 by 9 | * David Turner, Robert Wilhelm, and Werner Lemberg. 10 | * 11 | * This file is part of the FreeType project, and may only be used, 12 | * modified, and distributed under the terms of the FreeType project 13 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 14 | * this file you indicate that you have read the license and 15 | * understand and accept it fully. 16 | * 17 | */ 18 | 19 | 20 | #ifndef AFDUMMY_H_ 21 | #define AFDUMMY_H_ 22 | 23 | #include "aftypes.h" 24 | 25 | 26 | FT_BEGIN_HEADER 27 | 28 | /* A dummy writing system used when no hinting should be performed. */ 29 | 30 | AF_DECLARE_WRITING_SYSTEM_CLASS( af_dummy_writing_system_class ) 31 | 32 | /* */ 33 | 34 | FT_END_HEADER 35 | 36 | 37 | #endif /* AFDUMMY_H_ */ 38 | 39 | 40 | /* END */ 41 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/aferrors.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * aferrors.h 4 | * 5 | * Autofitter error codes (specification only). 6 | * 7 | * Copyright (C) 2005-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the Autofitter error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef AFERRORS_H_ 27 | #define AFERRORS_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX AF_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_Autofit 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* AFERRORS_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/afindic.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * afindic.h 4 | * 5 | * Auto-fitter hinting routines for Indic writing system 6 | * (specification). 7 | * 8 | * Copyright (C) 2007-2019 by 9 | * Rahul Bhalerao , . 10 | * 11 | * This file is part of the FreeType project, and may only be used, 12 | * modified, and distributed under the terms of the FreeType project 13 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 14 | * this file you indicate that you have read the license and 15 | * understand and accept it fully. 16 | * 17 | */ 18 | 19 | 20 | #ifndef AFINDIC_H_ 21 | #define AFINDIC_H_ 22 | 23 | #include "afhints.h" 24 | 25 | 26 | FT_BEGIN_HEADER 27 | 28 | 29 | /* the `indic' writing system */ 30 | 31 | AF_DECLARE_WRITING_SYSTEM_CLASS( af_indic_writing_system_class ) 32 | 33 | 34 | /* */ 35 | 36 | FT_END_HEADER 37 | 38 | #endif /* AFINDIC_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/aflatin2.h: -------------------------------------------------------------------------------- 1 | /* ATTENTION: This file doesn't compile. It is only here as a reference */ 2 | /* of an alternative latin hinting algorithm that was always */ 3 | /* marked as experimental. */ 4 | 5 | 6 | /**************************************************************************** 7 | * 8 | * aflatin2.h 9 | * 10 | * Auto-fitter hinting routines for latin writing system 11 | * (specification). 12 | * 13 | * Copyright (C) 2003-2019 by 14 | * David Turner, Robert Wilhelm, and Werner Lemberg. 15 | * 16 | * This file is part of the FreeType project, and may only be used, 17 | * modified, and distributed under the terms of the FreeType project 18 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 19 | * this file you indicate that you have read the license and 20 | * understand and accept it fully. 21 | * 22 | */ 23 | 24 | 25 | #ifndef AFLATIN2_H_ 26 | #define AFLATIN2_H_ 27 | 28 | #include "afhints.h" 29 | 30 | 31 | FT_BEGIN_HEADER 32 | 33 | 34 | /* the `latin' writing system */ 35 | 36 | AF_DECLARE_WRITING_SYSTEM_CLASS( af_latin2_writing_system_class ) 37 | 38 | 39 | /* */ 40 | 41 | FT_END_HEADER 42 | 43 | #endif /* AFLATIN_H_ */ 44 | 45 | 46 | /* END */ 47 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/afranges.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * afranges.h 4 | * 5 | * Auto-fitter Unicode script ranges (specification). 6 | * 7 | * Copyright (C) 2013-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef AFRANGES_H_ 20 | #define AFRANGES_H_ 21 | 22 | 23 | #include "aftypes.h" 24 | 25 | 26 | FT_BEGIN_HEADER 27 | 28 | #undef SCRIPT 29 | #define SCRIPT( s, S, d, h, H, ss ) \ 30 | extern const AF_Script_UniRangeRec af_ ## s ## _uniranges[]; 31 | 32 | #include "afscript.h" 33 | 34 | #undef SCRIPT 35 | #define SCRIPT( s, S, d, h, H, ss ) \ 36 | extern const AF_Script_UniRangeRec af_ ## s ## _nonbase_uniranges[]; 37 | 38 | #include "afscript.h" 39 | 40 | /* */ 41 | 42 | FT_END_HEADER 43 | 44 | #endif /* AFRANGES_H_ */ 45 | 46 | 47 | /* END */ 48 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/autofit.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * autofit.c 4 | * 5 | * Auto-fitter module (body). 6 | * 7 | * Copyright (C) 2003-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "afangles.c" 23 | #include "afblue.c" 24 | #include "afcjk.c" 25 | #include "afdummy.c" 26 | #include "afglobal.c" 27 | #include "afhints.c" 28 | #include "afindic.c" 29 | #include "aflatin.c" 30 | #include "aflatin2.c" 31 | #include "afloader.c" 32 | #include "afmodule.c" 33 | #include "afranges.c" 34 | #include "afshaper.c" 35 | #include "afwarp.c" 36 | 37 | 38 | /* END */ 39 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/autofit/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 auto-fitter module definition 3 | # 4 | 5 | 6 | # Copyright (C) 2003-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += AUTOFIT_MODULE 17 | 18 | define AUTOFIT_MODULE 19 | $(OPEN_DRIVER) FT_Module_Class, autofit_module_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)autofit $(ECHO_DRIVER_DESC)automatic hinting module$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/base/ftbase.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ftbase.c 4 | * 5 | * Single object library component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #include 20 | #define FT_MAKE_OPTION_SINGLE_OBJECT 21 | 22 | #include "ftadvanc.c" 23 | #include "ftcalc.c" 24 | #include "ftcolor.c" 25 | #include "ftdbgmem.c" 26 | #include "fterrors.c" 27 | #include "ftfntfmt.c" 28 | #include "ftgloadr.c" 29 | #include "fthash.c" 30 | #include "ftlcdfil.c" 31 | #include "ftmac.c" 32 | #include "ftobjs.c" 33 | #include "ftoutln.c" 34 | #include "ftpsprop.c" 35 | #include "ftrfork.c" 36 | #include "ftsnames.c" 37 | #include "ftstream.c" 38 | #include "fttrigon.c" 39 | #include "ftutil.c" 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cache/ftcache.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ftcache.c 4 | * 5 | * The FreeType Caching sub-system (body only). 6 | * 7 | * Copyright (C) 2000-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "ftcbasic.c" 23 | #include "ftccache.c" 24 | #include "ftccmap.c" 25 | #include "ftcglyph.c" 26 | #include "ftcimage.c" 27 | #include "ftcmanag.c" 28 | #include "ftcmru.c" 29 | #include "ftcsbits.c" 30 | 31 | 32 | /* END */ 33 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cache/ftcerror.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ftcerror.h 4 | * 5 | * Caching sub-system error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the caching sub-system error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef FTCERROR_H_ 27 | #define FTCERROR_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX FTC_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_Cache 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* FTCERROR_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cff/cff.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * cff.c 4 | * 5 | * FreeType OpenType driver component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "cffcmap.c" 23 | #include "cffdrivr.c" 24 | #include "cffgload.c" 25 | #include "cffparse.c" 26 | #include "cffload.c" 27 | #include "cffobjs.c" 28 | 29 | /* END */ 30 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cff/cffdrivr.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * cffdrivr.h 4 | * 5 | * High-level OpenType driver interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef CFFDRIVER_H_ 20 | #define CFFDRIVER_H_ 21 | 22 | 23 | #include 24 | #include FT_INTERNAL_DRIVER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | FT_DECLARE_DRIVER( cff_driver_class ) 30 | 31 | FT_END_HEADER 32 | 33 | #endif /* CFFDRIVER_H_ */ 34 | 35 | 36 | /* END */ 37 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cff/cfferrs.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * cfferrs.h 4 | * 5 | * CFF error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the CFF error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef CFFERRS_H_ 26 | #define CFFERRS_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX CFF_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_CFF 35 | 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* CFFERRS_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cff/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 CFF module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += CFF_DRIVER 17 | 18 | define CFF_DRIVER 19 | $(OPEN_DRIVER) FT_Driver_ClassRec, cff_driver_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)cff $(ECHO_DRIVER_DESC)OpenType fonts with extension *.otf$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cid/ciderrs.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ciderrs.h 4 | * 5 | * CID error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the CID error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef CIDERRS_H_ 26 | #define CIDERRS_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX CID_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_CID 35 | 36 | #include FT_ERRORS_H 37 | 38 | #endif /* CIDERRS_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cid/cidriver.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * cidriver.h 4 | * 5 | * High-level CID driver interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef CIDRIVER_H_ 20 | #define CIDRIVER_H_ 21 | 22 | 23 | #include 24 | #include FT_INTERNAL_DRIVER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | FT_CALLBACK_TABLE 30 | const FT_Driver_ClassRec t1cid_driver_class; 31 | 32 | FT_END_HEADER 33 | 34 | #endif /* CIDRIVER_H_ */ 35 | 36 | 37 | /* END */ 38 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cid/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 CID module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += TYPE1CID_DRIVER 17 | 18 | define TYPE1CID_DRIVER 19 | $(OPEN_DRIVER) FT_Driver_ClassRec, t1cid_driver_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)cid $(ECHO_DRIVER_DESC)Postscript CID-keyed fonts, no known extension$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/cid/type1cid.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * type1cid.c 4 | * 5 | * FreeType OpenType driver component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "cidgload.c" 23 | #include "cidload.c" 24 | #include "cidobjs.c" 25 | #include "cidparse.c" 26 | #include "cidriver.c" 27 | 28 | 29 | /* END */ 30 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/gxvalid/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 gxvalid module definition 3 | # 4 | 5 | # Copyright (C) 2004-2019 by 6 | # suzuki toshiya, Masatake YAMATO, Red Hat K.K., 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += GXVALID_MODULE 17 | 18 | define GXVALID_MODULE 19 | $(OPEN_DRIVER) FT_Module_Class, gxv_module_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)gxvalid $(ECHO_DRIVER_DESC)TrueTypeGX/AAT validation module$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/gzip/infblock.h: -------------------------------------------------------------------------------- 1 | /* infblock.h -- header to use infblock.c 2 | * Copyright (C) 1995-2002 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 | #ifndef _INFBLOCK_H 12 | #define _INFBLOCK_H 13 | 14 | struct inflate_blocks_state; 15 | typedef struct inflate_blocks_state FAR inflate_blocks_statef; 16 | 17 | local inflate_blocks_statef * inflate_blocks_new OF(( 18 | z_streamp z, 19 | check_func c, /* check function */ 20 | uInt w)); /* window size */ 21 | 22 | local int inflate_blocks OF(( 23 | inflate_blocks_statef *, 24 | z_streamp , 25 | int)); /* initial return code */ 26 | 27 | local void inflate_blocks_reset OF(( 28 | inflate_blocks_statef *, 29 | z_streamp , 30 | uLongf *)); /* check value on output */ 31 | 32 | local int inflate_blocks_free OF(( 33 | inflate_blocks_statef *, 34 | z_streamp)); 35 | 36 | #endif /* _INFBLOCK_H */ 37 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/gzip/infcodes.h: -------------------------------------------------------------------------------- 1 | /* infcodes.h -- header to use infcodes.c 2 | * Copyright (C) 1995-2002 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 | #ifndef _INFCODES_H 12 | #define _INFCODES_H 13 | 14 | struct inflate_codes_state; 15 | typedef struct inflate_codes_state FAR inflate_codes_statef; 16 | 17 | local inflate_codes_statef *inflate_codes_new OF(( 18 | uInt, uInt, 19 | inflate_huft *, inflate_huft *, 20 | z_streamp )); 21 | 22 | local int inflate_codes OF(( 23 | inflate_blocks_statef *, 24 | z_streamp , 25 | int)); 26 | 27 | local void inflate_codes_free OF(( 28 | inflate_codes_statef *, 29 | z_streamp )); 30 | 31 | #endif /* _INFCODES_H */ 32 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/otvalid/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 otvalid module definition 3 | # 4 | 5 | 6 | # Copyright (C) 2004-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += OTVALID_MODULE 17 | 18 | define OTVALID_MODULE 19 | $(OPEN_DRIVER) FT_Module_Class, otv_module_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)otvalid $(ECHO_DRIVER_DESC)OpenType validation module$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/otvalid/otvalid.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * otvalid.c 4 | * 5 | * FreeType validator for OpenType tables (body only). 6 | * 7 | * Copyright (C) 2004-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "otvbase.c" 23 | #include "otvcommn.c" 24 | #include "otvgdef.c" 25 | #include "otvgpos.c" 26 | #include "otvgsub.c" 27 | #include "otvjstf.c" 28 | #include "otvmath.c" 29 | #include "otvmod.c" 30 | 31 | 32 | /* END */ 33 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/otvalid/otverror.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * otverror.h 4 | * 5 | * OpenType validation module error codes (specification only). 6 | * 7 | * Copyright (C) 2004-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the OpenType validation module error 22 | * enumeration constants. 23 | * 24 | */ 25 | 26 | #ifndef OTVERROR_H_ 27 | #define OTVERROR_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX OTV_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_OTvalid 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* OTVERROR_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/otvalid/otvgpos.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * otvgpos.h 4 | * 5 | * OpenType GPOS table validator (specification). 6 | * 7 | * Copyright (C) 2004-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef OTVGPOS_H_ 20 | #define OTVGPOS_H_ 21 | 22 | 23 | FT_BEGIN_HEADER 24 | 25 | 26 | FT_LOCAL( void ) 27 | otv_GPOS_subtable_validate( FT_Bytes table, 28 | OTV_Validator valid ); 29 | 30 | 31 | FT_END_HEADER 32 | 33 | #endif /* OTVGPOS_H_ */ 34 | 35 | 36 | /* END */ 37 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/otvalid/otvmod.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * otvmod.h 4 | * 5 | * FreeType's OpenType validation module implementation 6 | * (specification). 7 | * 8 | * Copyright (C) 2004-2019 by 9 | * David Turner, Robert Wilhelm, and Werner Lemberg. 10 | * 11 | * This file is part of the FreeType project, and may only be used, 12 | * modified, and distributed under the terms of the FreeType project 13 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 14 | * this file you indicate that you have read the license and 15 | * understand and accept it fully. 16 | * 17 | */ 18 | 19 | 20 | #ifndef OTVMOD_H_ 21 | #define OTVMOD_H_ 22 | 23 | 24 | #include 25 | #include FT_MODULE_H 26 | 27 | 28 | FT_BEGIN_HEADER 29 | 30 | 31 | FT_EXPORT_VAR( const FT_Module_Class ) otv_module_class; 32 | 33 | 34 | FT_END_HEADER 35 | 36 | #endif /* OTVMOD_H_ */ 37 | 38 | 39 | /* END */ 40 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pcf/pcferror.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pcferror.h 4 | * 5 | * PCF error codes (specification only). 6 | * 7 | * Copyright 2001, 2012 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the PCF error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef PCFERROR_H_ 26 | #define PCFERROR_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX PCF_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_PCF 35 | 36 | #include FT_ERRORS_H 37 | 38 | #endif /* PCFERROR_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pfr/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 PFR module definition 3 | # 4 | 5 | 6 | # Copyright (C) 2002-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += PFR_DRIVER 17 | 18 | define PFR_DRIVER 19 | $(OPEN_DRIVER) FT_Driver_ClassRec, pfr_driver_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)pfr $(ECHO_DRIVER_DESC)PFR/TrueDoc font files with extension *.pfr$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pfr/pfr.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pfr.c 4 | * 5 | * FreeType PFR driver component. 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "pfrcmap.c" 23 | #include "pfrdrivr.c" 24 | #include "pfrgload.c" 25 | #include "pfrload.c" 26 | #include "pfrobjs.c" 27 | #include "pfrsbit.c" 28 | 29 | 30 | /* END */ 31 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pfr/pfrcmap.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pfrcmap.h 4 | * 5 | * FreeType PFR cmap handling (specification). 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef PFRCMAP_H_ 20 | #define PFRCMAP_H_ 21 | 22 | #include 23 | #include FT_INTERNAL_OBJECTS_H 24 | #include "pfrtypes.h" 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | typedef struct PFR_CMapRec_ 30 | { 31 | FT_CMapRec cmap; 32 | FT_UInt num_chars; 33 | PFR_Char chars; 34 | 35 | } PFR_CMapRec, *PFR_CMap; 36 | 37 | 38 | FT_CALLBACK_TABLE const FT_CMap_ClassRec pfr_cmap_class_rec; 39 | 40 | FT_END_HEADER 41 | 42 | 43 | #endif /* PFRCMAP_H_ */ 44 | 45 | 46 | /* END */ 47 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pfr/pfrdrivr.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pfrdrivr.h 4 | * 5 | * High-level Type PFR driver interface (specification). 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef PFRDRIVR_H_ 20 | #define PFRDRIVR_H_ 21 | 22 | 23 | #include 24 | #include FT_INTERNAL_DRIVER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | FT_EXPORT_VAR( const FT_Driver_ClassRec ) pfr_driver_class; 30 | 31 | FT_END_HEADER 32 | 33 | 34 | #endif /* PFRDRIVR_H_ */ 35 | 36 | 37 | /* END */ 38 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pfr/pfrerror.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pfrerror.h 4 | * 5 | * PFR error codes (specification only). 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the PFR error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef PFRERROR_H_ 26 | #define PFRERROR_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX PFR_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_PFR 35 | 36 | #include FT_ERRORS_H 37 | 38 | #endif /* PFRERROR_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pfr/pfrgload.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pfrgload.h 4 | * 5 | * FreeType PFR glyph loader (specification). 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef PFRGLOAD_H_ 20 | #define PFRGLOAD_H_ 21 | 22 | #include "pfrtypes.h" 23 | 24 | FT_BEGIN_HEADER 25 | 26 | 27 | FT_LOCAL( void ) 28 | pfr_glyph_init( PFR_Glyph glyph, 29 | FT_GlyphLoader loader ); 30 | 31 | FT_LOCAL( void ) 32 | pfr_glyph_done( PFR_Glyph glyph ); 33 | 34 | 35 | FT_LOCAL( FT_Error ) 36 | pfr_glyph_load( PFR_Glyph glyph, 37 | FT_Stream stream, 38 | FT_ULong gps_offset, 39 | FT_ULong offset, 40 | FT_ULong size ); 41 | 42 | 43 | FT_END_HEADER 44 | 45 | 46 | #endif /* PFRGLOAD_H_ */ 47 | 48 | 49 | /* END */ 50 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pfr/pfrsbit.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pfrsbit.h 4 | * 5 | * FreeType PFR bitmap loader (specification). 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef PFRSBIT_H_ 20 | #define PFRSBIT_H_ 21 | 22 | #include "pfrobjs.h" 23 | 24 | FT_BEGIN_HEADER 25 | 26 | FT_LOCAL( FT_Error ) 27 | pfr_slot_load_bitmap( PFR_Slot glyph, 28 | PFR_Size size, 29 | FT_UInt glyph_index, 30 | FT_Bool metrics_only ); 31 | 32 | FT_END_HEADER 33 | 34 | #endif /* PFRSBIT_H_ */ 35 | 36 | 37 | /* END */ 38 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psaux/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 PSaux module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += PSAUX_MODULE 17 | 18 | define PSAUX_MODULE 19 | $(OPEN_DRIVER) FT_Module_Class, psaux_module_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)psaux $(ECHO_DRIVER_DESC)Postscript Type 1 & Type 2 helper module$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psaux/psaux.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * psaux.c 4 | * 5 | * FreeType auxiliary PostScript driver component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "afmparse.c" 23 | #include "psauxmod.c" 24 | #include "psconv.c" 25 | #include "psobjs.c" 26 | #include "t1cmap.c" 27 | #include "t1decode.c" 28 | #include "cffdecode.c" 29 | 30 | #include "psarrst.c" 31 | #include "psblues.c" 32 | #include "pserror.c" 33 | #include "psfont.c" 34 | #include "psft.c" 35 | #include "pshints.c" 36 | #include "psintrp.c" 37 | #include "psread.c" 38 | #include "psstack.c" 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psaux/psauxerr.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * psauxerr.h 4 | * 5 | * PS auxiliary module error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the PS auxiliary module error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef PSAUXERR_H_ 27 | #define PSAUXERR_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX PSaux_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_PSaux 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* PSAUXERR_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psaux/psauxmod.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * psauxmod.h 4 | * 5 | * FreeType auxiliary PostScript module implementation (specification). 6 | * 7 | * Copyright (C) 2000-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef PSAUXMOD_H_ 20 | #define PSAUXMOD_H_ 21 | 22 | 23 | #include 24 | #include FT_MODULE_H 25 | 26 | #include FT_INTERNAL_POSTSCRIPT_AUX_H 27 | 28 | 29 | FT_BEGIN_HEADER 30 | 31 | 32 | FT_CALLBACK_TABLE 33 | const CFF_Builder_FuncsRec cff_builder_funcs; 34 | 35 | FT_CALLBACK_TABLE 36 | const PS_Builder_FuncsRec ps_builder_funcs; 37 | 38 | 39 | FT_EXPORT_VAR( const FT_Module_Class ) psaux_driver_class; 40 | 41 | 42 | FT_END_HEADER 43 | 44 | #endif /* PSAUXMOD_H_ */ 45 | 46 | 47 | /* END */ 48 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pshinter/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 PSHinter module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += PSHINTER_MODULE 17 | 18 | define PSHINTER_MODULE 19 | $(OPEN_DRIVER) FT_Module_Class, pshinter_module_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)pshinter $(ECHO_DRIVER_DESC)Postscript hinter module$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pshinter/pshinter.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pshinter.c 4 | * 5 | * FreeType PostScript Hinting module 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "pshalgo.c" 23 | #include "pshglob.c" 24 | #include "pshmod.c" 25 | #include "pshrec.c" 26 | 27 | 28 | /* END */ 29 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pshinter/pshmod.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pshmod.h 4 | * 5 | * PostScript hinter module interface (specification). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef PSHMOD_H_ 20 | #define PSHMOD_H_ 21 | 22 | 23 | #include 24 | #include FT_MODULE_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | 30 | FT_DECLARE_MODULE( pshinter_module_class ) 31 | 32 | 33 | FT_END_HEADER 34 | 35 | 36 | #endif /* PSHMOD_H_ */ 37 | 38 | 39 | /* END */ 40 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/pshinter/pshnterr.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * pshnterr.h 4 | * 5 | * PS Hinter error codes (specification only). 6 | * 7 | * Copyright (C) 2003-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the PSHinter error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef PSHNTERR_H_ 26 | #define PSHNTERR_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX PSH_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_PShinter 35 | 36 | #include FT_ERRORS_H 37 | 38 | #endif /* PSHNTERR_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psnames/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 PSnames module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += PSNAMES_MODULE 17 | 18 | define PSNAMES_MODULE 19 | $(OPEN_DRIVER) FT_Module_Class, psnames_module_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)psnames $(ECHO_DRIVER_DESC)Postscript & Unicode Glyph name handling$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psnames/psmodule.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * psmodule.h 4 | * 5 | * High-level psnames module interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef PSMODULE_H_ 20 | #define PSMODULE_H_ 21 | 22 | 23 | #include 24 | #include FT_MODULE_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | 30 | FT_DECLARE_MODULE( psnames_module_class ) 31 | 32 | 33 | FT_END_HEADER 34 | 35 | #endif /* PSMODULE_H_ */ 36 | 37 | 38 | /* END */ 39 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psnames/psnamerr.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * psnamerr.h 4 | * 5 | * PS names module error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the PS names module error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef PSNAMERR_H_ 27 | #define PSNAMERR_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX PSnames_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_PSnames 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* PSNAMERR_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/psnames/psnames.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * psnames.c 4 | * 5 | * FreeType psnames module component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "psmodule.c" 23 | 24 | 25 | /* END */ 26 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/raster/ftraster.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ftraster.h 4 | * 5 | * The FreeType glyph rasterizer (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used 11 | * modified and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef FTRASTER_H_ 20 | #define FTRASTER_H_ 21 | 22 | 23 | #include 24 | #include FT_CONFIG_CONFIG_H 25 | #include FT_IMAGE_H 26 | 27 | 28 | FT_BEGIN_HEADER 29 | 30 | 31 | /************************************************************************** 32 | * 33 | * Uncomment the following line if you are using ftraster.c as a 34 | * standalone module, fully independent of FreeType. 35 | */ 36 | /* #define STANDALONE_ */ 37 | 38 | FT_EXPORT_VAR( const FT_Raster_Funcs ) ft_standard_raster; 39 | 40 | 41 | FT_END_HEADER 42 | 43 | #endif /* FTRASTER_H_ */ 44 | 45 | 46 | /* END */ 47 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/raster/ftrend1.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ftrend1.h 4 | * 5 | * The FreeType glyph rasterizer interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef FTREND1_H_ 20 | #define FTREND1_H_ 21 | 22 | 23 | #include 24 | #include FT_RENDER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | 30 | FT_DECLARE_RENDERER( ft_raster1_renderer_class ) 31 | 32 | 33 | FT_END_HEADER 34 | 35 | #endif /* FTREND1_H_ */ 36 | 37 | 38 | /* END */ 39 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/raster/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 renderer module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += RASTER_MODULE 17 | 18 | define RASTER_MODULE 19 | $(OPEN_DRIVER) FT_Renderer_Class, ft_raster1_renderer_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)raster $(ECHO_DRIVER_DESC)monochrome bitmap renderer$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/raster/raster.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * raster.c 4 | * 5 | * FreeType monochrome rasterer module component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "ftraster.c" 23 | #include "ftrend1.c" 24 | 25 | 26 | /* END */ 27 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/raster/rasterrs.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * rasterrs.h 4 | * 5 | * monochrome renderer error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the monochrome renderer error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef RASTERRS_H_ 27 | #define RASTERRS_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX Raster_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_Raster 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* RASTERRS_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 SFNT module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += SFNT_MODULE 17 | 18 | define SFNT_MODULE 19 | $(OPEN_DRIVER) FT_Module_Class, sfnt_module_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)sfnt $(ECHO_DRIVER_DESC)helper module for TrueType & OpenType formats$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/sfdriver.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * sfdriver.h 4 | * 5 | * High-level SFNT driver interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef SFDRIVER_H_ 20 | #define SFDRIVER_H_ 21 | 22 | 23 | #include 24 | #include FT_MODULE_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | FT_DECLARE_MODULE( sfnt_module_class ) 30 | 31 | FT_END_HEADER 32 | 33 | #endif /* SFDRIVER_H_ */ 34 | 35 | 36 | /* END */ 37 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/sferrors.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * sferrors.h 4 | * 5 | * SFNT error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the SFNT error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef SFERRORS_H_ 26 | #define SFERRORS_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX SFNT_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_SFNT 35 | 36 | #include FT_ERRORS_H 37 | 38 | #endif /* SFERRORS_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/sfnt.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * sfnt.c 4 | * 5 | * Single object library component. 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "pngshim.c" 23 | #include "sfdriver.c" 24 | #include "sfobjs.c" 25 | #include "sfwoff.c" 26 | #include "ttbdf.c" 27 | #include "ttcmap.c" 28 | #include "ttcolr.c" 29 | #include "ttcpal.c" 30 | 31 | #include "ttkern.c" 32 | #include "ttload.c" 33 | #include "ttmtx.c" 34 | #include "ttpost.c" 35 | #include "ttsbit.c" 36 | 37 | 38 | /* END */ 39 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/sfwoff.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * sfwoff.h 4 | * 5 | * WOFFF format management (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef SFWOFF_H_ 20 | #define SFWOFF_H_ 21 | 22 | 23 | #include 24 | #include FT_INTERNAL_SFNT_H 25 | #include FT_INTERNAL_OBJECTS_H 26 | 27 | 28 | FT_BEGIN_HEADER 29 | 30 | 31 | FT_LOCAL( FT_Error ) 32 | woff_open_font( FT_Stream stream, 33 | TT_Face face ); 34 | 35 | 36 | FT_END_HEADER 37 | 38 | #endif /* SFWOFF_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/ttbdf.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ttbdf.h 4 | * 5 | * TrueType and OpenType embedded BDF properties (specification). 6 | * 7 | * Copyright (C) 2005-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef TTBDF_H_ 20 | #define TTBDF_H_ 21 | 22 | 23 | #include 24 | #include "ttload.h" 25 | #include FT_BDF_H 26 | 27 | 28 | FT_BEGIN_HEADER 29 | 30 | 31 | #ifdef TT_CONFIG_OPTION_BDF 32 | 33 | FT_LOCAL( void ) 34 | tt_face_free_bdf_props( TT_Face face ); 35 | 36 | 37 | FT_LOCAL( FT_Error ) 38 | tt_face_find_bdf_prop( TT_Face face, 39 | const char* property_name, 40 | BDF_PropertyRec *aprop ); 41 | 42 | #endif /* TT_CONFIG_OPTION_BDF */ 43 | 44 | 45 | FT_END_HEADER 46 | 47 | #endif /* TTBDF_H_ */ 48 | 49 | 50 | /* END */ 51 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/ttcpal.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ttcpal.h 4 | * 5 | * TrueType and OpenType color palette support (specification). 6 | * 7 | * Copyright (C) 2018-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * Originally written by Shao Yu Zhang . 11 | * 12 | * This file is part of the FreeType project, and may only be used, 13 | * modified, and distributed under the terms of the FreeType project 14 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 15 | * this file you indicate that you have read the license and 16 | * understand and accept it fully. 17 | * 18 | */ 19 | 20 | 21 | #ifndef __TTCPAL_H__ 22 | #define __TTCPAL_H__ 23 | 24 | 25 | #include 26 | #include "ttload.h" 27 | 28 | 29 | FT_BEGIN_HEADER 30 | 31 | 32 | FT_LOCAL( FT_Error ) 33 | tt_face_load_cpal( TT_Face face, 34 | FT_Stream stream ); 35 | 36 | FT_LOCAL( void ) 37 | tt_face_free_cpal( TT_Face face ); 38 | 39 | FT_LOCAL( FT_Error ) 40 | tt_face_palette_set( TT_Face face, 41 | FT_UInt palette_index ); 42 | 43 | 44 | FT_END_HEADER 45 | 46 | 47 | #endif /* __TTCPAL_H__ */ 48 | 49 | /* END */ 50 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/sfnt/ttpost.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ttpost.h 4 | * 5 | * PostScript name table processing for TrueType and OpenType fonts 6 | * (specification). 7 | * 8 | * Copyright (C) 1996-2019 by 9 | * David Turner, Robert Wilhelm, and Werner Lemberg. 10 | * 11 | * This file is part of the FreeType project, and may only be used, 12 | * modified, and distributed under the terms of the FreeType project 13 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 14 | * this file you indicate that you have read the license and 15 | * understand and accept it fully. 16 | * 17 | */ 18 | 19 | 20 | #ifndef TTPOST_H_ 21 | #define TTPOST_H_ 22 | 23 | 24 | #include 25 | #include FT_CONFIG_CONFIG_H 26 | #include FT_INTERNAL_TRUETYPE_TYPES_H 27 | 28 | 29 | FT_BEGIN_HEADER 30 | 31 | 32 | FT_LOCAL( FT_Error ) 33 | tt_face_get_ps_name( TT_Face face, 34 | FT_UInt idx, 35 | FT_String** PSname ); 36 | 37 | FT_LOCAL( void ) 38 | tt_face_free_ps_names( TT_Face face ); 39 | 40 | 41 | FT_END_HEADER 42 | 43 | #endif /* TTPOST_H_ */ 44 | 45 | 46 | /* END */ 47 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/smooth/ftsmerrs.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ftsmerrs.h 4 | * 5 | * smooth renderer error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the smooth renderer error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef FTSMERRS_H_ 27 | #define FTSMERRS_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX Smooth_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_Smooth 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* FTSMERRS_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/smooth/ftsmooth.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ftsmooth.h 4 | * 5 | * Anti-aliasing renderer interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef FTSMOOTH_H_ 20 | #define FTSMOOTH_H_ 21 | 22 | 23 | #include 24 | #include FT_RENDER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | 30 | FT_DECLARE_RENDERER( ft_smooth_renderer_class ) 31 | 32 | FT_DECLARE_RENDERER( ft_smooth_lcd_renderer_class ) 33 | 34 | FT_DECLARE_RENDERER( ft_smooth_lcdv_renderer_class ) 35 | 36 | 37 | FT_END_HEADER 38 | 39 | #endif /* FTSMOOTH_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/smooth/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 smooth renderer module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += SMOOTH_RENDERER 17 | 18 | define SMOOTH_RENDERER 19 | $(OPEN_DRIVER) FT_Renderer_Class, ft_smooth_renderer_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer$(ECHO_DRIVER_DONE) 21 | $(OPEN_DRIVER) FT_Renderer_Class, ft_smooth_lcd_renderer_class $(CLOSE_DRIVER) 22 | $(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer for LCDs$(ECHO_DRIVER_DONE) 23 | $(OPEN_DRIVER) FT_Renderer_Class, ft_smooth_lcdv_renderer_class $(CLOSE_DRIVER) 24 | $(ECHO_DRIVER)smooth $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer for vertical LCDs$(ECHO_DRIVER_DONE) 25 | endef 26 | 27 | # EOF 28 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/smooth/smooth.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * smooth.c 4 | * 5 | * FreeType anti-aliasing rasterer module component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "ftgrays.c" 23 | #include "ftsmooth.c" 24 | 25 | 26 | /* END */ 27 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/truetype/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 TrueType module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += TRUETYPE_DRIVER 17 | 18 | define TRUETYPE_DRIVER 19 | $(OPEN_DRIVER) FT_Driver_ClassRec, tt_driver_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)truetype $(ECHO_DRIVER_DESC)Windows/Mac font files with extension *.ttf or *.ttc$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/truetype/truetype.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * truetype.c 4 | * 5 | * FreeType TrueType driver component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "ttdriver.c" /* driver interface */ 23 | #include "ttgload.c" /* glyph loader */ 24 | #include "ttgxvar.c" /* gx distortable font */ 25 | #include "ttinterp.c" 26 | #include "ttobjs.c" /* object manager */ 27 | #include "ttpload.c" /* tables loader */ 28 | #include "ttsubpix.c" 29 | 30 | 31 | /* END */ 32 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/truetype/ttdriver.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * ttdriver.h 4 | * 5 | * High-level TrueType driver interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef TTDRIVER_H_ 20 | #define TTDRIVER_H_ 21 | 22 | 23 | #include 24 | #include FT_INTERNAL_DRIVER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | FT_DECLARE_DRIVER( tt_driver_class ) 30 | 31 | FT_END_HEADER 32 | 33 | #endif /* TTDRIVER_H_ */ 34 | 35 | 36 | /* END */ 37 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/truetype/tterrors.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * tterrors.h 4 | * 5 | * TrueType error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the TrueType error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef TTERRORS_H_ 27 | #define TTERRORS_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX TT_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_TrueType 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* TTERRORS_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type1/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 Type1 module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += TYPE1_DRIVER 17 | 18 | define TYPE1_DRIVER 19 | $(OPEN_DRIVER) FT_Driver_ClassRec, t1_driver_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)type1 $(ECHO_DRIVER_DESC)Postscript font files with extension *.pfa or *.pfb$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type1/t1driver.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * t1driver.h 4 | * 5 | * High-level Type 1 driver interface (specification). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef T1DRIVER_H_ 20 | #define T1DRIVER_H_ 21 | 22 | 23 | #include 24 | #include FT_INTERNAL_DRIVER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | FT_EXPORT_VAR( const FT_Driver_ClassRec ) t1_driver_class; 30 | 31 | FT_END_HEADER 32 | 33 | #endif /* T1DRIVER_H_ */ 34 | 35 | 36 | /* END */ 37 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type1/t1errors.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * t1errors.h 4 | * 5 | * Type 1 error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the Type 1 error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef T1ERRORS_H_ 26 | #define T1ERRORS_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX T1_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_Type1 35 | 36 | #include FT_ERRORS_H 37 | 38 | #endif /* T1ERRORS_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type1/type1.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * type1.c 4 | * 5 | * FreeType Type 1 driver component (body only). 6 | * 7 | * Copyright (C) 1996-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "t1afm.c" 23 | #include "t1driver.c" 24 | #include "t1gload.c" 25 | #include "t1load.c" 26 | #include "t1objs.c" 27 | #include "t1parse.c" 28 | 29 | 30 | /* END */ 31 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type42/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 Type42 module definition 3 | # 4 | 5 | 6 | # Copyright (C) 2002-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += TYPE42_DRIVER 17 | 18 | define TYPE42_DRIVER 19 | $(OPEN_DRIVER) FT_Driver_ClassRec, t42_driver_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)type42 $(ECHO_DRIVER_DESC)Type 42 font files with no known extension$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type42/t42drivr.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * t42drivr.h 4 | * 5 | * High-level Type 42 driver interface (specification). 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * Roberto Alameda. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #ifndef T42DRIVR_H_ 20 | #define T42DRIVR_H_ 21 | 22 | 23 | #include 24 | #include FT_INTERNAL_DRIVER_H 25 | 26 | 27 | FT_BEGIN_HEADER 28 | 29 | FT_EXPORT_VAR( const FT_Driver_ClassRec ) t42_driver_class; 30 | 31 | FT_END_HEADER 32 | 33 | 34 | #endif /* T42DRIVR_H_ */ 35 | 36 | 37 | /* END */ 38 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type42/t42error.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * t42error.h 4 | * 5 | * Type 42 error codes (specification only). 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the Type 42 error enumeration constants. 22 | * 23 | */ 24 | 25 | #ifndef T42ERROR_H_ 26 | #define T42ERROR_H_ 27 | 28 | #include FT_MODULE_ERRORS_H 29 | 30 | #undef FTERRORS_H_ 31 | 32 | #undef FT_ERR_PREFIX 33 | #define FT_ERR_PREFIX T42_Err_ 34 | #define FT_ERR_BASE FT_Mod_Err_Type42 35 | 36 | #include FT_ERRORS_H 37 | 38 | #endif /* T42ERROR_H_ */ 39 | 40 | 41 | /* END */ 42 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/type42/type42.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * type42.c 4 | * 5 | * FreeType Type 42 driver component. 6 | * 7 | * Copyright (C) 2002-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | #define FT_MAKE_OPTION_SINGLE_OBJECT 20 | #include 21 | 22 | #include "t42drivr.c" 23 | #include "t42objs.c" 24 | #include "t42parse.c" 25 | 26 | 27 | /* END */ 28 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/winfonts/fnterrs.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * 3 | * fnterrs.h 4 | * 5 | * Win FNT/FON error codes (specification only). 6 | * 7 | * Copyright (C) 2001-2019 by 8 | * David Turner, Robert Wilhelm, and Werner Lemberg. 9 | * 10 | * This file is part of the FreeType project, and may only be used, 11 | * modified, and distributed under the terms of the FreeType project 12 | * license, LICENSE.TXT. By continuing to use, modify, or distribute 13 | * this file you indicate that you have read the license and 14 | * understand and accept it fully. 15 | * 16 | */ 17 | 18 | 19 | /************************************************************************** 20 | * 21 | * This file is used to define the Windows FNT/FON error enumeration 22 | * constants. 23 | * 24 | */ 25 | 26 | #ifndef FNTERRS_H_ 27 | #define FNTERRS_H_ 28 | 29 | #include FT_MODULE_ERRORS_H 30 | 31 | #undef FTERRORS_H_ 32 | 33 | #undef FT_ERR_PREFIX 34 | #define FT_ERR_PREFIX FNT_Err_ 35 | #define FT_ERR_BASE FT_Mod_Err_Winfonts 36 | 37 | #include FT_ERRORS_H 38 | 39 | #endif /* FNTERRS_H_ */ 40 | 41 | 42 | /* END */ 43 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/FreeType/src/winfonts/module.mk: -------------------------------------------------------------------------------- 1 | # 2 | # FreeType 2 Windows FNT/FON module definition 3 | # 4 | 5 | 6 | # Copyright (C) 1996-2019 by 7 | # David Turner, Robert Wilhelm, and Werner Lemberg. 8 | # 9 | # This file is part of the FreeType project, and may only be used, modified, 10 | # and distributed under the terms of the FreeType project license, 11 | # LICENSE.TXT. By continuing to use, modify, or distribute this file you 12 | # indicate that you have read the license and understand and accept it 13 | # fully. 14 | 15 | 16 | FTMODULE_H_COMMANDS += WINDOWS_DRIVER 17 | 18 | define WINDOWS_DRIVER 19 | $(OPEN_DRIVER) FT_Driver_ClassRec, winfnt_driver_class $(CLOSE_DRIVER) 20 | $(ECHO_DRIVER)winfnt $(ECHO_DRIVER_DESC)Windows bitmap fonts with extension *.fnt or *.fon$(ECHO_DRIVER_DONE) 21 | endef 22 | 23 | # EOF 24 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ['https://github.com/ocornut/imgui/wiki/Sponsors'] 2 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | (Click "Preview" to turn any http URL into a clickable link) 2 | 3 | PLEASE CAREFULLY READ: 4 | https://github.com/ocornut/imgui/issues/2261 5 | 6 | (Clear this template before submitting your PR) 7 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(Imgui) 2 | 3 | set(SOURCES 4 | "imgui.cpp" 5 | "imgui_demo.cpp" 6 | "imgui_draw.cpp" 7 | "imgui_widgets.cpp" 8 | "imconfig.h" 9 | "imgui.h" 10 | "imgui_internal.h" 11 | "imstb_rectpack.h" 12 | "imstb_textedit.h" 13 | "imstb_truetype.h" 14 | "misc/cpp/imgui_stdlib.cpp" 15 | "misc/cpp/imgui_stdlib.h" 16 | "misc/freetype/imgui_freetype.cpp" 17 | "misc/freetype/imgui_freetype.h" 18 | "examples/imgui_impl_dx11.cpp" 19 | "examples/imgui_impl_dx11.h" 20 | "examples/imgui_impl_sdl.cpp" 21 | "examples/imgui_impl_sdl.h" 22 | ) 23 | 24 | include_directories("../../" "/") 25 | add_library (Imgui ${SOURCES}) -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014-2020 Omar Cornut 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_allegro5/imconfig_allegro5.h: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // COMPILE-TIME OPTIONS FOR DEAR IMGUI ALLEGRO 5 EXAMPLE 3 | // See imconfig.h for the full template 4 | // Because Allegro doesn't support 16-bit vertex indices, we enable the compile-time option of imgui to use 32-bit indices 5 | //----------------------------------------------------------------------------- 6 | 7 | #pragma once 8 | 9 | // Use 32-bit vertex indices because Allegro doesn't support 16-bit ones 10 | // This allows us to avoid converting vertices format at runtime 11 | #define ImDrawIdx int 12 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/README.md: -------------------------------------------------------------------------------- 1 | # iOS / OSX Metal example 2 | 3 | ## Introduction 4 | 5 | This example shows how to integrate Dear ImGui with Metal. It is based on the "cross-platform" game template provided with Xcode as of Xcode 9. 6 | 7 | Consider basing your work off the example_glfw_metal/ or example_sdl_metal/ examples. They are better supported and will be portable unlike this one. 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/Shared/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if TARGET_OS_IPHONE 4 | 5 | #import 6 | 7 | @interface AppDelegate : UIResponder 8 | @property (strong, nonatomic) UIWindow *window; 9 | @end 10 | 11 | #else 12 | 13 | #import 14 | 15 | @interface AppDelegate : NSObject 16 | @end 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/Shared/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | @implementation AppDelegate 4 | 5 | #if TARGET_OS_OSX 6 | - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { 7 | return YES; 8 | } 9 | #endif 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/Shared/Renderer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface Renderer : NSObject 4 | 5 | -(nonnull instancetype)initWithView:(nonnull MTKView *)view; 6 | 7 | @end 8 | 9 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/Shared/ViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "Renderer.h" 4 | 5 | #if TARGET_OS_IPHONE 6 | 7 | #import 8 | 9 | @interface ViewController : UIViewController 10 | @end 11 | 12 | #else 13 | 14 | #import 15 | 16 | @interface ViewController : NSViewController 17 | @end 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/Shared/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if TARGET_OS_IPHONE 4 | 5 | #import 6 | #import "AppDelegate.h" 7 | 8 | int main(int argc, char * argv[]) { 9 | @autoreleasepool { 10 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 11 | } 12 | } 13 | 14 | #else 15 | 16 | #import 17 | 18 | int main(int argc, const char * argv[]) { 19 | return NSApplicationMain(argc, argv); 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/iOS/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/iOS/Default-568h@2x.png -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_apple_metal/macOS/Info-macOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | imgui 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | Copyright © 2018 Warren Moore. All rights reserved. 27 | NSMainStoryboardFile 28 | Main 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_metal/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # You will need GLFW (http://www.glfw.org): 3 | # brew install glfw 4 | # 5 | 6 | #CXX = g++ 7 | #CXX = clang++ 8 | 9 | EXE = example_glfw_metal 10 | SOURCES = main.mm 11 | SOURCES += ../imgui_impl_glfw.cpp ../imgui_impl_metal.mm 12 | SOURCES += ../../imgui.cpp ../../imgui_widgets.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp 13 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) 14 | 15 | LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore 16 | LIBS += -L/usr/local/lib -lglfw 17 | 18 | CXXFLAGS = -I../ -I../../ -I/usr/local/include 19 | CXXFLAGS += -Wall -Wformat 20 | CFLAGS = $(CXXFLAGS) 21 | 22 | %.o:%.cpp 23 | $(CXX) $(CXXFLAGS) -c -o $@ $< 24 | 25 | %.o:../%.cpp 26 | $(CXX) $(CXXFLAGS) -c -o $@ $< 27 | 28 | %.o:../../%.cpp 29 | $(CXX) $(CXXFLAGS) -c -o $@ $< 30 | 31 | %.o:../%.mm 32 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< 33 | 34 | %.o:%.mm 35 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< 36 | 37 | all: $(EXE) 38 | @echo Build complete 39 | 40 | $(EXE): $(OBJS) 41 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) 42 | 43 | clean: 44 | rm -f $(EXE) $(OBJS) 45 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_opengl2/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include *.cpp ..\imgui_impl_opengl2.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_opengl2.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib 4 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_opengl3/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I ..\libs\gl3w *.cpp ..\imgui_impl_glfw.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/example_glfw_opengl3.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib 4 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_vulkan/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | 3 | mkdir Debug 4 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_vulkan.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 5 | 6 | mkdir Release 7 | cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/example_glfw_vulkan.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 8 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_vulkan/build_win64.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of amd64/vcvars32.bat to setup 64-bit command-line compiler. 2 | 3 | mkdir Debug 4 | cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_vulkan.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 5 | 6 | mkdir Release 7 | cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/example_glfw_vulkan.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 8 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_vulkan/gen_spv.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | glslangValidator -V -x -o glsl_shader.frag.u32 glsl_shader.frag 3 | glslangValidator -V -x -o glsl_shader.vert.u32 glsl_shader.vert 4 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_vulkan/glsl_shader.frag: -------------------------------------------------------------------------------- 1 | #version 450 core 2 | layout(location = 0) out vec4 fColor; 3 | 4 | layout(set=0, binding=0) uniform sampler2D sTexture; 5 | 6 | layout(location = 0) in struct { 7 | vec4 Color; 8 | vec2 UV; 9 | } In; 10 | 11 | void main() 12 | { 13 | fColor = In.Color * texture(sTexture, In.UV.st); 14 | } 15 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_glfw_vulkan/glsl_shader.vert: -------------------------------------------------------------------------------- 1 | #version 450 core 2 | layout(location = 0) in vec2 aPos; 3 | layout(location = 1) in vec2 aUV; 4 | layout(location = 2) in vec4 aColor; 5 | 6 | layout(push_constant) uniform uPushConstant { 7 | vec2 uScale; 8 | vec2 uTranslate; 9 | } pc; 10 | 11 | out gl_PerVertex { 12 | vec4 gl_Position; 13 | }; 14 | 15 | layout(location = 0) out struct { 16 | vec4 Color; 17 | vec2 UV; 18 | } Out; 19 | 20 | void main() 21 | { 22 | Out.Color = aColor; 23 | Out.UV = aUV; 24 | gl_Position = vec4(aPos * pc.uScale + pc.uTranslate, 0, 1); 25 | } 26 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_marmalade/data/app.icf: -------------------------------------------------------------------------------- 1 | # This file is for configuration settings for your 2 | # application. 3 | # 4 | # The syntax is similar to windows .ini files ie 5 | # 6 | # [GroupName] 7 | # Setting = Value 8 | # 9 | # Which can be read by your application using 10 | # e.g s3eConfigGetString("GroupName", "Setting", string) 11 | # 12 | # All settings must be documented in .config.txt files. 13 | # New settings specific to this application should be 14 | # documented in app.config.txt 15 | # 16 | # Some conditional operations are also permitted, see the 17 | # S3E documentation for details. 18 | 19 | [S3E] 20 | MemSize=6000000 21 | MemSizeDebug=6000000 22 | DispFixRot=FixedLandscape 23 | 24 | # emulate iphone 5 resolution, change these settings to emulate other display resolution 25 | WinWidth=1136 26 | WinHeight=640 27 | 28 | [GX] 29 | DataCacheSize=131070 30 | 31 | [Util] 32 | #MemoryBreakpoint=1282 33 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_marmalade/marmalade_example.mkb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env mkb 2 | 3 | # ImGui - standalone example application for Marmalade 4 | # Copyright (C) 2015 by Giovanni Zito 5 | # This file is part of ImGui 6 | # https://github.com/ocornut/imgui 7 | 8 | define IMGUI_DISABLE_INCLUDE_IMCONFIG_H 9 | define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS 10 | define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS 11 | define _snprintf=snprintf 12 | 13 | options 14 | { 15 | optimise-speed=1 16 | } 17 | 18 | includepaths 19 | { 20 | .. 21 | ../.. 22 | } 23 | 24 | subprojects 25 | { 26 | iwgx 27 | } 28 | 29 | files 30 | { 31 | (.) 32 | ["imgui"] 33 | ../../imgui.cpp 34 | ../../imgui_demo.cpp 35 | ../../imgui_draw.cpp 36 | ../../imgui_widgets.cpp 37 | ../../imconfig.h 38 | ../../imgui.h 39 | ../../imgui_internal.h 40 | 41 | ["imgui","Marmalade binding"] 42 | ../imgui_impl_marmalade.h 43 | ../imgui_impl_marmalade.cpp 44 | main.cpp 45 | 46 | } 47 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_null/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I ..\.. %* *.cpp ..\..\*.cpp /FeDebug/example_null.exe /FoDebug/ /link gdi32.lib shell32.lib 4 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_null/main.cpp: -------------------------------------------------------------------------------- 1 | // dear imgui: "null" example application 2 | // (compile and link imgui, create context, run headless with NO INPUTS, NO GRAPHICS OUTPUT) 3 | // This is useful to test building, but you cannot interact with anything here! 4 | #include "imgui.h" 5 | #include 6 | 7 | int main(int, char**) 8 | { 9 | IMGUI_CHECKVERSION(); 10 | ImGui::CreateContext(); 11 | ImGuiIO& io = ImGui::GetIO(); 12 | 13 | // Build atlas 14 | unsigned char* tex_pixels = NULL; 15 | int tex_w, tex_h; 16 | io.Fonts->GetTexDataAsRGBA32(&tex_pixels, &tex_w, &tex_h); 17 | 18 | for (int n = 0; n < 20; n++) 19 | { 20 | printf("NewFrame() %d\n", n); 21 | io.DisplaySize = ImVec2(1920, 1080); 22 | io.DeltaTime = 1.0f / 60.0f; 23 | ImGui::NewFrame(); 24 | 25 | static float f = 0.0f; 26 | ImGui::Text("Hello, world!"); 27 | ImGui::SliderFloat("float", &f, 0.0f, 1.0f); 28 | ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); 29 | ImGui::ShowDemoWindow(NULL); 30 | 31 | ImGui::Render(); 32 | } 33 | 34 | printf("DestroyContext()\n"); 35 | ImGui::DestroyContext(); 36 | return 0; 37 | } 38 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_sdl_directx11/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | set OUT_DIR=Debug 3 | set OUT_EXE=example_sdl_directx11 4 | set INCLUDES=/I.. /I..\.. /I%SDL2_DIR%\include /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" 5 | set SOURCES=main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_dx11.cpp ..\..\imgui*.cpp 6 | set LIBS=/libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_sdl_metal/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # You will need SDL2 (http://www.libsdl.org): 3 | # brew install sdl2 4 | # 5 | 6 | #CXX = g++ 7 | #CXX = clang++ 8 | 9 | EXE = example_sdl_metal 10 | SOURCES = main.mm 11 | SOURCES += ../imgui_impl_sdl.cpp ../imgui_impl_metal.mm 12 | SOURCES += ../../imgui.cpp ../../imgui_widgets.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp 13 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) 14 | 15 | LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore 16 | LIBS += `sdl2-config --libs` 17 | LIBS += -L/usr/local/lib 18 | 19 | CXXFLAGS = -I../ -I../../ -I/usr/local/include 20 | CXXFLAGS += `sdl2-config --cflags` 21 | CXXFLAGS += -Wall -Wformat 22 | CFLAGS = $(CXXFLAGS) 23 | 24 | %.o:%.cpp 25 | $(CXX) $(CXXFLAGS) -c -o $@ $< 26 | 27 | %.o:../%.cpp 28 | $(CXX) $(CXXFLAGS) -c -o $@ $< 29 | 30 | %.o:../../%.cpp 31 | $(CXX) $(CXXFLAGS) -c -o $@ $< 32 | 33 | %.o:../%.mm 34 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< 35 | 36 | %.o:%.mm 37 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $< 38 | 39 | all: $(EXE) 40 | @echo Build complete 41 | 42 | $(EXE): $(OBJS) 43 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS) 44 | 45 | clean: 46 | rm -f $(EXE) $(OBJS) 47 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_sdl_opengl2/README.md: -------------------------------------------------------------------------------- 1 | 2 | # How to Build 3 | 4 | - On Windows with Visual Studio's CLI 5 | 6 | ``` 7 | set SDL2_DIR=path_to_your_sdl2_folder 8 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console 9 | # ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries 10 | # or for 64-bit: 11 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console 12 | ``` 13 | 14 | - On Linux and similar Unixes 15 | 16 | ``` 17 | c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL 18 | ``` 19 | 20 | - On Mac OS X 21 | 22 | ``` 23 | brew install sdl2 24 | c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl 25 | ``` 26 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_sdl_opengl2/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | set OUT_DIR=Debug 3 | set OUT_EXE=example_sdl_opengl2 4 | set INCLUDES=/I.. /I..\.. /I%SDL2_DIR%\include 5 | set SOURCES=main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl2.cpp ..\..\imgui*.cpp 6 | set LIBS=/libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_sdl_opengl3/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | set OUT_DIR=Debug 3 | set OUT_EXE=example_sdl_opengl3 4 | set INCLUDES=/I.. /I..\.. /I%SDL2_DIR%\include /I..\libs\gl3w 5 | set SOURCES=main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c 6 | set LIBS=/libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_win32_directx10/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_win32.cpp ..\imgui_impl_dx10.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx10.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib 4 | 5 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_win32_directx11/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx11.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx11.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib 4 | 5 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_win32_directx12/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @REM Important: to build on 32-bit systems, the DX12 back-ends needs '#define ImTextureID ImU64', so we pass it here. 3 | mkdir Debug 4 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /D ImTextureID=ImU64 /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx12.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx12.exe /FoDebug/ /link d3d12.lib d3dcompiler.lib dxgi.lib 5 | 6 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/example_win32_directx9/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I .. /I ..\.. /I "%DXSDK_DIR%/Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx9.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx9.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib 4 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/imgui_impl_osx.h: -------------------------------------------------------------------------------- 1 | // dear imgui: Platform Binding for OSX / Cocoa 2 | // This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..) 3 | // [ALPHA] Early bindings, not well tested. If you want a portable application, prefer using the GLFW or SDL platform bindings on Mac. 4 | 5 | // Implemented features: 6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. 7 | // [X] Platform: OSX clipboard is supported within core Dear ImGui (no specific code in this back-end). 8 | // Issues: 9 | // [ ] Platform: Keys are all generally very broken. Best using [event keycode] and not [event characters].. 10 | // [ ] Platform: Multi-viewport / platform windows. 11 | 12 | #include "imgui.h" // IMGUI_IMPL_API 13 | 14 | @class NSEvent; 15 | @class NSView; 16 | 17 | IMGUI_IMPL_API bool ImGui_ImplOSX_Init(); 18 | IMGUI_IMPL_API void ImGui_ImplOSX_Shutdown(); 19 | IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(NSView* _Nullable view); 20 | IMGUI_IMPL_API bool ImGui_ImplOSX_HandleEvent(NSEvent* _Nonnull event, NSView* _Nullable view); 21 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/libs/glfw/COPYING.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2006 Marcus Geelnard 2 | Copyright (c) 2006-2010 Camilla Berglund 3 | 4 | This software is provided 'as-is', without any express or implied 5 | warranty. In no event will the authors be held liable for any damages 6 | arising from the use of this software. 7 | 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it 10 | freely, subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not 13 | claim that you wrote the original software. If you use this software 14 | in a product, an acknowledgment in the product documentation would 15 | be appreciated but is not required. 16 | 17 | 2. Altered source versions must be plainly marked as such, and must not 18 | be misrepresented as being the original software. 19 | 20 | 3. This notice may not be removed or altered from any source 21 | distribution. 22 | 23 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/libs/glfw/lib-vc2010-32/glfw3.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/examples/libs/glfw/lib-vc2010-32/glfw3.lib -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/libs/glfw/lib-vc2010-64/glfw3.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/examples/libs/glfw/lib-vc2010-64/glfw3.lib -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/examples/libs/usynergy/README.txt: -------------------------------------------------------------------------------- 1 | 2 | uSynergy client -- Implementation for the embedded Synergy client library 3 | version 1.0.0, July 7th, 2012 4 | Copyright (c) 2012 Alex Evans 5 | 6 | This is a copy of the files once found at: 7 | https://github.com/symless/synergy-core/tree/790d108a56ada9caad8e56ff777d444485a69da9/src/micro 8 | 9 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/README.txt: -------------------------------------------------------------------------------- 1 | 2 | misc/cpp/ 3 | InputText() wrappers for C++ standard library (STL) type: std::string. 4 | This is also an example of how you may wrap your own similar types. 5 | 6 | misc/fonts/ 7 | Fonts loading/merging instructions (e.g. How to handle glyph ranges, how to merge icons fonts). 8 | Command line tool "binary_to_compressed_c" to create compressed arrays to embed data in source code. 9 | Suggested fonts and links. 10 | 11 | misc/freetype/ 12 | Font atlas builder/rasterizer using FreeType instead of stb_truetype. 13 | Benefit from better FreeType rasterization, in particular for small fonts. 14 | 15 | misc/natvis/ 16 | Natvis file to describe dear imgui types in the Visual Studio debugger. 17 | With this, types like ImVector<> will be displayed nicely in the debugger. 18 | You can include this file a Visual Studio project file, or install it in Visual Studio folder. 19 | 20 | misc/single_file/ 21 | Single-file header stub. 22 | We use this to validate compiling all *.cpp files in a same compilation unit. 23 | Users of that technique (also called "Unity builds") can generally provide this themselves, 24 | so we don't really recommend you use this in your projects. 25 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/cpp/README.txt: -------------------------------------------------------------------------------- 1 | 2 | imgui_stdlib.h + imgui_stdlib.cpp 3 | InputText() wrappers for C++ standard library (STL) type: std::string. 4 | This is also an example of how you may wrap your own similar types. 5 | 6 | imgui_scoped.h 7 | [Experimental, not currently in main repository] 8 | Additional header file with some RAII-style wrappers for common Dear ImGui functions. 9 | Try by merging: https://github.com/ocornut/imgui/pull/2197 10 | Discuss at: https://github.com/ocornut/imgui/issues/2096 11 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/cpp/imgui_stdlib.h: -------------------------------------------------------------------------------- 1 | // dear imgui: wrappers for C++ standard library (STL) types (std::string, etc.) 2 | // This is also an example of how you may wrap your own similar types. 3 | 4 | // Compatibility: 5 | // - std::string support is only guaranteed to work from C++11. 6 | // If you try to use it pre-C++11, please share your findings (w/ info about compiler/architecture) 7 | 8 | // Changelog: 9 | // - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string 10 | 11 | #pragma once 12 | 13 | #include 14 | 15 | namespace ImGui 16 | { 17 | // ImGui::InputText() with std::string 18 | // Because text input needs dynamic resizing, we need to setup a callback to grow the capacity 19 | IMGUI_API bool InputText(const char* label, eastl::string* str, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); 20 | IMGUI_API bool InputTextMultiline(const char* label, eastl::string* str, const ImVec2& size = ImVec2(0, 0), ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); 21 | IMGUI_API bool InputTextWithHint(const char* label, const char* hint, eastl::string* str, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); 22 | } 23 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/fonts/Cousine-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/misc/fonts/Cousine-Regular.ttf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/fonts/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/misc/fonts/DroidSans.ttf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/fonts/Karla-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/misc/fonts/Karla-Regular.ttf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/fonts/ProggyClean.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/misc/fonts/ProggyClean.ttf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/fonts/ProggyTiny.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/misc/fonts/ProggyTiny.ttf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Engine/Source/ThirdParty/Imgui/misc/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/natvis/README.txt: -------------------------------------------------------------------------------- 1 | 2 | Natvis file to describe dear imgui types in the Visual Studio debugger. 3 | With this, types like ImVector<> will be displayed nicely in the debugger. 4 | You can include this file a Visual Studio project file, or install it in Visual Studio folder. 5 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/Imgui/misc/single_file/imgui_single_file.h: -------------------------------------------------------------------------------- 1 | // dear imgui: single-file wrapper include 2 | // We use this to validate compiling all *.cpp files in a same compilation unit. 3 | // Users of that technique (also called "Unity builds") can generally provide this themselves, 4 | // so we don't really recommend you use this in your projects. 5 | 6 | // Do this: 7 | // #define IMGUI_IMPLEMENTATION 8 | // Before you include this file in *one* C++ file to create the implementation. 9 | // Using this in your project will leak the contents of imgui_internal.h and ImVec2 operators in this compilation unit. 10 | #include "../../imgui.h" 11 | 12 | #ifdef IMGUI_IMPLEMENTATION 13 | #include "../../imgui.cpp" 14 | #include "../../imgui_demo.cpp" 15 | #include "../../imgui_draw.cpp" 16 | #include "../../imgui_widgets.cpp" 17 | #endif 18 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/README.md: -------------------------------------------------------------------------------- 1 | # Third Party Libraries 2 | 3 | ## FreeType 4 | 5 | - Source: https://www.freetype.org 6 | - Version: 2.10.1 7 | 8 | Files stripped down to just `include/`, `src/` except Jamfiles and tools subfolder, and license files. Custom CMakeLists.txt being used to build. 9 | 10 | ## EASTL 11 | 12 | - Source: https://github.com/electronicarts/EASTL 13 | - Version: 3.16.05 14 | 15 | Exact mirror of upstream repo. 16 | 17 | ## EABase 18 | 19 | - Source: https://github.com/electronicarts/EABase 20 | - Version: 2.09.05 21 | 22 | Exact mirror of upstream repo. 23 | 24 | ## Imgui 25 | 26 | - Source: https://github.com/ocornut/imgui 27 | - Version: 1.79 28 | 29 | Have edited imconfig.h for our custom asserts and types. Also changed std to eastl in imgui_stdlib.h/.cpp. Removed the includes from sdl and d3d imp files. Added a custom cmake file for our project. 30 | 31 | ## stb_image 32 | 33 | - Source: https://github.com/nothings/stb/ 34 | - Version: 2.26 35 | 36 | Added an implementations cpp file for creating stb single header libs. Plus a CMakeLists file to compile it with the engine 37 | -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/stb/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(stb) 2 | 3 | set(SOURCES 4 | "implementations.cpp" 5 | "stb_image.h" 6 | ) 7 | 8 | add_library (stb ${SOURCES}) -------------------------------------------------------------------------------- /Engine/Source/ThirdParty/stb/implementations.cpp: -------------------------------------------------------------------------------- 1 | #define STB_IMAGE_IMPLEMENTATION 2 | #include "stb_image.h" -------------------------------------------------------------------------------- /Games/Asteroids/Asteroids.cfg: -------------------------------------------------------------------------------- 1 | { 2 | bootInEditor: true, 3 | hotReloadingAssetsEnabled: true, 4 | windowName: "Athena", 5 | windowResolution: { 6 | x: 2000, 7 | y: 1000, 8 | }, 9 | baseGameResolution: { 10 | x: 1800, 11 | y: 1000, 12 | }, 13 | gameFramePointFilter: true, 14 | postProcessing: true, 15 | resolutionStretchMode: "KeepAspect", 16 | gameResourcesPath: "Games/Asteroids/Resources/" 17 | } -------------------------------------------------------------------------------- /Games/Asteroids/Resources/Audio/Engine.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Games/Asteroids/Resources/Audio/Engine.wav -------------------------------------------------------------------------------- /Games/Asteroids/Resources/Audio/Explosion.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Games/Asteroids/Resources/Audio/Explosion.wav -------------------------------------------------------------------------------- /Games/Asteroids/Resources/Audio/Shoot.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Games/Asteroids/Resources/Audio/Shoot.wav -------------------------------------------------------------------------------- /Games/Asteroids/Resources/Fonts/Hyperspace/Hyperspace Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Games/Asteroids/Resources/Fonts/Hyperspace/Hyperspace Bold.otf -------------------------------------------------------------------------------- /Games/Asteroids/Resources/Fonts/Hyperspace/Hyperspace.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Games/Asteroids/Resources/Fonts/Hyperspace/Hyperspace.otf -------------------------------------------------------------------------------- /Games/Asteroids/Source/Asteroids.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | #define PLAYER_ID EntityID{ 0 } 6 | 7 | void LoadMainScene(); 8 | void LoadMenu(); 9 | 10 | eastl::fixed_vector GetRandomAsteroidMesh(); -------------------------------------------------------------------------------- /Games/Asteroids/Source/Components.cpp: -------------------------------------------------------------------------------- 1 | #include "Components.h" 2 | 3 | REFLECT_BEGIN_DERIVED(AsteroidComponent, IComponent) 4 | REFLECT_MEMBER(hitCount) 5 | REFLECT_END() 6 | 7 | REFLECT_BEGIN_DERIVED(AsteroidPhysics, SpatialComponent) 8 | REFLECT_MEMBER(velocity) 9 | REFLECT_MEMBER(acceleration) 10 | REFLECT_MEMBER(collisionRadius) 11 | REFLECT_END() 12 | 13 | REFLECT_BEGIN_DERIVED(Polyline, SpatialComponent) 14 | REFLECT_MEMBER(thickness) 15 | REFLECT_MEMBER(connected) 16 | REFLECT_MEMBER(visible) 17 | REFLECT_END() 18 | 19 | REFLECT_BEGIN_DERIVED(PlayerComponent, IComponent) 20 | REFLECT_MEMBER(thrust) 21 | REFLECT_MEMBER(rotateSpeed) 22 | REFLECT_MEMBER(dampening) 23 | REFLECT_MEMBER(respawnTimer) 24 | REFLECT_MEMBER(lives) 25 | REFLECT_END() 26 | 27 | REFLECT_BEGIN_DERIVED(Score, IComponent) 28 | REFLECT_MEMBER(currentScore) 29 | REFLECT_MEMBER(highScore) 30 | REFLECT_END() 31 | 32 | REFLECT_BEGIN_DERIVED(AsteroidSpawnData, IComponent) 33 | REFLECT_MEMBER(timer) 34 | REFLECT_MEMBER(timeBetweenSpawns) 35 | REFLECT_MEMBER(decay) 36 | REFLECT_END() 37 | 38 | REFLECT_BEGIN_DERIVED(MenuCursorComponent, IComponent) 39 | REFLECT_END() 40 | -------------------------------------------------------------------------------- /Games/Asteroids/Source/EntitySystems/MenuController.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class World; 7 | struct UpdateContext; 8 | struct MenuCursorComponent; 9 | struct Polyline; 10 | 11 | struct MenuController : public IEntitySystem 12 | { 13 | virtual void Activate() override; 14 | 15 | virtual void RegisterComponent(IComponent* pComponent) override; 16 | 17 | virtual void UnregisterComponent(IComponent* pComponent) override; 18 | 19 | virtual void Update(UpdateContext& ctx) override; 20 | 21 | private: 22 | MenuCursorComponent* pCursor; 23 | Polyline* pGraphics; 24 | }; -------------------------------------------------------------------------------- /Games/Asteroids/Source/EntitySystems/PlayerController.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class World; 7 | struct UpdateContext; 8 | struct AsteroidPhysics; 9 | struct PlayerComponent; 10 | 11 | struct PlayerController : public IEntitySystem 12 | { 13 | virtual void Activate() override; 14 | 15 | virtual void RegisterComponent(IComponent* pComponent) override; 16 | 17 | virtual void UnregisterComponent(IComponent* pComponent) override; 18 | 19 | virtual void Update(UpdateContext& ctx) override; 20 | 21 | void SpawnBullet(World* pWorld); 22 | 23 | private: 24 | AsteroidPhysics* pRootPhysics; 25 | PlayerComponent* pPlayerComponent; 26 | }; -------------------------------------------------------------------------------- /Games/Asteroids/Source/EntitySystems/PlayerDeathSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | class World; 10 | struct UpdateContext; 11 | struct PlayerComponent; 12 | struct AsteroidPhysics; 13 | struct Polyline; 14 | 15 | struct PlayerDeathSystem : public IEntitySystem 16 | { 17 | virtual void Activate() override; 18 | 19 | virtual void RegisterComponent(IComponent* pComponent) override; 20 | 21 | virtual void UnregisterComponent(IComponent* pComponent) override; 22 | 23 | virtual void Update(UpdateContext& ctx) override; 24 | 25 | private: 26 | PlayerComponent* pPlayerComponent; 27 | AsteroidPhysics* pPlayerPhysics; 28 | 29 | eastl::map polylineComponents; 30 | }; -------------------------------------------------------------------------------- /Games/Asteroids/Source/EntitySystems/UIUpdateSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | struct UpdateContext; 8 | struct Score; 9 | 10 | class World; 11 | 12 | struct UIUpdateSystem : public IEntitySystem 13 | { 14 | virtual void Activate() override; 15 | 16 | virtual void RegisterComponent(IComponent* pComponent) override; 17 | 18 | virtual void UnregisterComponent(IComponent* pComponent) override; 19 | 20 | virtual void Update(UpdateContext& ctx) override; 21 | 22 | private: 23 | eastl::map textElements; 24 | 25 | Score* pScoreComponent; 26 | }; -------------------------------------------------------------------------------- /Games/Asteroids/Source/WorldSystems/AsteroidSpawner.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | class World; 7 | struct AsteroidSpawnData; 8 | struct PlayerComponent; 9 | 10 | struct AsteroidSpawner : public IWorldSystem 11 | { 12 | virtual void Activate() override {} 13 | 14 | virtual void Deactivate() override {} 15 | 16 | virtual void RegisterComponent(Entity* pEntity, IComponent* pComponent) override; 17 | 18 | virtual void UnregisterComponent(Entity* pEntity, IComponent* pComponent) override; 19 | 20 | virtual void Update(UpdateContext& ctx) override; 21 | 22 | private: 23 | AsteroidSpawnData* pSpawnData; 24 | PlayerComponent* pPlayer; 25 | }; -------------------------------------------------------------------------------- /Games/Asteroids/Source/WorldSystems/CollisionSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | struct AsteroidPhysics; 10 | struct AsteroidComponent; 11 | struct PlayerComponent; 12 | struct UpdateContext; 13 | struct Score; 14 | 15 | class World; 16 | 17 | struct CollisionSystem : public IWorldSystem 18 | { 19 | virtual void Activate() override; 20 | 21 | virtual void Deactivate() override {} 22 | 23 | virtual void RegisterComponent(Entity* pEntity, IComponent* pComponent) override; 24 | 25 | virtual void UnregisterComponent(Entity* pEntity, IComponent* pComponent) override; 26 | 27 | virtual void Update(UpdateContext& ctx) override; 28 | 29 | void OnBulletAsteroidCollision(World& world, Uuid bulletEntity, Uuid asteroidEntity); 30 | void OnPlayerAsteroidCollision(World& world, Uuid asteroidEntity); 31 | 32 | private: 33 | eastl::map asteroidPhysics; 34 | eastl::map asteroids; 35 | 36 | eastl::vector bullets; 37 | 38 | AsteroidPhysics* pPlayerPhysics; 39 | PlayerComponent* pPlayerComponent; 40 | 41 | Score* pScoreComponent; 42 | }; -------------------------------------------------------------------------------- /Games/Asteroids/Source/WorldSystems/MovementSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include "../Components.h" 10 | 11 | struct UpdateContext; 12 | 13 | struct MovementSystem : public IWorldSystem 14 | { 15 | virtual void Activate() override; 16 | 17 | virtual void Deactivate() override {} 18 | 19 | virtual void RegisterComponent(Entity* pEntity, IComponent* pComponent) override; 20 | 21 | virtual void UnregisterComponent(Entity* pEntity, IComponent* pComponent) override; 22 | 23 | virtual void Update(UpdateContext& ctx) override; 24 | 25 | private: 26 | 27 | using PhysicsComponent = eastl::pair; 28 | eastl::vector physicsComponents; 29 | }; -------------------------------------------------------------------------------- /Games/GameTemplate/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(Game) 2 | 3 | include_directories("../Engine/Core/") 4 | include_directories("../Engine/Devices/") 5 | include_directories("../Engine/Modules/") 6 | include_directories("../Engine/ThirdParty/") 7 | include_directories("/") 8 | 9 | add_executable (Game WIN32 "") 10 | target_link_libraries(Game ${SDL2_LIBRARIES} Engine) 11 | 12 | target_sources(Game 13 | PRIVATE 14 | "Game.h" 15 | "Game.cpp" 16 | "Components.h" 17 | "Components.cpp" 18 | "Systems.h" 19 | "Systems.cpp" 20 | ) 21 | 22 | GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) 23 | 24 | target_precompile_headers(Engine PRIVATE "../Engine/Core/PreCompiledHeader.h") 25 | 26 | if(MSVC) 27 | target_compile_options(Game PRIVATE /W3 /WX) 28 | else() 29 | target_compile_options(Game PRIVATE -Wall -Werror) 30 | endif() 31 | 32 | # target_link_options(Game PRIVATE /time+) 33 | # target_compile_options(Game PRIVATE /Bt+ /d2cgsummary) -------------------------------------------------------------------------------- /Games/GameTemplate/Components.cpp: -------------------------------------------------------------------------------- 1 | #include "Components.h" 2 | -------------------------------------------------------------------------------- /Games/GameTemplate/Components.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | -------------------------------------------------------------------------------- /Games/GameTemplate/Game.cpp: -------------------------------------------------------------------------------- 1 | #include "Game.h" 2 | #include "Systems.h" 3 | #include "Components.h" 4 | 5 | #include 6 | 7 | int main(int argc, char *argv[]) 8 | { 9 | EngineConfig config; 10 | 11 | Engine::Initialize(config); 12 | 13 | // Run everything 14 | Engine::Run(new Scene()); 15 | 16 | return 0; 17 | } -------------------------------------------------------------------------------- /Games/GameTemplate/Game.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /Games/GameTemplate/Systems.cpp: -------------------------------------------------------------------------------- 1 | #include "Systems.h" 2 | 3 | #include "Game.h" 4 | #include "Components.h" 5 | -------------------------------------------------------------------------------- /Games/GameTemplate/Systems.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | -------------------------------------------------------------------------------- /Games/PigeonGame/Resources/Images/Pigeon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/Games/PigeonGame/Resources/Images/Pigeon.png -------------------------------------------------------------------------------- /Games/PigeonGame/Resources/Levels/PigeonScene.lvl: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | CName: { 4 | name: "pigeon", 5 | }, 6 | CSprite: { 7 | spriteHandle: { 8 | Asset: "Images/pigeon.png", 9 | }, 10 | }, 11 | CTransform: { 12 | localPos: { 13 | x: 612.79998779296875, 14 | y: 378.89999389648438, 15 | z: 0, 16 | }, 17 | localRot: { 18 | x: 0, 19 | y: 0, 20 | z: 0, 21 | }, 22 | localSca: { 23 | x: 200, 24 | y: 200, 25 | z: 1, 26 | }, 27 | }, 28 | }, 29 | ] -------------------------------------------------------------------------------- /Games/PigeonGame/Source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(PigeonGame) 2 | 3 | include_directories("${ENGINE_SOURCE_PATH}/AssetDatabase/") 4 | include_directories("${ENGINE_SOURCE_PATH}/Core/") 5 | include_directories("${ENGINE_SOURCE_PATH}/EntitySystem/") 6 | include_directories("${ENGINE_SOURCE_PATH}/Devices/") 7 | include_directories("${ENGINE_SOURCE_PATH}/Modules/") 8 | 9 | add_executable (PigeonGame WIN32 "") 10 | target_link_libraries(PigeonGame ${SDL2_LIBRARIES} Engine) 11 | 12 | target_sources(PigeonGame 13 | PRIVATE 14 | "Pigeons.h" 15 | "Pigeons.cpp" 16 | ) 17 | 18 | GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) 19 | 20 | target_precompile_headers(Engine PRIVATE "${ENGINE_SOURCE_PATH}/Core/PreCompiledHeader.h") 21 | 22 | if(MSVC) 23 | target_compile_options(PigeonGame PRIVATE /W3 /WX) 24 | else() 25 | target_compile_options(PigeonGame PRIVATE -Wall -Werror) 26 | endif() 27 | 28 | # target_link_options(PigeonGame PRIVATE /time+) 29 | # target_compile_options(PigeonGame PRIVATE /Bt+ /d2cgsummary) -------------------------------------------------------------------------------- /Games/PigeonGame/Source/Pigeons.cpp: -------------------------------------------------------------------------------- 1 | #include "Pigeons.h" 2 | #include "World.h" 3 | #include "Entity.h" 4 | #include "Rendering/SpriteDrawSystem.h" 5 | 6 | #include 7 | 8 | int main(int argc, char *argv[]) 9 | { 10 | Engine::Initialize("Games/Pigeons/Pigeons.cfg"); 11 | 12 | World* pWorld = new World(); 13 | 14 | Entity* pEntity = pWorld->NewEntity("Pigeon"); 15 | Sprite* pSprite = pEntity->AddNewComponent(); 16 | pSprite->SetLocalPosition(Vec3f(612.0f, 378.0f, 0.0f)); 17 | pSprite->SetLocalScale(Vec3f(200.0f, 200.0f, 0.0f)); 18 | pSprite->spriteHandle = AssetHandle("Images/pigeon.png"); 19 | 20 | pWorld->AddGlobalSystem(); 21 | 22 | // Run everything 23 | Engine::Run(pWorld); 24 | 25 | return 0; 26 | } -------------------------------------------------------------------------------- /Games/PigeonGame/Source/Pigeons.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /Games/Pigeons/Pigeons.cfg: -------------------------------------------------------------------------------- 1 | { 2 | bootInEditor: true, 3 | hotReloadingAssetsEnabled: true, 4 | windowName: "Pigeons", 5 | windowResolution: { 6 | x: 1800, 7 | y: 1000, 8 | }, 9 | baseGameResolution: { 10 | x: 1800, 11 | y: 1000, 12 | }, 13 | gameFramePointFilter: true, 14 | resolutionStretchMode: "KeepAspect", 15 | gameResourcesPath: "Games/PigeonGame/Resources/" 16 | } -------------------------------------------------------------------------------- /Games/RacerGame/Source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(RacerGame) 2 | 3 | include_directories("${ENGINE_SOURCE_PATH}/AssetDatabase/") 4 | include_directories("${ENGINE_SOURCE_PATH}/Core/") 5 | include_directories("${ENGINE_SOURCE_PATH}/EntitySystem/") 6 | include_directories("${ENGINE_SOURCE_PATH}/Devices/") 7 | include_directories("${ENGINE_SOURCE_PATH}/Modules/") 8 | 9 | add_executable (RacerGame WIN32 "") 10 | target_link_libraries(RacerGame Engine) 11 | 12 | target_sources(RacerGame 13 | PRIVATE 14 | "RacerGame.h" 15 | "RacerGame.cpp" 16 | "Components.h" 17 | "Components.cpp" 18 | "Systems.h" 19 | "Systems.cpp" 20 | ) 21 | 22 | GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) 23 | 24 | target_precompile_headers(Engine PRIVATE "${ENGINE_SOURCE_PATH}/Core/PreCompiledHeader.h") 25 | 26 | if(MSVC) 27 | target_compile_options(RacerGame PRIVATE /W3 /WX) 28 | else() 29 | target_compile_options(RacerGame PRIVATE -Wall -Werror) 30 | endif() 31 | 32 | # target_link_options(RacerGame PRIVATE /time+) 33 | # target_compile_options(RacerGame PRIVATE /Bt+ /d2cgsummary) -------------------------------------------------------------------------------- /Games/RacerGame/Source/Components.cpp: -------------------------------------------------------------------------------- 1 | #include "Components.h" 2 | -------------------------------------------------------------------------------- /Games/RacerGame/Source/Components.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | -------------------------------------------------------------------------------- /Games/RacerGame/Source/RacerGame.h: -------------------------------------------------------------------------------- 1 | #include 2 | -------------------------------------------------------------------------------- /Games/RacerGame/Source/Systems.cpp: -------------------------------------------------------------------------------- 1 | #include "Systems.h" 2 | 3 | #include "RacerGame.h" 4 | #include "Components.h" 5 | -------------------------------------------------------------------------------- /Games/RacerGame/Source/Systems.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | -------------------------------------------------------------------------------- /GitHubImages/AsteroidsImage1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/GitHubImages/AsteroidsImage1.png -------------------------------------------------------------------------------- /GitHubImages/AsteroidsImage2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/GitHubImages/AsteroidsImage2.png -------------------------------------------------------------------------------- /SDL2.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DavidColson/AthenaLegacy/6bd0774f12337190fb18d410d746ff60e8a15399/SDL2.dll --------------------------------------------------------------------------------