Changelog#
Generated on 07/28/2024
2024
TRAP™ Engine 0.10.93 - 07/21/2024|24w29b1
TRAP_ASSERT Fixed assertion failures didnt trigger debug break
VulkanRenderer Depth/Stencil RenderTarget now uses the same MSAA sample count as color RenderTargets
TRAP™ Engine 0.10.92 - 07/19/2024|24w29a2
VulkanRenderer Fixed missing instance extension error in headless mode
TRAP™ Engine 0.10.91 - 07/15/2024|24w29a1
Renderer Refactored various functions
TRAP™ Engine 0.10.90 - 07/14/2024|24w28b2
Texture Refactored various functions
TextureManager Refactored various functions
SpriteManager Refactored various functions
TRAP™ Engine 0.10.89 - 07/13/2024|24w28b1
Reworked handling of Shader loading failures
ShaderManager Changed order of shaderType parameters
TRAP™ Engine 0.10.88 - 07/11/2024|24w28a2
Shader Refactored various functions
TRAP™ Engine 0.10.87 - 07/09/2024|24w28a1
RendererAPI Refactored various functions
ResourceLoader Refactored various functions
TRAP™ Engine 0.10.86 - 07/07/2024|24w27a3
ShaderReflection Refactored various functions
VertexBuffer/IndexBuffer/UniformBuffer/StorageBuffer Refactored various functions
Camera/EditorCamera/OrthographicCamera Refactored various functions
PipelineDescHash Changed std::holds_alternative and std::get calls to std::get_if
TRAP™ Engine 0.10.85 - 07/03/2024|24w27a2
VulkanCommandBuffer use store color action when not otherwise specified (fixes regression on NVIDIA GPUs)
TRAP™ Engine 0.10.84 - 07/02/2024|24w27a1
VulkanShaderReflection Refactored various functions
Changed fmt submodule to tag 11.0.0
MSVC enabled /utf-8 compiler option
MSVC disabled warnings from /utf-8 compiler option for third party dependencies
TRAP™ Engine 0.10.83 - 06/30/2024|24w26a1
VulkanRenderer Refactored various functions
TRAP™ Engine 0.10.82 - 06/17/2024|24w25a1
Vulkan Reworked querying of instance and device extensions
TRAP™ Engine 0.10.81 - 06/10/2024|24w24a1
Log Made TP_* functions constexpr compatible
VulkanRenderer Removed unimplemented shader data types
TRAP™ Engine 0.10.80 - 06/09/2024|24w23b3
Utils Moved global static and private static members to anonymous namespace
Log Removed unused members
SocketImplLinux/SocketImplWinAPI Changed class to namespace and more constexpr
Input Moved global static and private static members to anonymous namespace
Texture Moved global static and private static members to anonymous namespace
Shader Moved global static and private static members to anonymous namespace
VulkanCommon Refactored various functions
TRAP™ Engine 0.10.79 - 06/08/2024|24w23b2
Moved more global static and private static members to anonymous namespaces
Application Moved global static and private static members to anonymous namespace
TRAP™ Engine 0.10.78 - 06/07/2024|24w23b1
Moved global static and private static members to anonymous namespaces
TRAP™ Engine 0.10.77 - 06/04/2024|24w23a1
Expected Fixed a compiler errors
VulkanCommon Added documentation and requires clause for LinkVulkanStruct()
TRAP™ Engine 0.10.76 - 06/02/2024|24w22a2
Made TRAP_ASSERT constexpr compatible (turns into a noop)
TRAP™ Engine 0.10.75 - 06/01/2024|24w22a1
VulkanTexture Refactored various functions
Updated VulkanLoader
TRAP™ Engine 0.10.74 - 05/26/2024|24w21b2
VulkanRootSignature Fixed wrong error on valid root constant
TRAP™ Engine 0.10.73 - 05/25/2024|24w21b1
SwapChain Reworked AcquireNextImage()
Updated Premake-Ninja submodule
TRAP™ Engine 0.10.72 - 05/22/2024|24w21a3
Added documentation for TRAP::Optional
TRAP™ Engine 0.10.71 - 05/21/2024|24w21a2
Updated ImGuiWindowing & ImGuiVulkanBackend
Fixed code coverage generation errors
TRAP™ Engine 0.10.70 - 05/20/2024|24w21a1
Reworked TRAP::Optional class
TRAP™ Engine 0.10.69 - 05/13/2024|24w20a1
Updated ImGuiVulkanBackend
TRAP™ Engine 0.10.68 - 05/12/2024|24w19b2
Fixed a bug which resulted in Vulkan errors when resizing on Linux X11
Made some Vulkan classes final
VulkanRenderer Moved SubmitMutex to VulkanQueue as static member
VulkanPhysicalDevice Added GetPhysicalDeviceSurfaceSupport() function
VulkanSwapChain Refactored various functions
TRAP™ Engine 0.10.67 - 05/10/2024|24w19b1
VulkanSurface Refactored various functions
TRAP™ Engine 0.10.66 - 05/09/2024|24w19a3
VulkanSwapChain Fixed crash when resizing on Linux X11/Xwayland
TRAP™ Engine 0.10.65 - 05/06/2024|24w19a2
ImGuiVulkanBackend Fixed fence synchronization errors
Updated ImGuiVulkanBackend
TRAP™ Engine 0.10.64 - 05/06/2024|24w19a1
VulkanShader Refactored various functions
TRAP™ Engine 0.10.63 - 04/21/2024|24w16a1
UnitTests Added tests for ContentionFreeSharedMutex
TRAP™ Engine 0.10.62 - 04/14/2024|24w15a1
Utils Added IsFutureType trait
Utils Added WaitForAll() function which waits for multiple futures
UnitTests Added tests for IsFutureType and WaitForAll()
TRAP™ Engine 0.10.61 - 04/01/2024|24w14a1
HotReloading Fixed shader changes not being visible after reload
TRAP™ Engine 0.10.60 - 03/31/2024|24w13b2
Replaced usages of std::mutex with Safe
Updated GitHub Action workflows
TRAP™ Engine 0.10.59 - 03/30/2024|24w13b1
Added ContentionFreeSharedMutex a contention free std::shared_mutex alternative
Added Safe a wrapper for a user-defined type and a mutex
ConstexprMap Extended API to more closely match STL containers
HotReloading Fixed incorrect filenames on Linux resulting in no reload
TRAP™ Engine 0.10.58 - 03/29/2024|24w13a1
Texture Fixed wrong texture type used when creating a multi-file cube texture
TRAP™ Engine 0.10.57 - 03/24/2024|24w12a1
Math Added perlin and simplex noise functions
UnitTests Added tests for perlin and simplex noise
TRAP™ Engine 0.10.56 - 03/17/2024|24w11a1
Renderer Fixed wrong instance count usage
Renderer EndScene() now waits for model SSBO to finish uploading instead of each Submit() call
Renderer EndScene() now waits for scene SSBO to finish uploading instead of BeginScene()
TRAP™ Engine 0.10.55 - 03/10/2024|24w10a4
Linux Disabled XNegative and YNegative macros
Removed invalid profiling trace points
TRAP™ Engine 0.10.54 - 03/09/2024|24w10a3
VulkanRootSignature Refactored various functions
Utils Added typedef for std::unordered_map with std::string as key and enabled heterogeneous lookup
VulkanSampler Refactored various functions
VulkanSampler Added VkSetObjectName() calls
VulkanSemaphore Added VkSetObjectName() calls
TRAP™ Engine 0.10.53 - 03/06/2024|24w10a2
VulkanRenderPass Refactored various functions
VulkanRenderTarget Added VkSetObjectName() calls
VulkanRenderTarget Refactored various functions
Utils Added StringHasher to enable heterogeneous string lookup for associative containers
Enabled heterogeneous lookup for std::unordered_map and std::map using std::string as key
TRAP™ Engine 0.10.52 - 03/05/2024|24w10a1
VulkanPipelineCache Added VkSetObjectName() calls
VulkanQueryPool Added VkSetObjectName() calls
Removed USE_RENDER_DOC macro (RenderDoc will inject the capture layer by itself)
VulkanQueue Refactored various functions
VulkanQueue Added VkSetObjectName() calls
TRAP™ Engine 0.10.51 - 03/03/2024|24w09b2
VulkanPhysicalDevice Refactored RatePhysicalDevices() function
VulkanPipeline Refactored InitGraphicsPipeline() function
TRAP™ Engine 0.10.50 - 03/02/2024|24w09b1
VulkanPhysicalDevice Refactored various functions
TRAP™ Engine 0.10.49 - 02/27/2024|24w09a2
VulkanInits Refactored various functions
VulkanInstance Refactored various functions
VulkanMemoryAllocator Refactored constructor
TRAP™ Engine 0.10.48 - 02/26/2024|24w09a1
VulkanFrameBuffer Refactored constructor
TRAP™ Engine 0.10.47 - 02/25/2024|24w08c2
VulkanDescriptorPool Added VkSetObjectName() calls
Added names for VulkanDescriptorPools
Moved ResourceLoader initialization to RendererAPI
VulkanDevice Refactored various functions
VulkanFence Added VkSetObjectName() calls
Added names for VulkanFencess
Removed ENABLE_DEBUG_UTILS_EXTENSION macro
VulkanCommon Changed VkSetObjectName()
VulkanFence Added ResetState() function
VulkanFence Refactored various functions
TRAP™ Engine 0.10.46 - 02/24/2024|24w08c1
VulkanDebug Added more safety checks
VulkanCommon Added missing VkResult entries to VkResultToString map
ImGuiVulkanBackend Reduced DescriptorSets to 1
ImGuiVulkanBackend Reduced DescriptorPool size to 1 combined image sampler
VulkanDescriptorSet Refactored Update() function
VulkanDevice Changed GetPhysicalDevice() to return a const reference instead of pointer
VulkanPhysicalDevice Made some function const
VulkanCommandBuffer Added VkSetObjectName() calls
Added names for VulkanCommandBuffers
VulkanCommandPool Added VkSetObjectName() calls
Added names for VulkanCommandPools
TRAP™ Engine 0.10.45 - 02/21/2024|24w08b1
ImGuizmo Fixed detection of reversed Z
Updated ImGuizmo submodule
Math Fixed Decompose function returning invalid euler angles for rotation
Math Removed deprecated projection matrix functions
Updated UnitTests
TRAP™ Engine 0.10.44 - 02/20/2024|24w08a1
Updated ImGuiLayer & ImGuiVulkanBackend
TRAP™ Engine 0.10.43 - 02/18/2024|24w07b2
Math Deprecated all Perspective() functions which are not infinite and not using reverse Z
Math Deprecated all Orthographic() functions which are not using reverse Z
Math Added InfinitePerspectiveReverseZ() function
VulkanRenderer Implemented support for depth/stencil attachment
Cube3D Updated Skybox shader for depth testing
VulkanCommandBuffer Fixed Vulkan errors in ResolveImage()
VulkanRenderer Added RenderScale support for Depth/Stencil RenderTarget
TRAP™ Engine 0.10.42 - 02/17/2024|24w07b1
Fixed compiler error when compiling without Nsight Aftermath
TRAP™ Engine 0.10.41 - 02/13/2024|24w07a1
VulkanCommandBuffer Refactored various functions
VulkanCommandPool Refactored AllocateCommandBuffer() and FreeCommandBuffer()
TRAP™ Engine 0.10.40 - 02/11/2024|24w06a1
VulkanCommandBuffer Refactored various functions
TRAP™ Engine 0.10.39 - 02/04/2024|24w05b2
VulkanCommandBuffer Changed arguments of functions
TRAP™ Engine 0.10.38 - 02/03/2024|24w05b1
Buffer Changed GetCPUMappedAddress() return type to std::span<T>
Updated calls to Buffer::GetCPUMappedAddress()
ResourceLoader Moved MappedRangeFlag struct to RendererAPI
RendererAPI Changed MappedMemoryRange::Data to std::span<u8>
RendererAPI Changed TextureUpdateDesc::MappedData and BufferUpdateDesc::MappedData to std::span<u8>
CommandBuffer BindPushConstants() & BindPushConstantsByIndex() now use std::span<const u8>
TRAP™ Engine 0.10.37 - 02/02/2024|24w05a2
TRAPEditorLayer/VulkanRenderer Added missing ElementCount and StructStride values to Buffers
TRAP™ Engine 0.10.36 - 01/29/2024|24w05a1
VulkanBuffer Removed unused functions
IndexBuffer/VertexBuffer/StorageBuffer/UniformBuffer set ElementCount and StructStride values
TRAP™ Engine 0.10.35 - 01/28/2024|24w04b1
Refactored VulkanBuffer
Updated ImGuiVulkanBackend
TRAP™ Engine 0.10.34 - 01/24/2024|24w04a2
Updated documentation build dependencies
TRAP™ Engine 0.10.33 - 01/23/2024|24w04a1
VulkanRenderer Fixed vkAcquireNextImageKHR semaphore synchronization error
Various minor code tweaks
CI Updated gha-workspace-cleanup to v1.2.5
TRAP™ Engine 0.10.32 - 01/15/2024|24w03a1
PipelineCache Changed GetPipelineCacheData() function
Various minor code tweaks
TRAP™ Engine 0.10.31 - 01/14/2024|24w02a3
Added docker files for Gitea Actions Runners
Added nodejs to Action Runner docker images
Various minor code tweaks
AftermathTracker now uses UniqueResource
TRAP™ Engine 0.10.30 - 01/13/2024|24w02a3
Make use of the new fmt std::source_location support
TRAP™ Engine 0.10.29 - 01/12/2024|24w02a2
Various minor code tweaks
Fixed compiler warnings in AftermathTracker
TRAP™ Engine 0.10.28 - 01/08/2024|24w02a1
FileSystemWatcher Added future return type to AddFolder() and AddFolders()
FileSystemWatcher better filtering of subdirs when recursive checking is enabled
UnitTests Added FileSystemWatcher tests
TRAP™ Engine 0.10.27 - 01/07/2024|24w01b1
Renamed FileChangeEvent to FileSystemChangeEvent
Renamed FileWatcher to FileSystemWatcher
Refactored FileSystemWatcher
Made FileSystemWatcher threadsafe
UnitTests FileSystem disabled logging except for critical messages
TRAP™ Engine 0.10.26 - 01/03/2024|24w01a1
Added UniqueResource and ScopeFail utility classes
Backported (as free standing functions) C++23 container range insert, append and assign functions (p1206r7)
Utils Added SetThreadName() which sets the thread name for profiling with tracy
Utils Added code documentation for ScopeFail and UniqueResource
2023
TRAP™ Engine 0.10.25 - 12/31/2023|23w52b3
Base reordered branches for operator new()
TRAP™ Engine 0.10.24 - 12/29/2023|23w52b2
Systems to profile can now be set at runtime
WindowingAPI Fixed some bugs
TRAP™ Engine 0.10.23 - 12/28/2023|23w52b1
Resolved various clang-tidy warnings
TRAP™ Engine 0.10.22 - 12/27/2023|23w52a3
Added Unittests for TRAP::FileSystem
HeadlessTests Removed old FileSystemTests
DiscordGameSDK is now compiled as static lib
TRAP™ Engine 0.10.21 - 12/26/2023|23w52a2
Cleaned up TRAP::FileSystem
TRAP™ Engine 0.10.20 - 12/25/2023|23w52a1
Update-Dependencies Added Premake-Ninja
ImGuiVulkanBackend CreateFontsTexture() Changed device wait idle to queue wait idle
TRAP™ Engine 0.10.19 - 12/24/2023|23w51b2
FileSystem Added ToCanonicalAbsolutePath() and GetCurrentWorkingFolderPath()
TRAP™ Engine 0.10.18 - 12/23/2023|23w51b1
Backported C++26 std::breakpoint(), std::breakpoint_if_debugging() and std::is_debugger_present()
TRAP™ Engine 0.10.17 - 12/21/2023|23w51a2
PipelineCache Fixed unstable hash values
TRAP™ Engine 0.10.16 - 12/20/2023|23w51a1
Cleaned up TRAP::FileSystem
TRAP™ Engine 0.10.15 - 12/09/2023|23w49a2
Build-CI Fixed Windows using wrong amount of CPU cores for compiling
Build-CI Enabled second Windows runner again
GitHub Actions Windows Runner Added ninja
Build-CI Windows switched from msbuild to ninja
TRAP™ Engine 0.10.14 - 12/08/2023|23w49a1
Made adjustments to Premake scripts
Updated Premake-VSCodeGen
Added Premake-Ninja as submodule
Added Ninja build file generation
Build-CI Switched to ninja for GCC and Clang builds
TRAP™ Engine 0.10.13 - 12/03/2023|23w48b2
Premake Removed unnecessary calls to GenerateWayland() and DiscordGameSDK Compatibility
TRAP™ Engine 0.10.12 - 12/02/2023|23w48b1
WindowingAPI Splitted DBus code into its own namespace and moved to Utils
TRAP™ Engine 0.10.11 - 11/27/2023|23w48a1
Quat, Mat3/4, Vec2/3/4 at() now throws std::out_of_range exception instead of asserting
Quat, Mat3/4, Vec2/3/4 at() is now constexpr
TRAP-Editor SceneGraphPanel Fixed tree using the same unique identifier for all entities
TRAP™ Engine 0.10.10 - 11/26/2023|23w47c2
GitHub Actions Runners Removed manually installed nodejs
Rebuilt and deployed Windows GitHub Actions Runners
artifact-upload Removed run_attempt from upload path
Updated Build-CI workflow
UnitTests Added tests for Mat3/4
Quaternion Added std::get support
Quat, Mat3/4, Vec2/3/4 Added std::swap support
TRAP™ Engine 0.10.9 - 11/25/2023|23w47c1
UnitTests Optional/Expected moved functions to anonymous namespace
UnitTests Added tests for Vec2/3/4
UnitTests Added tests for Quaternion
TRAP™ Engine 0.10.8 - 11/22/2023|23w47b1
EventDispatcher now uses std::reference_wrapper
EventDispatcher Dispatch() now forwards Event as const reference
GenerateCodeCoverage Fixed make using wrong amount of cpu cores
GenerateCodeCoverage Added demangling of function names
Improved code coverage of TRAP::Expected and TRAP::Optional
Improved code coverage of TRAP::Math
TRAP™ Engine 0.10.7 - 11/20/2023|23w47a1
Events now use std::reference_wrapper instead of pointers
GeneratorScripts Added separate scripts for GCC and Clang
Enabled warnings as errors
Build-CI Added llvm-17 to clang build
TRAP™ Engine 0.10.6 - 11/18/2023|23w46a2
Added custom std::expected implementation with custom extensions
UnitTests Replaced static_assert with STATIC_REQUIRE where possible
NumericCast Enabled checks for UnitTests
Resolved some NumericCasts with std::cmp_*** functions
TRAP™ Engine 0.10.5 - 11/14/2023|23w46a1
ImGuiVulkanBackend/ImGuiLayer Changed how font uploading works
TRAP™ Engine 0.10.4 - 11/11/2023|23w45c1
Added custom std::optional implementation with custom extensions
TRAP™ Engine 0.10.3 - 11/09/2023|23w45b2
Replaced ostream operators with fmt formatters
Linux Fixed a bug which made X11/XWayland the default instead of Wayland
Replaced calls to ConvertToString() with fmt::format
String Removed ConvertToString()
TRAP™ Engine 0.10.2 - 11/08/2023|23w45b1
Deleted copy constructor of various classes
TRAP™ Engine 0.10.1 - 11/07/2023|23w45a1
Changed doxygen comment style
Doxygen Removed hard coded STRIP_FROM_PATH values
TRAPEditorLayer SaveScene() and SaveSceneAs() now use the editor scene instead of the active scene
Application SetTimeScale() guard against negative values
Fully excluded SwapChain from Headless mode
Base Replaced TRAP_MAKE_VERSION(), TRAP_VERSION_MAJOR(), TRAP_VERSION_MINOR() and TRAP_VERSION_PATCH() with SemanticVersion class
Made UID really unique
Updated VulkanLoader
TRAP™ Engine 0.10.0 - 11/05/2023|23w44b1
GitHub workflows Replaced tibdex/github-app-token with actions/create-github-app-token
Added deprecation attributes and compiler warnings which should trigger when project switches to C++23
Utils::String Removed StartsWith() and EndsWith()
ResourceLoader/FileWatcher Replaced manual thread destruction with std::stop_token and std::stop_callback
Doxyfile Added threadsafety, threadsafe, reentrancy, experimental and callback_signature alias tags
TRAP™ Engine 0.9.125 - 11/04/2023|23w44a1
Fixed glichting of gizmos when using infinite far plane projection matrix (now using forked ImGuizmo)
Moved generated documentation to TRAP-Docs repository
Removed documentation contained in TRAP repository
TRAP™ Engine 0.9.124 - 10/29/2023|23w43a3
VulkanLoader Removed external C
TRAP™ Engine 0.9.123 - 10/28/2023|23w43a2
Core Added typedefs for fixed width primitive data types to make them shorter
Use new primitive typedefs everywhere
VulkanLoader/VulkanInstance VkGetInstanceVersion()/GetInstanceVersion() now returns std::optional<u32>
TRAP™ Engine 0.9.122 - 10/25/2023|23w43a1
Update-Dependencies Updated tags for Vulkan related dependencies
Reverted: GLSLang Enabled SPIR-V optimization, Removed SPIRV-Tools, SPIRV-Headers submodules
TRAP™ Engine 0.9.121 - 10/22/2023|23w42b3
Added new artifact-upload composite action (allows storing build artifacts on a custom Samba share)
GitHub Action Windows Runner Added 7z to PATH
GitHub Action Linux Runner Added p7zip-full package
Build-CI Replaced GitHub upload-artifact action with our own
Build-CI Replaced GitHub download-artifact action with our own (gamestrap/gha-download-artifact)
Build-CI Use GitHub artifact actions when ARTIFACT_HOST secret is not set
Build-CI Added Licenses folder to artifacts
Replaced manual equality operators with defaulted ones where possible
Replaced manual comparison operators with defaulted ones where possible
Update-Dependencies Changed regex for semver
Added SPIRV-Tools and SPIRV-Headers as submodules
GLSLang Enabled SPIR-V optimization
Update-Git-Dependency Fixed regex error
GitHub Action Runners Added Python 3
SPIRV-Tools Added missing SPIRV-Headers include dir
TRAP™ Engine 0.9.120 - 10/21/2023|23w42b2
Utils GetCPUInfo() Linux Replaced inline assembly with cpuid compiler intrinsic
WindowingAPILinuxWayland Fixed glitching when windows change between fractional and non-fractional scaling code paths
WindowingAPILinuxWayland Only add emulated video modes if wp_viewporter protocol is supported
WindowingAPILinuxWayland Fixed PointerHandleMotion() using wrong cursor position for InputCursorPos() call
WindowingAPILinuxWayland Added support for arbitrary (emulated) video modes
WindowingAPILinuxWayland Added support for using arbitrary video mode and fractional scaling at the same time
TRAP™ Engine 0.9.119 - 10/19/2023|23w42b1
Headless Fixed a crash in VulkanRenderer::UpdateInternalRenderTargets()
Again replaced NarrowCast(), WideCast() and SignCast() with an improved NumericCast()
Fixed various NarrowingErrors
Simplified NumericCast()
NumericCast() Replaced NumericCastError exception with TRAP_ASSERTs
NumericCast() only do check in debug mode
TRAP™ Engine 0.9.118 - 10/18/2023|23w42a3
WideCast() Added support for widening signed integral to floating point conversions
NarrowCast() Added support for narrowing floating point to signed integral conversion
TRAP™ Engine 0.9.117 - 10/17/2023|23w42a2
Added NarrowCast(), WideCast() and SignCast() as a replacement for NumericCast()
SignCast() now automatically deduces destination type from source type
GitHub Action Runners updated Ubuntu runner to 23.10 (Mantic)
Rebuild and deployed Ubuntu GitHub Action Runner images
Build CI Replaced Clang 16 with Clang 17
TRAP™ Engine 0.9.116 - 10/16/2023|23w42a1
ImGuiWindowing Added support for keys F13-F24
Premake drastically reduced redundancy between script files
TRAP™ Engine 0.9.115 - 10/15/2023|23w41a2
Added missing Catch2 license to Licenses directory
UnitTests Replaced Catch2 amalgamated with normal Catch2
Fixed Build-CI Clang warnings
Clangd Disabled IWYU warnings for TRAPPCH.h
MSVC Resolved SteamworksSDK warnings
MSVC Resolved TRAP-Headless LNK4006 warning
Utils DisplayError() now only displays message box for non headless and non unit test builds
MSVC Resolved more warnings
Backports Added std::unreachable()
Removed all unused includes
TRAP™ Engine 0.9.114 - 10/14/2023|23w41a1
Build-CI Added checks if secrets for NDA repos are set
Build-CI Added problem matchers for warnings and errors
TRAP™ Engine 0.9.113 - 10/09/2023|23w40c2
Re-enabled LTO for Profiling and Release builds
Fixed an ODR violation in spirv.hpp between SPIRV-Cross and GLSLang
TRAP™ Engine 0.9.112 - 10/08/2023|23w40c1
WindowingAPI Fixed Fullscreen Borderless using wrong window size
WindowingAPILinuxWayland Added second iteration of fractional scaling support
WindowingAPILinuxWayland fractional scale added updating of monitor content scale
TRAP™ Engine 0.9.111 - 10/07/2023|23w40b3
Updated DBus implementation
GenerateWayland Added fractional-scale-v1 protocol
WindowingAPILinuxWayland Added initialization of fractional_scale_manager
WindowingAPILinuxWayland Added deinitialization of fractional_scale_manager
WindowingAPILinuxWayland Added initial support for fractional scaling
TRAP™ Engine 0.9.110 - 10/06/2023|23w40b2
Application CreateApplication() now uses std::span
VulkanInits PipelineCacheCreateInfo() now uses std::span
VertexBuffer Create() and SetData() now use std::span
IndexBuffer Create() and SetData() now use std::span
ImGuiLayer AddFontFromMemoryTTF() now uses std::span
TRAP™ Engine 0.9.109 - 10/05/2023|23w40b1
Simplified CreatePipelineReflection()
Added typedef for UUID (std::array<uint8_t, 16>)
Resolved TODOs in CreatePipelineReflection()
VulkanInits::SwapchainCreateInfoKHR() Removed unnecessary queueFamilyIndexCount parameter
TRAP™ Engine 0.9.108 - 10/04/2023|23w40a3
ControllerMappings is now a constexpr array of string_views
Removed unnecessary linking in static libs
SPIRV-Cross now only compiles to a single static lib
GLSLang now only compiles to a single static lib
TRAP™ Engine 0.9.107 - 10/03/2023|23w40a2
Cleaned up destructors
Removed unnecessary reset() calls
Build-CI Added checkouts of non-public dependencies
TRAP™ Engine 0.9.106 - 10/02/2023|23w40a1
VulkanPhysicalDevice RatePhysicalDevices() Fixed RayTracing always failing checks
VulkanPhysicalDevice RatePhysicalDevices() Greatly reduced score impact of maxImageDimension2D and maxImageDimensionCube
VulkanDevice now always requests all available queues
VulkanRenderer InternalRenderTargets is now dynamically resized when needed (fixes crash on Wayland when minImageCount is > RendererAPI::ImageCount)
VulkanSwapChain Changed assert to warning when more images are returned than requested by vkCreateSwapchainKHR
ImGuiVulkanBackend SetMSAASamples() now waits for device idle before destroying old pipeline
FrameBufferTests Fixed Vulkan errors when MSAA is enabled
RendererAPI Updating of AntiAliasing state now happens per window instead of globally
TRAP™ Engine 0.9.105 - 10/01/2023|23w39b4
UnitTests Moved all functions into anonymous namespaces
Monitor VideoMode width and height are now uint32_t’s
TRAP™ Engine 0.9.104 - 09/31/2023|23w39b3
Engine now requires Windows 10 or newer
TRAP™ Engine 0.9.103 - 09/30/2023|23w39b2
Unittests Roll, Yaw and ATan2 now run the correct functions
TRAP™ Engine 0.9.102 - 09/29/2023|23w39b1
Refactored Update-Dependencies using composite action
TRAP™ Engine 0.9.101 - 09/28/2023|23w39a3
Made Utils::GetEndian() consteval and all calls to it now use if constexpr
TRAP™ Engine 0.9.100 - 09/26/2023|23w39a2
Linux Added support for generating code coverage reports using gcov and lcov
TRAP™ Engine 0.9.99 - 09/25/2023|23w39a1
VulkanLoader Fix conflict between FARPROC definition and minwindef.h
TRAP™ Engine 0.9.98 - 09/24/2023|23w38b2
Added GCEM as submodule
Made many more math functions constexpr using GCEM
Updated unit tests for updated math functions
Changed GCEM submodule to fork
Fixed implicit conversion warnings in unit tests
Update-Dependencies Added job for GCEM
Update-Dependencies Added job for Premake-VSCodeGen
TRAP™ Engine 0.9.97 - 09/23/2023|23w38b1
Tracy.lua Removed TRACY_ENABLE from non profiling configurations
ErrorCodes Replaced call to std::exit() with std::terminate()
Added CrashHandler class which allows to set custom exception handlers
Added exception handlers that log the exception and save the log to disk
TRAP™ Engine 0.9.96 - 09/20/2023|23w38a3
WindowingAPILinuxWayland Removed cursor unavailable error when setting cursor image
TRAP™ Engine 0.9.95 - 09/19/2023|23w38a2
VulkanSwapChain Added reusage of old swapchain on recreation
Updated Steamworks SDK support to v1.58
TRAP™ Engine 0.9.94 - 09/18/2023|23w38a1
Changed constructor initializations
TRAP™ Engine 0.9.93 - 09/17/2023|23w37a3
ImGuiLayer/ImGuiWindowing/ImGuiVulkanBackend Added more asserts
ImGuiLayer/ImGuiWindowing/ImGuiVulkanBackend Replaced pointers with references where possible
Added static to constexpr variables
TRAP™ Engine 0.9.92 - 09/13/2023|23w37a2
ImGuiVulkanBackend Texture cache now uses VulkanTexture class
TRAP™ Engine 0.9.91 - 09/11/2023|23w37a1
ImGuiVulkanBackend Replaced raw Vulkan with TRAP Vulkan classes
TRAP™ Engine 0.9.90 - 09/10/2023|23w36b2
Restructured ImGuiVulkanBackend
GitHub Action Runners updated to 2.309.0
Rebuild and deployed all GitHub Action Runner images
Updated GitHub Action workflow dependencies
TRAP™ Engine 0.9.89 - 09/09/2023|23w36b1
VulkanInits made SamplerCreateInfo() constexpr
ErrorCodes Added new error code VulkanNoMatchingMemoryTypeFound (0x0018)
ErrorCodes Fixed wrong error code for VulkanDeviceLost
Refactored ImGuiLayer and ImGuiVulkanBackend
TRAP™ Engine 0.9.88 - 09/06/2023|23w36a2
VulkanInstance/VulkanDevice Added more layer and extension information
RendererAPIInfo Added more layer and extension information
VulkanInits now uses designated initializers
TRAP™ Engine 0.9.87 - 09/05/2023|23w36a1
Vec2/3/4, Mat3/4, Quaternion Added spaceship and equality operators
Replaced ErrorCodes std::unordered_map with ConstexprMap
TRAP™ Engine 0.9.86 - 08/31/2023|23w35a3
Vec2/3/4 and Mat3/4 Added iterator support
Updated codebase to use Vec2/3/4 and Mat3/4 iterators
TRAP™ Engine 0.9.85 - 08/29/2023|23w35a2
Math small adjustments
TRAP™ Engine 0.9.84 - 08/28/2023|23w35a1
Mat3/Mat4 Added support for std::get()
Mat3/Mat4 Use std::get() where possible
GenerateWayland Added mirror URLs for protocol files
Use std::get() where possible
TRAP™ Engine 0.9.83 - 08/27/2023|23w34b1
Mat3/4 updated value and column constructors
Math small adjustments
TRAP™ Engine 0.9.82 - 08/26/2023|23w34a3
Fixed GCC, Clang and MSVC warnings
TRAP™ Engine 0.9.81 - 08/23/2023|23w34a2
Build-Docs target main branch again
Build-Docs Added action skip for documentation PRs
GenerateDocs Replaced fixed 16 threads with auto
Docs Removed .doctrees folder
WindowingAPI Resolved warnings with PlatformGetScanCodeNameXXX()
TRAP™ Engine 0.9.80 - 08/21/2023|23w34a1
Added Vulkan-Headers as submodule, removing the need for the VulkanSDK
Updated premake scripts
Update-Dependencies Added Vulkan-Headers update job
Build-CI Removed VulkanSDK step
Updated Documentation
TRAP™ Engine 0.9.79 - 08/20/2023|23w33a4
UnitTests Added tests for Math::ASin(), Math::ACos(), Math::ATan()
UnitTests Added tests for Math::SinH(), Math::CosH(), Math::TanH()
UnitTests Added tests for Math::ASinH(), Math::ACosH(), Math::ATanH()
Math Removed RGBColor(), HSVColor(), Saturation(), Luminosity()
UnitTests Added tests for Math::ConvertLinearToSRGB(), Math::ConvertSRGBToLinear()
UnitTests Added tests for Math::IsOdd(), Math::IsEven(), Math::IsFinite()
HeadlessTests Removed Math tests
ImGuizmo Fixed usage of wrong pre-processor macros
ImGuiWindowing Changed CursorPosCallback() to send current position instead of position from last call
TRAP™ Engine 0.9.78 - 08/19/2023|23w33a3
UnitTests Added tests for Math::Degrees(), Math::Cos(), Math::Tan()
Updated YAMLCpp
Quaternion changed data order to WXYZ
Math Added Recompose()
UnitTests Added tests for Math::Recompose()
EditorCamera/OrthographicCamera Removed invalid constexpr
TRAP™ Engine 0.9.77 - 08/16/2023|23w33a2
UnitTests Added tests for Math::AngleAxis(), Math::XAxis(), Math::YAxis(), Math::ZAxis(), Math::Any(), Math::All(), Math::Radians()
TRAP™ Engine 0.9.76 - 08/14/2023|23w33a1
UnitTests Added tests for Math::SLerp(), Math::Conjugate(), Math::EulerAngles()
UnitTests Added tests for Math::Roll(), Math::Pitch(), Math::Yaw(), Math::Mat3Cast(), Math::Mat4Cast()
UnitTests Added tests for Math::QuaternionCast(), Math::QuaternionLookAt(), Math::Angle(), Math::Axis()
TRAP™ Engine 0.9.75 - 08/12/2023|23w32a3
UnitTests Added tests for Math::Scale(), Math::LookAt(), Math::Row(), Math::Column(), Math::Decompose()
Math Changed implementation of Decompose()
TRAP™ Engine 0.9.74 - 08/08/2023|23w32a2
UnitTests Added tests for Math::Translate(), Math::Rotate()
TRAP™ Engine 0.9.73 - 08/07/2023|23w32a1
UnitTests Added tests for Math::InfinitePerspective()
TRAP™ Engine 0.9.72 - 08/06/2023|23w31a2
UnitTests Added tests for Math::Refract(), Math::MatrixCompMult(), Math::OuterProduct(), Math::Transpose(), Math::Determinant()
UnitTests Added tests for Math::Inverse(), Math::Orthographic(), Math::Frustum(), Math::Perspective(), Math::PerspectiveFoV()
TRAP™ Engine 0.9.71 - 08/05/2023|23w31a1
UnitTests Added tests for Math::Dot(), Math::Cross(), Math::Normalize(), Math::FaceForward(), Math::Reflect()
Build-CI Added unit testing jobs
TRAP™ Engine 0.9.70 - 07/30/2023|23w30a4
UnitTests Added tests for Math::FrExp(), Math::LdExp(), Math::FMod(), Math::Lerp(), Math::Pow(), Math::Exp()
Math IsPowerOfTwo() now requires an unsigned integral
Math FMod() and Pow() now requires floating point
Math Fixed a bug in Math::Lerp(Quat, Quat, Scalar)
UnitTests Added tests for Math::Log(), Math::Exp2(), Math::Log2(), Math::Sqrt(), Math::InverseSqrt(), Math::Length(), Math::Distance()
TRAP™ Engine 0.9.69 - 07/28/2023|23w30a3
UnitTests made Math::Step() tests run at compile time
UnitTests Added tests for Math::SmoothStep(), Math::IsNaN(), Math::IsInf(), Math::FMA()
TRAP™ Engine 0.9.68 - 07/25/2023|23w30a2
UnitTests Added tests for Math::Step()
Build-CI Added UnitTests executable to artifacts
TRAP™ Engine 0.9.67 - 07/24/2023|23w30a1
ImGui disabled deprecated/obsolete functions
Updated ImGuiWindowing
UnitTests Added tests for Math::LessThan(), Math::LessThanEqual(), Math::Not()
TRAP™ Engine 0.9.66 - 07/23/2023|23w29a4
UnitTests Fixed some tests always using int8_t
UnitTests Changed various edge case tests
Math Fixed unsigned integral Mod() giving wrong results
Math Replaced floating-point Mod() implementation with std::fmod()
Math Removed IRound() and URound()
Math Fixed NotEqual() sometimes not returning the correct value
Quaternion Fixed UB on dereferencing w component
UnitTests Added tests for Math::Mix(), Math::Equal(), Math::NotEqual(), Math::GreaterThan(), Math::GreaterThanEqual()
TRAP™ Engine 0.9.65 - 07/21/2023|23w29a3
Math constrained Abs() to signed types
TRAP™ Engine 0.9.64 - 07/20/2023|23w29a2
Math Added Min() and Max() with up to 4 parameters
Extended tests for Math::Min() and Math::Max()
Added test for Math::Clamp()
Math Added debug assert for Math::Clamp()
Premake Added TRAP-UnitTests configuration
TRAP™ Engine 0.9.63 - 07/17/2023|23w29a1
Math Added missing integral specialization of Math::Mod()
Math Resolved some compiler warnings
Added test for Math::Ceil(), Math::Floor(), Math::Fract(), Math::Mod(), Math::Modf(), Math::RoundEven() and Math::Sign()
Extended tests for Math::Round() and Math::Trunc()
TRAP™ Engine 0.9.62 - 07/16/2023|23w28b2
Replaced GoogleTest with Catch2
Added first unit tests for TRAP::Math::Sin() and TRAP::Math::Min()
Added tests for Math::Abs(), Math::Max(), Math::Round() and Math::Trunc()
Constrained Mat4, Mat3 and Quaternion to floating-point types
Math Added Abs() support for matrix types
Extended tests for Math::Abs() with matrix types
TRAP™ Engine 0.9.61 - 07/15/2023|23w28b1
Backported std::ranges::contains() from C++23
Used std::ranges::contains() where possible
Use std::ranges algorithms where possible
Replaced std::ranges::move() with std::shift_left()
Re-enabled TSAN builds as it works with RADV
Added GoogleTest as submodule
Update-Dependencies Added auto updating for GoogleTest dependency
Added UnitTest project using GoogleTest
TRAP™ Engine 0.9.60 - 07/12/2023|23w28a2
VulkanPhysicalDevice Added support for VkPhysicalDeviceDriverProperties
VulkanRenderer Changed device and driver logging
TRAP™ Engine 0.9.59 - 07/11/2023|23w28a1
TRAP::Log now prints warnings, errors and critical errors to std::cerr
RendererAPI Added size parameter to push constants to allow for validation with shader reflection
Use predefined TRAP::Math::X/Y/ZAxis<T>() instead of manual Vec3 construction
Shader fixed typo in #define when using user defined macros
Replaced reverse iterators with std::ranges::reverse_view()
SPIRVTools Replaced .count() with .contains()
TRAP™ Engine 0.9.58 - 07/09/2023|23w27a2
Added concepts/requires to template functions
Removed static from free standing constexpr functions in headers
Updated ImGuiVulkanBackend
TRAP™ Engine 0.9.57 - 07/08/2023|23w27a1
Added constexpr to functions where possible now since C++20
TRAP™ Engine 0.9.56 - 07/02/2023|23w26a4
Moved ToUnderlying() as std::to_underlying() to Core/Backports.h
Utils String Added Contains() function (backported from C++23)
Backported C++23s std::byteswap()
Utils Replaced Memory::SwapBytes implementation with std::byteswap
Base Added constraints to BIT()
TRAP™ Engine 0.9.55 - 07/01/2023|23w26a3
Made custom std::hash operators constexpr
Made UID constexpr
Replaced “.erase(std::remove())” calls with std::erase(_if)
Replaced std::strcmp with string_view comparisons
WindowingAPI::ParseUriList() Fixed prefix not getting removed
Refactored WindowingAPI::ParseUriList()
EventDispatcher Dispatch() Added support for member function parameters
Updated EventDispatcher::Dispatch() usage
Changed captures of lambdas
TRAP™ Engine 0.9.54 - 06/29/2023|23w26a2
Added constexpr to functions containing std::string
Simplified UUIDFromString()
Made ConvertHashToString() constexpr
Utils::String Added IsSpace(), IsAlpha(), IsAlphaNumeric()
Config::ParseLine() is now constexpr
TRAP™ Engine 0.9.53 - 06/26/2023|23w26a1
Added constexpr to functions containing std::vector
TRAP™ Engine 0.9.52 - 06/25/2023|23w25b2
Events Added constexpr to virtual functions
(Vulkan)Buffer Added constexpr
ScriptableEntity, Socket, Packet, Layer Added constexpr to virtual
Image Added constexpr to virtual
Shader, Camera, SwapChain, Semaphore, Sampler, QueryPool Added constexpr to virtual
PipelineCache, Fence, DescriptorSet, DescriptorPool, CommandSignature Added constexpr to virtual
RendererAPI Added constexpr to virtual
Replaced some find() != end() calls with contains()
Replaced std::thread with std::jthread where it makes sense
Added constexpr to destructors where possible
Math is now more constexpr
Updated ImGuiWindowing
Added constinit where appilcable
Update-Controller-Mappings Fixed invalid PR branch name
TRAP™ Engine 0.9.51 - 06/24/2023|23w25b1
Utils un-deprecated GetEndian()
Log Changed Log::Level checks
Utils Added fixed-size, compile-time and thread safe ConstexprMap container
VulkanCommon ErrorCheck() and ReflexErrorCheck() now use ConstexprMap
Replaced operators in some classes with the spaceship operator
TRAP::Utils::String Replaced StartsWith() with std::string::starts_with()
TRAP::Utils::String Replaced EndsWith() with std::string::ends_with()
TRAP™ Engine 0.9.50 - 06/22/2023|23w25a4
Replaced more string concatenation chains with fmt::format()
Changed fmt submodule to tag 10.0.0
Update-Dependencies Added fmt update job
TRAP™ Engine 0.9.49 - 06/21/2023|23w25a3
Replaced string concatenation chains with fmt::format()
TRAP™ Engine 0.9.48 - 06/20/2023|23w25a2
Added {fmt} as submodule
Updated premake scripts
Added fmt::formatter for existing std::ostream specialization
Replaced std::cout with fmt::print
Replaced std::cerr with fmt::print
TRAP::Log now uses fmt::format and fmt::print
Added fmt/std.h
TRAP™ Engine 0.9.47 - 06/19/2023|23w25a1
VulkanCommon VkCall() and VkReflexCall() now use std::source_location
Replaced deprecated EnTT functions
TRAP_ASSERT now uses std::source_location
Utils Deprecated GetEndian()
TRAP™ Engine 0.9.46 - 06/18/2023|23w24b2
TRAP version is now consteval
GitHub Actions reduced update checks to once a week
GitHub Actions Added Update-Dependencies workflow
ImGuiLayer Fixed loading of imgui.ini not working
TRAP™ Engine 0.9.45 - 06/17/2023|23w24b1
ControllerMappings Removed modification date
Updated generatedocs.lua
Build-Docs now uses virtual python enviroment for packages
Build-Docs Added missing graphviz dependency
TRAP™ Engine 0.9.44 - 06/16/2023|23w24a5
Added workflow to automatically update the controller mappings
TRAP™ Engine 0.9.43 - 06/15/2023|23w24a4
Update-Vulkan-Loader enabled cloning of submodules
Update-Vulkan-Loader Added signing of commits
Make some premake generation scripts independent from the project files
Set execute flags for Premake5 and GeneratorScripts
Build-Docs workflow now creates PRs instead of directly commiting
TRAP™ Engine 0.9.42 - 06/14/2023|23w24a3
Added workflow to automatically update the Vulkan Loader
TRAP™ Engine 0.9.41 - 06/13/2023|23w24a2
Build-CI Added experimental caching of build dependencies to job build-linux-gcc-13
Build-CI also cache intermediate files
Build-CI Reverted experimenal caching of build dependencies
Build-CI Added new cleanup step
Build-CI Removed old cleanup step
TRAP™ Engine 0.9.40 - 06/12/2023|23w24a1
Added Dockerfiles and scripts used by self-hosted GitHub Actions Runner
GitHub Action Runners Added NodeJS 12.22.12
GitHub Action Runners Changed post cleanup (fixes empty caches)
GitHub Action Runners Removed post cleanup
TRAP™ Engine 0.9.39 - 06/09/2023|23w23a1
Switched to self-hosted GitHub Action runners
Updated Build-CI and Build-Docs workflows
Build-CI now builds using GCC 13 and Clang 16
Build-CI switched back to using latest Vulkan SDK release
Build-CI Added missing dependencies for Ubuntu
Build-CI Removed PDB files from Windows build artifacts
Build-CI Removed Redists from Linux artifacts
Build-CI Added cleanup step
TRAP™ Engine 0.9.38 - 05/27/2023|23w21b2
Replaced std::filesystem::path::u8string() with std::filesystem::path::string()
Premake switched to C++20
Replaced TRAP::Utils::BitCast with std::bit_cast
Fixed entt compiler error
Log Replaced in place variadic unfolding hack
Replaced std::filesystem::path::generic_u8string() with generic_string()
Scene Replaced deprecated implicit this in lambdas
TRAP™ Engine 0.9.37 - 05/26/2023|23w21b1
Build-CI Ubuntu 22.04 replaced GCC 10 with GCC 12
Build-CI Ubuntu 22.04 replaced Clang 12 with Clang 14
Dropped support for Visual Studio 2019 (MSVC)
Build-CI Removed Visual Studio 2019 (MSVC) job
TRAP™ Engine 0.9.36 - 05/25/2023|23w21a2
Premake scripts reduced redundancy of optional third party dependencies
TRAP™ Engine 0.9.35 - 05/24/2023|23w21a1
Premake scripts reduced redundancy
TRAP™ Engine 0.9.34 - 05/21/2023|23w20b2
Updated ImGui submodule
Updated ImGuiVulkanBackend and ImGuiWindowing
RadianceImage Added support for x axis first images
Window GetVSync() and SetVSync() are now aliases to RendererAPI
TRAP™ Engine 0.9.33 - 05/20/2023|23w20b1
Monitor changed equality operators
Window Refactored SetDisplayMode() into SetFullScreen(), SetFullscreenBorderless() and SetWindowed()
VulkanRenderer Fixed VK_KHR_shader_float_controls extension not always applied
Updated GLSLang submodule
Updated SPIRV-Cross submodule
Updated Steamworks SDK support
Updated VulkanMemoryAllocator submodule
Updated YAMLCpp submodule
Updated controller mappings
Updated Vulkan loader
Added ImGuizmo as submodule
ImGuiLayer Added SetImGuizmoStyle()
WindowingAPILinuxWayland SetAspectRatio() now also emits a window resize event
TRAP™ Engine 0.9.32 - 05/19/2023|23w20a3
WindowingAPI Added GetNativeMode() for monitors
Monitor Added GetNativeMode()
Monitor Changed constructor
Monitor VideoMode Added equality operators
Window Added GetFrameBufferWidth() and GetFrameBufferHeight()
Window Reduced stored data
MonitorTests Removed caching of monitor data
Updated Premake Visual Studio Code workspace generator
TRAP™ Engine 0.9.31 - 05/18/2023|23w20a2
WindowingAPILinuxWayland Fixed key repeats not working
TRAP™ Engine 0.9.30 - 05/16/2023|23w20a1
Application exposed unfocused FPS limit via config and getter/setter
Disabled LTO because it makes GDB start very slowly
Events Added KeyRepeatEvent
Window Removed redundant WindowData
TRAP™ Engine 0.9.29 - 05/09/2023|23w19a1
Enabled Link time optimization (Interprocedural optimization) by default
Build-CI changed used Vulkan SDK version from latest to 1.3.243.0
Premake Linux enabled mold as default linker if installed
TRAP™ Engine 0.9.28 - 05/06/2023|23w18b2
ConvertToSPIRV Added info parameter to query generated shader files
Shader Replaced fixed-size std::arrays with std::vector
VulkanRenderer now requires SPIRV 1.4
TRAP™ Engine 0.9.27 - 05/05/2023|23w18b1
Changed SPIRV Shader file format from “.spirv” to “.tp-spv”
Added file format specification for TRAP-SPIRV (TP-SPV) files to ConvertToSPIRV
Updated ConvertToSPIRV utility
Updated engine side Shader implementation
TRAP™ Engine 0.9.26 - 05/02/2023|23w18a2
Texture Moved Rotate90Clockwise() and Rotate90CounterClockwise() to Image
TRAP™ Engine 0.9.25 - 05/01/2023|23w18a1
Fixed crash when loading an RadianceImage
Updated RadianceImage implementation
GenerateDocs Reverted pip break-system-packages flag and enabled pip output
TRAP™ Engine 0.9.24 - 04/29/2023|23w17a5
Resolved Build-CI Clang warnings
TRAP™ Engine 0.9.23 - 04/28/2023|23w17a4
Resolved Build-CI Clang warnings
TRAP™ Engine 0.9.22 - 04/27/2023|23w17a3
Replaced some static_casts with NumericCast() and ToUnderlying()
Resolved Build-CI GCC warnings
Resolved Build-CI Clang warnings
TRAP™ Engine 0.9.21 - 04/26/2023|23w17a2
Replaced some static_casts with NumericCast() and ToUnderlying()
Updated ModernDialogs submodule
TRAP™ Engine 0.9.20 - 04/25/2023|23w17a1
Replaced some static_casts with NumericCast() and ToUnderlying()
GenerateDocs Added pip break-system-packages flag
TRAP™ Engine 0.9.19 - 04/23/2023|23w16a5
Replaced some static_casts with NumericCast() and ToUnderlying()
TestNetwork Added missing SteamworksSDK to premake file
TestNetwork Removed unnecessary DiscordGameSDK from premake file
GitHub Actions Added job for Linux Clang
TRAP™ Engine 0.9.18 - 04/22/2023|23w16a4
Replaced some static_casts with NumericCast() and ToUnderlying()
TRAP™ Engine 0.9.17 - 04/20/2023|23w16a3
Fixed SteamworksSDK compiler error
Premake Added missing SteamworksSDK include headers
TRAP™ Engine 0.9.16 - 04/20/2023|23w16a2
Replaced some static_casts with NumericCast() and ToUnderlying()
TRAP™ Engine 0.9.15 - 04/18/2023|23w16a1
Replaced some static_casts with NumericCast() and ToUnderlying()
TRAP™ Engine 0.9.14 - 04/16/2023|23w15b1
Base Added NumericCast() a checked version of static_cast for integers and float
Base Added ToUnderlying() utility to convert enum values to its underlying data type
Vec2/3/4 and Mat3/4 Changed operator[] data type
Replaced some static_casts with NumericCast() and ToUnderlying()
Fixed Windows crash while loading secret symbols
TRAP™ Engine 0.9.13 - 04/15/2023|23w15a2
Changed Utils::BitCast function
Added comments to #endif
Config Fixed Get() didnt return std::vector
Config Get() now returns empty optional if key was not found
Config Removed Get() with out parameter
Added ErrorCode enum and DisplayError()
Replaced all critical errors with Utils::DisplayError()
Application GetHotReloadingFileWatcher() now returns an optional reference
TRAP™ Engine 0.9.12 - 04/10/2023|23w15a1
Branch NVReflex-1.8:
Premake made NVIDIA-Reflex SDK path not hard coded anymore
Merged NVReflex-1.8 into dev
Application reverted change to window minimization handling
TRAP™ Engine 0.9.11 - 04/09/2023|23w14b1
VulkanPhysicalDevice Allow other physical device types when using headless mode
Docs Updated differences between normal and headless mode
Renamed PerWindowData to PerViewportData
Headless mode Removed support for VSync
Branch headless-rendererapi-rework:
Headless mode Removed usage of TRAP::Window
Headless mode Removed support for Window, Monitor, SwapChain, VulkanSwapChain, VulkanSurface, Input, WindowingAPI
Headless mode Removed unnecessary TRAP_HEADLESS_MODE checks
Headless mode Removed unnecessary GetLinuxWindowManager() checks
Headless mode Added saving and loading of viewport width and height through engine.cfg
Headless mode Added RendererAPI::GetResolution() function to query viewport size
Merged headless-rendererapi-rework into dev
Fixed include order in some files
RendererAPI::CaptureScreenshot() now returns nullptr on error
Branch NVReflex-1.8:
Updated premake files
Updated NVIDIA-Reflex implementation
Verified correct functionality of NVIDIA-Reflex
TRAP™ Engine 0.9.10 - 04/08/2023|23w14a3
Refactored TRAP::Application functions
Application destructor Fixed Input::Shutdown() only called on Linux
Application Fixed crash with Headless mode
Headless mode Removed ImGuizmo dependency
Headless mode Removed ImGui dependency
Headless mode Removed DiscordGameSDK and NVIDIA-Reflex support
Added issue template for bug reporting
Headless mode Added NVIDIA Aftermath SDK as an optional dependency
Headless mode Added Steamworks SDK as an optional dependency
SteamworksSDK Added support for Steam Game Server API
Headless mode Removed support for ControllerEvent, KeyEvent and MonitorEvent
Headless mode Removed support for MouseEvent and WindowEvent
TRAP™ Engine 0.9.9 - 04/07/2023|23w14a2
Refactored TRAP::Application constructor and destructor
TRAP™ Engine 0.9.8 - 04/06/2023|23w14a1
GitHub Actions Added uploading of release executable artifacts
TRAP™ Engine 0.9.7 - 04/02/2023|23w13d1
WindowingAPIWin32 Added more accurate monitor names
TRAP::CreateApplication() now uses std::vector<std::string_view> for argv/argc parameter
Added .clang-tidy file
Resolved most clang-tidy warnings in TRAP
Games Resolved most clang-tidy warnings
TRAP™ Engine 0.9.6 - 04/01/2023|23w13c1
Replaced std::array::operator[] with std::get() where a constant index is used
Fixed MSVC compiler error in FuncCommon.cpp
ImageFormat/VulkanCommon Commented out deprecated formats of VK_IMG_format_pvrtc extension
Vec2/3/4 Added std::get() support
Docs Added NVIDIA Reflex SDK to additional libraries
All known critical errors now have a MsgBox and quit the engine immediately
Fixed warnings in Games folder
WindowingAPI Updated Taskbar progress implementation
TRAP™ Engine 0.9.5 - 03/31/2023|23w13b4
WindowingAPI PlatformDestroyWindow() Replaced pointer usage with references where possible
WindowingAPI Made functions constexpr where possible
TRAP™ Engine 0.9.4 - 03/30/2023|23w13b3
WindowingAPILinux Added const to pointers
WindowingAPI Replaced pointer usage with references where possible
WindowingAPILinux Fixed GetCursorPos() returning wrong values
WindowingAPI Callbacks replaced pointer usage with references where possible
TRAP™ Engine 0.9.3 - 03/29/2023|23w13b2
WindowingAPILinux Added missing elses
WindowingAPIWin32 Fixed PlatformGetVideoModes() returning the current video mode multiple times
WindowingAPIWin32 Replaced pointer usage with references where possible
WindowingAPIWin32 Added asserts
TRAP™ Engine 0.9.2 - 03/28/2023|23w13b1
WindowingAPILinuxX11 Replaced pointer usage with references where possible
WindowingAPILinuxWayland Fixed hidden or disabled cursors were still displaying
WindowingAPILinuxWayland Fixed drag and drop not working
WindowingAPILinuxWayland Replaced pointer usage with references where possible
TRAP™ Engine 0.9.1 - 03/27/2023|23w13a1
WindowingAPIWin32 Windows now also process events while being dragged or resized
FileWatcher Changed error message formatting
WindowingAPILinuxX11 Added asserts
WindowingAPILinuxX11 Replaced magic return values with std::optional where appropriate
WindowingAPILinuxWayland Added missing PlatformSetWindowAspectRatioWayland() function
TRAP™ Engine 0.9.0 - 03/26/2023|23w12d1
Merged Wayland support
Updated Controller mappings
Updated Vulkan loader
Updated Box2D, GLSLang, ModernDialogs, SPIRV-Cross, VulkanMemoryAllocator submodules
TRAP™ Engine 0.8.108 - 03/26/2023|23w12c1
Branch wayland:
GitHub Action Build-CI workflow Added Wayland dependencies
TRAP premake5.lua GenerateWayland() now immediately returns if OS is not linux
WindowingAPIWin32 Fixed compiler errors
Moved Wayland protocol generator into its own Premake module
TRAP™ Engine 0.8.107 - 03/25/2023|23w12b2
Branch wayland:
WindowingAPILinuxWayland Removed unnecessary assert
Added [[maybe_unused]] to commented out parameters
TRAP™ Engine 0.8.106 - 03/24/2023|23w12b1
Branch wayland:
WindowingAPILinuxWayland Added more asserts
WindowingAPILinuxWayland Changed some for loops
WindowFeaturesTests Changed hide briefly functionality
WindowingAPILinuxWayland Replaced some return types with std::optional
Utils Added TRAP_WM env var detection to GetLinuxWindowManager()
TRAP™ Engine 0.8.105 - 03/23/2023|23w12a2
Branch wayland:
WindowingAPILinuxWayland Added documentation for functions
TRAP™ Engine 0.8.104 - 03/22/2023|23w12a1
Branch wayland:
WindowingAPILinuxWayland Codestyle const-correctness
WindowingAPILinuxWayland Added Tracy markers everywhere
TRAP™ Engine 0.8.104 - 03/21/2023|23w12a1
Updated Redists/GameInputRedist.msi
TRAP™ Engine 0.8.103 - 03/18/2023|23w11a2
Branch wayland:
Added video mode emulation
TRAP™ Engine 0.8.102 - 03/17/2023|23w11a1
Branch wayland:
Implemented PlatformSetWindowMonitorBorderlessWayland()
Resolved shadowing warnings for “pointer”
Removed refresh rate rounding to integer
Better names for monitors
WindowingAPI Added Wayland remarks to functions
TRAP™ Engine 0.8.101 - 03/04/2023|23w09c1
Branch wayland:
Worked around NVIDIA Wayland bug making windows transparent with some blend modes
Marked commented out function parameters with [[maybe_unused]] attribute
TRAP™ Engine 0.8.100 - 03/03/2023|23w09b2
Branch wayland:
WindowingAPILinuxWayland Added support for wp_content_type protocol
TRAP™ Engine 0.8.99 - 03/01/2023|23w09b1
VulkanRenderer StartGraphicRecording() now handles VulkanSwapChain::AcquireNextImage() failures
Branch wayland:
WindowingAPILinuxWayland Added [[nodiscard]] attributes where applicable
WindowingAPILinuxWayland Added support for xdg_activation protocol
WindowingAPILinuxX11 Moved DBus stuff to WindowingAPILinux
TRAP™ Engine 0.8.98 - 02/28/2023|23w09a2
VulkanRenderer Added shutdown if swapchain image acquire fails
Branch wayland:
WindowingAPILinuxWayland Added missing libdecor.so unloading
TRAP™ Engine 0.8.97 - 02/27/2023|23w09a1
Update Tracy submodule
TRAP™ Engine 0.8.97 - 02/26/2023|23w08b1
Branch wayland:
WindowingAPILinuxWayland Added support for libdecor client-side window decorations
TRAP™ Engine 0.8.96 - 02/25/2023|23w08a1
Branch wayland:
ImGuiLayer disabled Multi-Viewport support when compiling with Wayland support enabled
WindowingAPILinuxWayland Implemented PlatformSetWindowResizableWayland()
TRAP™ Engine 0.8.96 - 02/24/2023|23w08a1
WindowingAPIWin32 PlatformGetVideoModes() now always returns the currently used video mode
WindowingAPIWin32 Updated dark/light mode handling
TRAP™ Engine 0.8.95 - 02/17/2023|23w07c1
Updated TRAP.gif animation
Updated VulkanLoader generator script
TRAP™ Engine 02/14/2023|23w07b1
Updated compile_commands.json generator
Updated Premake-VSCodeGen submodule
Added support for AddressSanitizer, UndefinedBehaviorSanitizer and LeakSanitizer on Linux
TRAP™ Engine 0.8.94 - 02/13/2023|23w07a3
Updated documentation (index.md)
WindowingAPIWin32 Windows now display black background during initialization
WindowingAPIWin32 now disables accessibility keys if not in use while engine is running
TRAP™ Engine 0.8.93 - 02/12/2023|23w06a2
GitHub Action Docs workflow now runs when pushed on master branch
Updated NVIDIA Nsight Aftermath support to 2022.2
Updated VulkanLoader to Vulkan API 1.3.240
Updated ControllerMappings
Updated Box2D, GLSLang, SPIRV-Cross, Vulkan Memory Allocator
Updated ImGui submodule
TRAP™ Engine 02/07/2023|23w06a1
Removed Visual Studio 2017 support (preparation for C++20)
Removed unnecessary Linux Visual Studio project generation scripts
GitHub Actions Added workflow for Visual Studio 2019
TRAP™ Engine 01/26/2023|23w04a1
Updated all licenses
2022
TRAP™ Engine 0.8.92 - 12/26/2022|22w52a1
ImageFormat Added ImageFormatIsNormalized(), ImageFormatIsSigned()
RendererAPI Added type for ClearValue (color/depth and stencil)
Updated RendererAPI to use new ClearValue type
VulkanInits Added ClearColorValue() which converts clear color data to a specific image format
Updated TRAP-Editor and FrameBufferTests
TRAP™ Engine 0.8.91 - 12/25/2022|22w51d1
Updated ResourceLoader
TRAP™ Engine 0.8.90 - 12/24/2022|22w51c1
Resolved GLSLang linker error
ConvertToSPIRV Fixed compiler error
ConvertToSPIRV Added nodiscard attribute where applicable
ImGuiLayer Added engine termination if ImGuiWindowing::Init() failed
exit() calls replaced -1 return code with the actual error code
ImGuiLayer Removed test code
TRAP™ Engine 0.8.89 - 12/23/2022|22w51b1
Made WindowingAPI sole owner of InternalWindows and InternalCursors
Updated Controller mappings
Updated Vulkan loader
Updated EnTT
Updated GLSLang
Updated ImGui
Updated SPIRV-Cross
Updated VulkanMemoryAllocator
Updated YAMLCpp
TRAP™ Engine 0.8.88 - 12/22/2022|22w51a3
Added [[nodiscard]] attribute to lots of functions
WindowsInput Replaced qsort with std::sort
(Vulkan)Buffer/PipelineCache/RootSignature Made some function non-virtual
TRAP™ Engine 0.8.87 - 12/21/2022|22w51a2
Removed TRAP_ASSERTs which are already guaranteed to not get triggered
TRAP™ Engine 0.8.86 - 12/20/2022|22w51a1
Added noexcept where applicable
TRAP™ Engine 0.8.85 - 12/18/2022|22w50c2
Added noexcept to some constructors
SPIRVTools Moved CrossCompiler::m_compiler to stack
WindowingAPI Fixed retrieving of monitor resolutions
Added noexcept to Events
TRAP™ Engine 0.8.84 - 12/17/2022|22w50c1
Premake Added architecture option to all files
TRAP™ Engine 0.8.83 - 12/16/2022|22w50b1
Sampler Added automatic updating of anisotropy level for samplers that use the engine default
TRAP™ Engine 0.8.82 - 12/12/2022|22w50a1
Application Fixed Fallback Shader/Texture destruction error
Headless FileSystem now doesnt create game documents folder
Headless AftermathTracker now uses current path instead of game documents path
AftermathTracker Changed crash dump file ending from “.dump” to “.nv-gpudmp”
TRAP™ Engine 0.8.81 - 12/11/2022|22w49b2
Branch decouple-resolution:
Added initial support for render scaling (doesnt support resizing and MSAA yet)
Added window resizing support for render scaling
Disabled VRS after render scaling pass
VulkanRenderer StartGraphicRecording() now checks with internal resolution against VRS image attachment
Updated VRSTests
RendererAPI MSAAResolvePass replaced Window* with CommandBuffer*
RendererAPI Removed RenderTargetsMSAA
VulkanRenderer Combined UpdateAntiAliasingRenderTargets() with UpdateInternalRenderTargets()
RendererAPI ShadingRateTextures are now cached so they dont get destroyed while being in use by command buffers
RendererAPI RenderScalePass() WIP MSAA support
RendererAPI ShadingRateTexture is now of type RenderTarget instead of Texture
ImGuiLayer now automatically sets appropriate MSAA sample count
ImGuiLayer Removed SetMSAASamples()
VulkanRenderer Finished MSAA RenderScale support
VulkanRenderer RenderScalePass() removed code redundancy
Headless-Mode Added support for RenderScale
Tests Added RenderScaleTests
TRAP™ Engine 0.8.80 - 12/10/2022|22w49b1
Branch decouple-resolution:
RenderCommand/RendererAPI/VulkanRenderer Added SetRenderScale(), GetRenderScale() and OnPostUpdate() functions
Engine.cfg Added RenderScale
Moved MSAA RenderTarget from SwapChain to PerWindowData
TRAP™ Engine 0.8.79 - 12/05/2022|22w49a1
VRSTests/AntiAliasingTests unsupported values are now greyed out in combo boxes
VRSTests now uses a circular pattern for shading rate texture
VRSTests Added visualization pass for shading rate
VRSTests Added check if VRS is actually supported before trying to load the visualization shader
VulkanShader Fixed a crash when shaders do not use any descriptors
Fixed Windows freezing when application focus is lost
TRAP™ Engine 0.8.78 - 12/03/2022|22w48b2
RendererAPI/RenderCommand Added Get/SetAnisotropyLevel()
Sampler constructor now injects engine set anisotropy level if EnableAnisotropy is true and OverrideAnisotropyLevel is 0
Engine.cfg Added AnisotropyLevel
Renderer2D Added SetCustomSampler() to specify a custom sampler to use
Renderer2D/Cube3D Added check if anisotropy level changed
Tests Added AnisotropyTests
Engine.cfg AntiAliasingQuality now defaults to 2 instead of (invalid) 1
TextureManager/ShaderManager Added Shutdown()
Moved RendererAPI usings to RenderCommand
TRAP™ Engine 0.8.77 - 12/02/2022|22w48b1
VulkanPhysicalDevice RatePhysicalDevices() Added checks for VRS
TRAP™ Engine 0.8.76 - 12/01/2022|22w48a4
VulkanRenderer Fixed VK_KHR_multiview used instead of VK_KHR_create_renderpass2
VRSTests Fixed issues with GPUs that dont support VRS
VulkanRenderer Fixed ReflexMarker() trying to call NVIDIA Reflex SDK API while not using supported NVIDIA GPU
TRAP™ Engine 0.8.75 - 11/30/2022|22w48a3
Updated README
Fixed VulkanPipeline.cpp compiler error
VRSTests Added resizing of shading rate texture
TRAP™ Engine 0.8.74 - 11/29/2022|22w48a2
VulkanRenderPass Added support for VkFragmentShadingRateAttachmentInfoKHR
Added support for Tier 2 Variable Rate Shading (Texture attachment)
VRSTests Added Tier 2 example
TRAP™ Engine 0.8.73 - 11/28/2022|22w48a1
Scene Added destructors of Box2D on OnRuntimeStop()
VulkanRenderer Added support for VK_KHR_create_renderpass2
VulkanRenderer now uses VK_KHR_create_renderpass2 as default when device supports it
TRAP™ Engine 0.8.72 - 11/26/2022|22w47c2
Replaced dynamic_cast with std::dynamic_pointer_cast where smart pointers are used
Silenced TracyLockable warnings for now
TRAP™ Engine 0.8.71 - 11/25/2022|22w47c1
DiscordGameSDK Create() now only sets default activity if provided appID is TRAPs
Monitor Removed Window::GetMonitor() friend
Window Added SetDisplayMode() overload for Monitor::VideoMode
RendererAPI Added SetNewGPU() and GetNewGPU() to allow setting a different GPU to use on the next engine run
Made TimeStep constexpr
Window/WindowingAPI Added SetAspectRatio() to restrict windows to a specific aspect ratio
Updated Tracy profiler to v0.9
Moved Tracy into own static lib
FileWatcher constructor removed path(s) parameter
Added TRAP_ASSERTs to Application, HotReloadEvent, WindowEvent, FileSystem and FileWatcher
Added TRAP_ASSERTs to DescriptorPool, Fence and Sampler
AftermathTracker Changed some variable and function names
Changed messages of TRAP_ASSERTs
TRAP™ Engine 0.8.70 - 11/24/2022|22w47b2
Fixed GCC Wshadow warnings
Updated Readme
TRAP™ Engine 0.8.69 - 11/23/2022|22w47b1
Fixed GCC Wconversion warnings
TRAP™ Engine 0.8.68 - 11/22/2022|22w47a2
Improved PNG loader
Reworked TRAP_ASSERT
Fixed GCC Wpedantic warnings
TRAP™ Engine 0.8.67 - 11/21/2022|22w47a1
Updated Codestyle.md
Added missing ModernDialogs License
Fixed bug in compile_commands.json generator
ImGuiLayer Added std::string overloads for InputText(), InputTextMultiline() & InputTextWithHint()
TRAP™ Engine 0.8.66 - 10/29/2022|22w43b1
Fixed TRAP_PROFILE_SYSTEMS() compiler errors
Games now use Framebuffer size instead of window size
Window/FrameBufferResizeEvent Added GetAspectRatio()
Games now use GetAspectRatio() instead of manually calculating it
WindowingAPI refresh rate is now a double, removed rounding
TRAP™ Engine 0.8.65 - 10/26/2022|22w43a2
Changed usage of constexpr in combination with static and inline keywords
Fixed FPS limiter inaccuracy
TRAP™ Engine 0.8.64 - 10/24/2022|22w43a1
Scene Removed OnComponentAdded() template
Application OnTick() may now be called multiple times per frame if devices FPS are lower than the set tick rate
Application limited number of OnTick() calls to a maximum of 8 per frame
TRAP™ Engine 0.8.63 - 10/23/2022|22w42c1
Integrated NVIDIAReflexTest into InputLagTest
Removed NVIDIAReflexTests
Windows Added COMInitializer an exception-safe RAII wrapper for COM initialization
TRAP™ Engine 0.8.62 - 10/22/2022|22w42b1
Changed includes
RendererAPI Removed the default window = nullptr stuff, RenderCommand now defaults to TRAP::Application::GetWindow()
Fixed MSVC linker error
TRAP™ Engine 0.8.61 - 10/21/2022|22w42a2
Docs Added Steamworks SDK to buildingtrap.md
RendererAPI Changed GetMainWindowData() into a generic GetWindowData() function
TRAP™ Engine 0.8.60 - 10/20/2022|22w42a1
FileSystem unified OpenFileInFileBrower() and OpenFolderInFileBrowser() into OpenInFileBrowser()
FileSystem unified MoveFile() and MoveFolder() into Move()
FileSystem unified CopyFile() and CopyFolder() into Copy()
FileSystem unified RenameFile() and RenameFolder() into Rename()
FileSystem renamed GetFileName() to GetFileNameWithoutEnding()
FileSystem renamed DeleteFileOrFolder() to Delete()
FileSystem renamed FileOrFolderExists() to Exists()
FileSystem renamed GetFileOrFolderSize() to GetSize()
FileSystem renamed IsPathEquivalent() to IsEquivalent()
FileSystem added IsEmpty() to check for empty files and folders
FileSystem added SetCurrentFolderPath() to set the current working directory
FileSystem made ReadTextFile() faster
FileSystem Fixed WriteFile() and WriteTextFile() append mode
HeadlessTests Addded FileSystemTests
TRAP™ Engine 0.8.59 - 10/15/2022|22w41a3
FileChangeEvent Changed oldName to be of type std::optional<std::filesystem::path>
FileSystem Added and changed error message
TRAP™ Engine 0.8.58 - 10/14/2022|22w41a2
LinuxInput Replaced opendir(), readdir() & closedir() in InitController() with std::filesystem equivalents
FileWatcher Fixed MSVC compilation errors
FileSystem OpenFileInFileBrowser() Replaced ILCreateFromPath() with SHParseDisplayName()
TRAP™ Engine 0.8.57 - 10/13/2022|22w41a1
Added more error checks for WinAPI/Linux specific functions
EntryPoint Removed OpenGL specific variables
Network prevented leaking “far” macro to other includes
Replaced FileStatusToString(), MouseButtonToString(), Rigidbody2DBodyTypeToString(), Rigidbody2DBodyTypeFromString() with ConvertToType() and ConvertToString()
Moved EncodeUTF8() to TRAP::Utils::String
LinuxInput Replaced POSIX regex with std::regex
TRAP™ Engine 0.8.56 - 10/08/2022|22w40b1
Log now utilizes the unused IsColorTerminal() function
Removed noexcept from potentially throwing functions
TRAP™ Engine 0.8.55 - 10/03/2022|22w40a1
AftermathTracker Fixed Tracy macro compiler error
Network Packet replaced std::copy_n with memcpy once again
Renderer2D lowered RAM usage by delaying buffer creation to the first draw call of each geometry type (i.e. quad, circle, line)
Profiler tracy::SetThreadName() now only gets called when TRACY_ENABLE is defined
ConvertToSPIRV Added version number (0.1.0) and added CLI parameter for it
TRAP™ Engine 0.8.54 - 10/02/2022|22w39c3
Base Added ability to compile-time define what to profile via TRAP_PROFILE_SYSTEMS()
Changed instrumentation to use TRAP_PROFILE_SYSTEMS()
TRAP™ Engine 0.8.53 - 10/01/2022|22w39c2
Premake scripts Added support for Tracy
Profiler Added names for threads
String Fixed double null terminator ins GetTimeStamp() and GetDateTimeStamp()
Profiler Added log messages
Base Added overloads for new and delete (only used for memory profiling)
Profiler Added all mutexes
Profiler Added instrumentation everywhere
Profiler color coded instrumentation
Premake disabled PCH for TracyClient.cpp
TRAP™ Engine 0.8.52 - 09/30/2022|22w39c1
Changed premake scripts optimize levels
Removed Instrumentor and all its macros
Premake scripts Added configuration for profiling
TRAP™ Engine 0.8.51 - 09/29/2022|22w39b2
Scene Copy() reversed iterating of UIDComponents so that the entities have the same order as in the original scene
TRAP™ Engine 0.8.50 - 09/28/2022|22w39b1
Renderer2D Added support for multiple per-frame instances
Application Added call to Renderer2D::Reset()
TRAP-Editor Added circle collider visualization
TRAP™ Engine 0.8.49 - 09/27/2022|22w39a2
VulkanPhysicalDevice Added GetVkPhysicalDeviceFormatProperties()
VulkanCommon/VulkanPipeline now automatically disables blending for formats that dont support it
TRAP-Editor Enabled blending
Renderer2D Quad/Circle now only use a single index buffer instead of one for each draw call
Refactored Renderer2D
Renderer2D Made circle anti aliasing resolution independent
Updated supported DiscordGameSDK version to 3.2.1
Components Added CircleCollider2DComponent
SceneSerializer Added support for CircleCollider2DComponent
Scene Added CircleCollider2DComponent Box2D physics integration
SceneGraphPanel Added support for CircleCollider2DComponent
TRAP™ Engine 0.8.48 - 09/26/2022|22w39a1
Embed Added Renderer2D circle shader
Renderer2D Added support for circle rendering
TRAP-Editor TransformComponent now can not be removed anymore
TRAP-Editor Changed save shortcut from Shift+S to CTRL+S
Added CircleRendererComponent
Scene/SceneSerializer Added support for circle rendering and CircleRendererComponent
TRAP™ Engine 0.8.47 - 09/23/2022|22w38c1
Renderer2D Added support for line and rectangle (non filled) rendering
TRAP-Editor gizmos now use the correct camera when SceneState is Play
Scene Added GetAllEntitiesWithComponents()
TRAP-Editor Added OnOverlayRender()
TRAP-Editor Added visualization for physics colliders (BoxCollider2D)
TRAP™ Engine 0.8.46 - 09/21/2022|22w38b1
OnTick() now also has a TimeStep as parameter
Scene Added OnTickRuntime() which updates the 2D physics
Components Added Rigidbody2D and BoxCollider2D components
SceneSerializer Added support for Rigidbody2D and BoxCollider2D components
TRAP-Editor SceneGraphPanel Added support for Rigidbody2D and BoxCollider2D components
Added [[fallthrough]] attribute where needed
TRAP™ Engine 0.8.45 - 09/20/2022|22w38a2
TRAP-Editor Added SceneState and play/pause button
FileSystem Added CopyFile() and CopyFolder() functions
TRAP-Editor Added automatic copying of default editor layout if no layout was found
TRAP-Editor Fixed MSVC compiler error
Updated WindowingAPIWin32
Added UID class
UID Added missing operator implementation
Components Added UIDComponent
Entity Added GetUID() utility function
Scene Added CreateEntityWithUID()
SceneSerializer now loads and saves entity UIDs
TRAP-Editor PropertiesPanel now displays entity UID on name text field hover
Components Added templated type for multiple components
Entity Added GetName() utility function
Entity Added AddOrReplaceComponent()
Scene Added support for copying and duplicating of entities
Scene Added Copy() to copy scenes
TRAP-Editor now uses a copy of the scene to use for playing state, preserving the original scene
TRAP-Editor Merged PropertiesPanel into SceneGraphPanel
TRAP-Editor Added keyboard shortcuts for entity duplication/deletion
Added Box2D as submodule
Premake Added support for Box2D
Updated all premake scripts
TRAP™ Engine 0.8.44 - 09/19/2022|22w38a1
Texture/ShaderManager made sure that fallback textures/shaders are still available after Clean() is called
ImGuiLayer/ImGuiVulkanBackend Added tracking of used descriptor sets and freeing them after RendererAPI::ImageCount frames
Texture/ShaderManager Fixed fallback textures/shaders not deleting on TRAP::Application destructor
ImGuiVulkanBackend Fixed ImGui_ImplVulkan_NewFrame() auto deduction failing
ImGuiVulkanBackend Reverted new tracking and freeing of used descriptor sets
ImGuiVulkanBackend Re-added caching of used descriptor sets
ImGuiVulkanBackend Added automatic creation of DescriptorPools when descriptor set allocation limit is reached
TRAP™ Engine 0.8.43 - 09/18/2022|22w37b1
Worked on const correctness for pointers
Moved some functions from TRAP::Graphics::Renderer to TRAP::Graphics::RenderCommand
Updated all programs
VulkanRenderer Fixed EndGPUFrameProfile() called while a RenderPass may still be active
TRAP™ Engine 0.8.42 - 09/15/2022|22w37a2
Cleaned up premake scripts
Removed Python dependency from GLSLang.lua script
TRAP™ Engine 0.8.41 - 09/13/2022|22w37a1
Changed some for loop data types
RendererAPI Renamed Present() to Flush()
VulkanRenderer split presentation from EndGraphicRecording()
TRAP™ Engine 0.8.40 - 09/08/2022|22w36a3
Branch NVReflex:
Application Moved FPSLimiter to start of Run() loop
VulkanInits Added SemaphoreWaitInfo()
RendererAPI/VulkanRenderer Added ReflexSleep()
Application now uses RendererAPI::ReflexSleep() for FPS limiting when NVIDIA Reflex is supported
RendererAPI/VulkanRenderer Added GetLatencyMode()
VulkanDevice now only enables NVIDIA Reflex if on Windows 10 or newer
Utils Added ConvertToString() & ConvertToType() overloads for RendererAPI::LatencyMode
Tests Added NVIDIAReflexTests
RendererAPI/VulkanRenderer Added ReflexMarker()
Added ReflexMarkers according to NVIDIA Reflex integration guide
RendererAPI/VulkanRenderer Added ReflexGetLatency()
NVIDIAReflexTests Added latency charts
Premake scripts added NVIDIA Reflex Stats include header
Added NVSTATS marker
TRAP™ Engine 0.8.39 - 09/07/2022|22w36a2
Branch NVReflex:
Dependencies Added NVIDIA-Reflex folder
Premake scripts added optional NVIDIA-Reflex support
VulkanRenderer Added support for VK_KHR_timeline_semaphore
VulkanCommon Added VkReflexCall() for NVIDIA-Reflex error checking
VulkanDevice Added NVIDIA-Reflex initialization
RendererAPI/RenderCommand Added SetLatencyMode() to enable/disable NVIDIA-Reflex
RendererAPI/VulkanRenderer Added SetReflexFPSLimit()
TRAP™ Engine 0.8.38 - 09/06/2022|22w36a1
RendererAPI/VulkanPhysicalDevice Added querying for GPU vendor
Updated premake5 version
Updated all premake scripts
TRAP™ Engine 0.8.37 - 09/04/2022|22w35b1
Application/RendererAPI Renamed GetFrameTime() to GetCPUFrameTime()
Renderer2D Added missing VertexLayout value in ExtendBuffers()
RendererAPI Added support for GPU Graphics and Compute frame time querying
TRAP™ Engine 0.8.36 - 09/01/2022|22w35a2
WindowingAPI Linux Added support for taskbar progress (KDE & Unity only)
TRAP™ Engine 0.8.35 - 08/30/2022|22w35a1
Log Fixed Trace level not working
Math Orthographic(), Frustum, Perspective, PerspectiveFoV now correctly use 0 to 1 clip values
EditorCamera/OrthographicCamera(Controller)/SceneCamera Flipped near and far planes
Implemented Reverse Z buffering (higher depth precision)
EditorCamera/SceneCamera now use infinite far clip plane
TRAP™ Engine 08/28/2022|22w34c2
Updated Branding
TRAP™ Engine 0.8.34 - 08/27/2022|22w34c1
Added sprite sheet animation support via SpriteAnimation
SpriteSheetTests Added two SpriteAnimations
Fixed gizmo usage when out of selected entity bounds
Log Added importance level for printing
TRAP™ Engine 0.8.33 - 08/24/2022|22w34b1
Fixed TRAPEditorLayer not compiling
TRAP-Editor SceneGraphPanel Added SetSelectedEntity()
Renderer2D Added DrawSprite()
Renderer2D Shader Added entity ID (used by mouse picking in TRAP-Editor)
Scene now uses Renderer2D::DrawSprite()
TRAP-Editor Added mouse picking (allows selection of entities from within the viewport)
TRAP™ Engine 0.8.32 - 08/23/2022|22w34a2
RendererAPI/VulkanCommandBuffer LoadActionsDesc Added support for int and uint values in ClearColorValues
VulkanRenderer Added support for multiple fragment render targets
VertexBufferLayout Added unsigned integer types to ShaderDataType
VulkanRenderer BindVertexBuffer Added support for integer formats
TRAP™ Engine 0.8.31 - 08/22/2022|22w34a1
RendererAPI Added TextureCopyDesc
CommandBuffer Added GPU to CPU texture copy support via CopySubresource function
ResourceLoader Added CopyResource (async GPU to CPU texture copy)
TRAP™ Engine 0.8.30 - 08/21/2022|22w33d1
ImGuiLayer Added SetInputEnabled() & IsInputEnabled()
ImGuiWindowing Added ImGuiConfigFlags_NoMouse checks
Cameras Added EditorCamera (arcball/flycam styles)
Renderer2D Added support for EditorCamera
Scene splitted OnUpdate() into OnUpdateRuntime() & OnUpdateEditor()
TRAP-Editor Added EditorCamera support
TRAP-Editor Disabled culling
Updated ModernDialogs submodule (fixed scene saving)
TRAP™ Engine 0.8.29 - 08/19/2022|22w33c2
Added ImGuizmo to dependencies
Added ImGuizmo premake script
Updated all premake scripts to use ImGuizmo
Scene Added GetPrimaryCameraEntity() (only temporary)
Math Added matrix decompose function
TRAP-Editor SceneGraphPanel Added GetSelectedEntity()
TRAP-Editor Added support for gizmos >30 mins
TRAP™ Engine 0.8.28 - 08/18/2022|22w33c1
Branch steamworks:
Update premake scripts to support Steamworks SDK
Application Added optional AppID parameter to constructor
SteamworksSDK Initialization, Shutdown and callbacks are now handled in Application
SteamworksSDK exposed SDK interfaces via TRAP::Utils::Steam
Merged branch steamworks
TRAP™ Engine 0.8.27 - 08/17/2022|22w33b1
Tests Added sprite sheets
Tests Added SpriteSheetTests
Renderer2D Fixed a crash while using nullptr SubTexture2D
TRAP™ Engine 0.8.26 - 08/16/2022|22w33a2
ParticleSystem2D Added dynamic particle limit
Renderer2D Fixed TextureSlotIndex not being reset on BeginScene()
Added SubTexture2D to make sprite sheets usable
Renderer2D Added ability to use SubTexture2D
Sandbox2D Added a test sprite sheet
Sandbox2D now uses sprite sheets
SubTexture2D Added ability to create from pixel coordinates directly
SubTexture2D Added name to class
Added SpriteManager to manage SubTexture2D objects
Sandbox2D now uses SpriteManager
ShaderManager and Shader now use TRAP::Ref (updated all programs)
TextureManager and Texture now use TRAP::Ref (updated all programs)
AntiAliasingTests adjusted scaling of quads
TRAP™ Engine 0.8.25 - 08/15/2022|22w33a1
RendererAPI/VulkanRenderer now saves shading rate state in GraphicsPipelineDesc
VulkanInits Added PipelineFragmentShadingRateStateCreateInfo()
VulkanPipeline Now uses shading rate state from GraphicsPipelineDesc
VulkanRenderer SetShadingRate() Added additional safety checks
Tests Added VRSTests
TRAP™ Engine 0.8.24 - 08/14/2022|22w32c3
ResourceLoader LoadTexture() Added support for already loaded images
Texture CreateFromImage() & CreateFromImages() now leverage the ResourceLoader
WindowingAPI Added WaitEvents() and PostEmptyEvent() functions
TRAP™ Engine 0.8.23 - 08/13/2022|22w32c2
SHA2 Made some functions constexpr
HeadlessTests Added HashTests
TRAP™ Engine 0.8.23 - 08/11/2022|22w32c2
Shader now automatically detects correct endianess for SPIRV files
Tests Added SPIRVTest (to test if ConvertToSPIRV utility works correctly)
ConvertToSPIRV Fixed MSVC compiler error
TRAP™ Engine 08/11/2022|22w32c1
ConvertToSPIRV Moved utilities into own file
ConvertToSPIRV Moved shader stuff into own file
ConvertToSPIRV Added support for custom output file names
ConvertToSPIRV Added support for custom macros
TRAP™ Engine 0.8.22 - 08/10/2022|22w32b1
Input Windows Fixed Xbox button press results hitting InputKey assert
Application Windows Fixed not calling Input::Init()
Renderer2D Added RendererAPI::ImageCount buffering
Renderer2D Fixed batch switching on texture slot exhaust
TRAP™ Engine 0.8.21 - 08/09/2022|22w32a2
Docs Linux Added required wayland packages
Utils Renamed ByteSwap.h to Memory.h
Shader Removed Convert8To32()
Utils Memory Added SwapBytes function for iterators
Utils Memory Added ConvertByte function and ConvertBytes for iterators
TRAP™ Engine 0.8.20 - 08/08/2022|22w32a1
Linux Enabled Xwayland support
Added macro to enable native Wayland support (disables use of Xwayland)
Branch wayland:
WindowingAPI Wayland Implemented PointerListener functions
WindowingAPI Wayland Implemented KeyboardListener functions
WindowingAPI Wayland Implemented OutputListener functions
WindowingAPI Wayland Implemented PlatformSetWindowMonitorWayland
WindowingAPI Now uses Xwayland by default (Wayland is still experimental)
TRAP™ Engine 0.8.20 - 08/07/2022|22w31c1
Branch wayland:
WindowingAPI Added support for Wayland functionality
Added Dependencies/Wayland folder
Premake Added Wayland protocol to C++ generation function
Updated all premake scripts
WindowingAPI Linux Moved KeySymToUnicode() from X11 to the shared header
WindowingAPI Data put X11 and Wayland stuff into their own structs
WindowingAPI InternalWindow/Cursor/Monitor put X11 and Wayland stuff into their own structs
WindowingAPI Wayland Implemented PlatformInitWayland
Updated all premake scripts to link against wayland-client, wayland-cursor and xkbcommon
WindowingAPI Wayland Implemented DataOfferListener & DataDeviceListener functions
TRAP™ Engine 0.8.20 - 08/06/2022|22w31c1
Branch wayland:
Application Removed Wayland check
TRAP™ Engine 0.8.19 - 08/05/2022|22w31b1
Fixed presentation failures when a swapchain resize was needed
DescriptorPool RetrieveDescriptorSet() now returns TRAP::Scope instead of raw pointer
Removed DescriptorSet.cpp
VulkanDescriptorPool now doesn’t save it’s allocated DescriptorSets anymore
VulkanShader now sets DescriptorSets as dirty when bound (they will be reused in RendererAPI::ImageCount frames)
Renderer2D reduced max number of textures per draw call from 4096 to 32
Renderer2D renamed FlushAndReset() to Reset()
Renderer2D Added ExtendBuffers() function which allocates buffers for another draw call
Renderer2D now allows up to 100000 quads with up to 32 different textures per draw call
Renderer2D now starts a new draw call when exceeding the current draw calls quad or texture limit
Renderer2D Removed ClearTextures() as it isn’t needed anymore
Fixed wrong descriptorCount usage in VkDescriptorSetLayoutBinding
Renderer2D Fixed artifacting because of non dynamically uniform array index value usage
Renderer Replaced UBO with SSBO for SceneData (+ updated all affected shaders)
TRAP™ Engine 0.8.18 - 08/03/2022|22w31a1
HeadlessTests Added IPAddressTests program
HTTP Fixed use of IPv6 when address is not valid
IPv4Address & IPv6Address Removed redundant null terminators from ToString()
Utils::HashCombine replaced recursion with fold expression
Moved Windows version checks from WindowingAPI to Utils
Utils Added IsWindows11BuildOrGreaterWin32()
Windows WindowingAPI now honors dark/light mode for window decorations on Windows 10/11
Application Added setter and getter for FPS limiter
TRAP™ Engine 0.8.17 - 07/31/2022|22w30a2
WindowingAPI Added asserts for using wrong thread in main thread only functions
WindowingAPI X11 WM_NORMAL_HINTS now doesn’t update the whole property when updating size-related parts
Window now doesnt send a FrameBufferResizeEvent when width or height is 0
ResourceLoader Fixed usage of a destroyed TRAP::Scope when converting RGB to RGBA
MathTests Removed the empty swizzle functions
TRAP™ Engine 0.8.16 - 07/30/2022|22w30a1
Replaced some asserts & TRAP_ASSERTs with static_assert
Replaced some template specializations with constexpr if
ByteSwap replaced “bit magic” (potential UB) with casting and reverse copy
TRAP™ Engine 0.8.15 - 07/23/2022|22w29b3
Fixed a crash in AntiAliasingTests (usage of MSAA and SampleCount 1 loaded from engine.cfg)
Moved MSAAResolvePass ResourceState::Present layout transitions to StartGraphicRecording/EndGraphicRecording
FrameBufferTests Added support for anti aliasing
Fixed Windows not creating main window
Moved CreateUTF8StringFromWideStringWin32() & CreateWideStringFromUTF8StringWin32() from WindowingAPI to TRAP::Utils::String
String GetStrError() Added support for WinAPI errors
Fixed Windows unresponsive windows
WindowingAPI TaskbarList3 is now properly implemented
TRAP™ Engine 0.8.14 - 07/22/2022|22w29b2
Made the anti aliasing settings now apply to the whole renderer (before was per window)
Application now sets anti aliasing on RendererAPI init instead of afterwards
FrameBufferTests Worked on adding support for anti aliasing
TRAP™ Engine 0.8.13 - 07/21/2022|22w29b1
Merged STL branch
GitHub Actions reduced compile time for Linux
Fixed bugs in CursorTests which where introduced by 725ccfa54eb0faa32e499fe1595d03858f29947f (0.8.5)
Fixed MultiWindowTests crash when closing the child window
FTP Fixed casting which resulted in wrong port usage
WindowFeaturesTests Fixed unable to disable max window size constraint
TRAP™ Engine 07/20/2022|22w29a3
Branch STL:
Checked for const correctness
Memory::SwapBytes() Added safety against const and non ref values
Moved Utils::GetStrError() to Utils::String::GetStrError()
Utils::String::ConvertToString() Added Utils::LinuxWindowManager overload
Utils::String::ConvertToType() Added Utils::LinuxWindowManager overload
TRAP™ Engine 07/19/2022|22w29a2
Branch STL:
Replaced const std::string& with const std::string_view where possible
Replaced const char* with const std::string_view where possible
Removed String::FindToken()
Removed WindowingAPI::StringInExtensionString()
Removed std:: from getenv
TRAP™ Engine 07/18/2022|22w29a1
Branch STL:
Replaced TRAP::FS with TRAP::FileSystem
Renamed FS.h/FS.cpp to FileSystem.h/FileSystem.cpp
Renamed src/FS folder to src/FileSystem
Replaced generic_u8string() with u8string()
Utilize std::filesystem::file_size more
TRAP™ Engine 07/17/2022|22w28b4
Branch STL:
Replaced reinterpret_cast with Utils::BitCast in various files
Removed std:: from memcpy
Replaced memcpy with std::copy or std::copy_n
Removed std:: from memset
Removed/Replaced memset where possible
Replaced remaining memset calls with std::fill or std::fill_n
TRAP™ Engine 07/16/2022|22w28b3
Branch STL:
TRAP_Assert Removed type from macros
TRAP_Assert Made path to file absolute
Utils backported C++20s std::bitcast
Application CheckSingleProcessLinux() now uses Utils::BitCast instead of reinterpret_cast
Vulkan every VkSetObjectName() call now uses Utils::BitCast instead of reinterpret_cast
Renderer2D EndScene() Removed reinterpret_cast from vertex data size calculation
TRAP™ Engine 07/15/2022|22w28b2
Branch STL:
Replaced reinterpret_cast with static_cast where possible
TRAP™ Engine 0.8.12 - 07/14/2022|22w28b1
Branch STL:
Base Removed unnecessary static_casts
Events GetName() replaced const char* with std::string
Events Made GetStaticType() constexpr
EventDispatcher Made constructor and Dispatch() constexpr
EventCategory Made operators constexpr
FileChangeEvent FileStatusToString() now throws invalid_argument if enum value isn’t valid
Made some functions constexpr in
FileChangeEvent
TextureReloadEvent
ShaderReloadEvent
KeyEvent
KeyPressEvent
KeyReleaseEvent
KeyTypeEvent
MouseMoveEvent
MouseScrollEvent
MouseButtonEvent
MouseButtonPressEvent
MouseButtonReleaseEvent
MouseEnterEvent
MouseLeaveEvent
WindowResizeEvent
WindowMinimizeEvent
WindowMaximizeEvent
WindowRestoreEvent
WindowCloseEvent
WindowMoveEvent
WindowFocusEvent
WindowLostFocusEvent
WindowDropEvent
WindowContentScaleEvent
FrameBufferResizeEvent
FileSystem Made some functions constexpr
FileSystem Added std::optional to some functions
FileSystem Added GetGameLogFolderPath() function
FileWatcher unified WatchWindows() and WatchLinux into Watch()
FileWatcher Made m_run thread safe
FileWatcher Removed SkipNextFileChange()
Updated all files to support the aforementioned changes
VulkanRenderer replaced unordered_map inserts with try_emplace
ImGuiLayer Pipeline cache Added fallback path
Monitor::VideoMode Made constructor constexpr
Monitor Added rule of 5
Monitor Made GetCurrentVideoMode(), IsInUse() and GetInternalMonitor() constexpr
AftermathTracker Replaced memcpy with std::copy_n
Application OnFileChange event now always returns false i.e. passes the event on to other callbacks
Application Added fallback paths for engine.cfg and trap.log
Updated Application
Updated ControllerTests
TRAP™ Engine 0.8.11 - 07/12/2022|22w28a1
TRAP-Headless Fixed crash when using RenderAPI::NONE (Application::Run() tried to present)
TestNetwork now uses TRAP-Headless
WindowingAPI Windows Fixed right shift key when using CJK IME
VulkanPhysicalDevice now rates max MSAA sample count
Shader Removed CreateFromFile redundancy
Base Added ENABLE_SINGLE_PROCESS_ONLY macro which makes the engine only run a single instance of itself
Added error code 0x0012 “A TRAP Application is already running”
Application Implemented the checks for ENABLE_SINGLE_PROCESS_ONLY
TRAP™ Engine 0.8.10 - 07/10/2022|22w27c1
Updated VulkanLoader
VulkanLoader Added ability to be included in multiple files
Replaced #include <vulkan/vulkan.h> with VulkanLoader.h
TRAP™ Engine 0.8.9 - 07/07/2022|22w27b1
Updated Networking
Moved Linux only includes from TRAPPCH.h into Utils/Linux.h
Moved Windows only includes from TRAPPCH.h into Utils/Win.h
Removed TRAPPCH.h include from ImGuiLayer.h (this affected a lot of files)
TRAP™ Engine 07/07/2022|22w27a3
Branch MSAA:
Added sample shading to MSAA if supported
Removed SSAA stuff
Fixed screenshot capturing when using MSAA
HeadlessTests Added AntiAliasing test
VulkanRenderer/Embed Removed MSAA resolve shaders
VulkanCommandBuffer Added ResolveImage function to resolve MSAA images into non MSAA images
VulkanInits Added VK_IMAGE_USAGE_TRANSFER_DST_BIT to SwapChainCreateInfoKHR
VulkanRenderer replaced manual MSAA resolve shaders with vkCmdResolveImage
VulkanRenderer made MSAAResolvePass function compatible with Headless mode
Merged MSAA into dev
TRAP™ Engine 07/06/2022|22w27a2
AftermathTracker Fixed unable to save crash dump
Branch MSAA:
Embed Added MSAAResolveShader
(Vulkan)SwapChain Added additional RenderTargets for MSAA
RendererAPI Fixed SampleCount enum
RendererAPI Added SampleCount to SwapChainDesc
RendererAPI PerWindowData Added SampleCount (currently hardcoded to 8x MSAA)
VulkanRenderer Added MSAA resolve shaders for 2x, 4x, 8x and 16x MSAA
VulkanRenderer Added MSAAResolvePass function
ImGuiLayer now uses SampleCount from PerWindowData
SwapChain Removed GetRenderTargetsNonMSAA() & GetRenderTargetsMSAAResolve
SwapChain Added GetRenderTargetsMSAA()
RendererAPI, VulkanRenderer & ImGuiLayer Updated GetRenderTargets usage
RendererAPI Added AntiAliasing enum
(Vulkan)SwapChain Added SetSampleCount function
RenderCommand/RendererAPI Added SetAntiAliasing function <10 mins
ImGuiVulkanBackend Added ImGui_ImplVulkan_SetMSAASamples function
ImGuiLayer Added SetMSAASamples function
Updated AntiAliasing test
RendererAPI Renamed SampleCount enum values
VulkanRenderer Added missing destruction of the MSAA resolve shaders
VulkanRenderer Fixed using wrong resolve shader
AntiAliasing test Added option to set anti aliasing method and sample count
RendererAPI/VulkanRenderer Added GetAntiAliasing function
ConvertToType/ConvertToString Added specialization for AntiAliasing and SampleCount enums
Application Added saving and loading of AntiAliasing and AntiAliasingQuality values
TRAP™ Engine 0.8.8 - 07/05/2022|22w27a1
Fixed WindowingAPI::InputKey not processing keys correctly
Branch MSAA:
Tests Added AntiAliasing test
TRAP™ Engine 07/04/2022|22w27a1
Docs Added changelog page generator
TRAP™ Engine 0.8.7 - 07/03/2022|22w26c1
RendererAPI GPUSettings Added MaxMSAASampleCount
VulkanPhysicalDevice now sets max supported MSAA sample count
TRAP™ Engine 0.8.6 - 06/30/2022|22w26b2
KeyEvent Moved NonPrintableKeyToString to Input (silenced error in TRAP::Input::GetKeyName)
Input Added KeyState enum
WindowingAPI now uses the TRAP::Input::KeyState instead of plain bools
WindowingAPI now also emits KeyState::Repeat in key callback (only in key callback!)
Updated Window
Updated ImGuiWindowing
TRAP™ Engine 0.8.5 - 06/29/2022|22w26b1
Updated ImGui submodule
ImGui Disabled usage of obsolete functions
Input Added MAKE_ENUM_FLAG for ControllerDPad enum
Updated ImGuiLayer
Updated ImGuiVulkanBackend
ImGuiWindowing complete overhaul
TRAP™ Engine 0.8.4 - 06/28/2022|22w26a2
Texture Added virtual Shutdown function
Texture Added Reload function to reload texture without needing to reconstruct it
Texture Fixed HotReloading paths not getting added
TextureManager now uses Textures Reload function instead of destructing/constructing
TRAP™ Engine 0.8.3 - 06/27/2022|22w26a1
Removed DummyShader
Shader Removed the CreateFromFile function used by HotReloading
Shader Added Reload function to reload shader without needing to reconstruct it
Shader Added IsShaderValid function
(Vulkan)Shader Made GetNumThreadsPerGroup virtual
(Vulkan)Shader Added virtual Init and Shutdown functions to reduce code redundancy
Shader updated other constructors accordingly
VulkanShader Added two new constructors
ShaderManager now uses Shaders Reload function instead of destructing/constructing
VulkanRenderer BindShader now detects invalid shaders and applies the correct fallback
TRAP™ Engine 0.8.2 - 06/25/2022|22w25a2
Docs Added difference between normal and headless mode on getting started page
README Added Build-CI status badge
Removed the temporary Exhale bug fix (problems with operators containing ‘<’ or ‘>’)
Added ToString functions to Math classes (Vec, Mat & Quat)
Added templates for Math classes on output stream operator so they use x.ToString function
TRAP™ Engine 06/23/2022|22w25a1
Updated compile_commands.json generator
TRAP™ Engine 0.8.1 - 06/20/2022|22w25a1
Added GitHub Actions workflow to build docs
Updated the GitHub Actions docs workflow
Added ability to use Headless in a WindowManager-less environment
TRAP™ Engine 0.8.0 - 06/19/2022|22w24b1
Added Build CI
Windows Added missing links for networking
TestNetwork Fixed Windows postbuildcommand not copying DiscordGameSDK dll
Math Fixed Abs for Vectors not being able to compile in constexpr context
ConvertToSPIRV Fixed Linux missing libraries
TRAP™ Engine 06/17/2022|22w24
Changed License now using the TRAP™ Engine EULA (modified Apache 2)
Docs Fixed doxygen warnings
Docs now use Breathe + Exhale to generate a good looking API reference
Docs Removed old reference page
Updated README
Moved MathTests to HeadlessTests
Brought TRAP back to GitHub
TRAP™ Engine 0.7.152 - 06/16/2022|22w24a2
Mat3, Mat4, Vec2, Vec3, Vec4 & Quaternion Added ToString functions
Math Renamed Quaternion to Quat
Docs Added automatic TRAP version updating on build
Docs Replaced ReadTheDocs theme with Fora
Docs Added 3 new extensions | Updated generatedocs.lua
Docs converted reST files to MyST
Math Fixed compiler error on MSVC
Added needed Windows redists
TRAP™ Engine 0.7.151 - 06/15/2022|22w24a1
Fixed Math bugs:
Mat3 & Mat4 Removed explicit on conversion constructors
Mat3 & Mat4 Fixed Length returning false value
Mat4 Fixed + operator
Quaternion Fixed an uncompilable constructor
Vec2, Vec3 & Vec4 Removed all Vec<1, X> stuff
Made some functions constexpr
Added Equal, NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual, Not functions for scalars
Fixed FrExp constant output variable
Removed all ULP stuff
Added Row & Column functions to retrieve rows and columns from matrices
Fixed some functions not compiling in constexpr context
Fixed other minor bugs
Tests Added MathTests
TRAP™ Engine 0.7.150 - 06/11/2022|22w23c1
Window Added GetPosition function
Window Added GetFrameBufferSize, SetPosition, IsHovered functions
Tests Added WindowFeaturesTests
TRAP™ Engine 0.7.149 - 06/10/2022|22w23b2
WindowingAPI Added some asserts
WindowingAPI Win32 Seperated helper window code from normal windows
Updated all submodules
Updated Vulkan loader
Updated Controller mappings
HotReloading now preserves used shader macros on reload
Tests Added InputLagTests
TRAP™ Engine 0.7.148 - 06/08/2022|22w23b1
Config Added ability to append new values to existing config files on save
TRAP™ Engine 0.7.147 - 06/07/2022|22w23a2
Texture Fixed a compiler error on MSVC
RendererAPI Made GetMainWindowData return a non-const reference (const reference before)
ComputeTests Now only executes Compute shader once and reuses the resulting texture
Headless disabled generation of Documents/TRAP/GameName/logs folder
Headless ComputeTest now also executes Compute shader only once
Merged compute-shader branch into master
TRAP™ Engine 0.7.146 - 06/06/2022|22w23a1
Renamed VulkanComputeTests to ComputeTests
Fixed Vulkan threading error (threads using graphics queue simultaneously)
RenderCommand & RendererAPI Added StartRenderPass and StopRenderPass functions
Texture switched format to R8G8B8A8_UNORM
VulkanRenderer switched surface format to B8G8R8A8_SRGB
Headless Added ComputeTest
Fixed TRAP-Editor crashing
Fixed FrameBufferTests crashing
Tested if Compute works when using a Graphics Queue (can be the case on some GPUs)
TRAP™ Engine 0.7.145 - 06/04/2022|22w22b2
Texture Added ability to provide additional flags (like Storage for storage images)
RenderCommand Added Dispatch and Transition functions
Updated VulkanComputeTests
VulkanComputeTests Added push constant test
Embed Added a fallback compute shader
Added HotReloading support for Compute shader
TRAP™ Engine 0.7.144 - 06/03/2022|22w22b1
Removed TextureBase, Texture2D & TextureCube
Texture class now combines TextureBase + Texture2D & TextureCube functionality
VulkanTexture is now derived from Texture directly
Updated everything that used TextureBase, Texture2D and TextureCube
Added TRAP::FileSystem alias for TRAP::FS
Updated VulkanComputeTests
RendererAPI Added ability to specify QueueType on some functions
TRAP™ Engine 0.7.143 - 06/01/2022|22w22a1
Added a test program for compute shaders (VulkanComputeTests)
VulkanComputeTests Added edge detection, sharpen and emboss compute shaders (source from SaschaWillems)
RendererAPI Added Dispatch and Transition functions
RendererAPI PerWindowData Added Compute stuff
RendererAPI Added GetTransferQueue function
VulkanInits SubmitInfo Added waitCount and signalCount parameters
VulkanShader Changed Use*** functions
VulkanRenderer Added StartComputeRecording & EndComputeRecording functions
VulkanRenderer Fixed a compile time macro
VulkanPhysicalDevice RatePhysicalDevice Fixed a bug (didn’t use same VkInstance used to enumerate physical devices)
VulkanPhysicalDevice RatePhysicalDevice Removed the VkInstance check
TRAP™ Engine 0.7.142 - 05/26/2022|22w21a2
Linux moved *.so files to output application folder
DiscordGameSDK Compatibility.lua now renames the discord_game_sdk.so to libdiscord_game_sdk.so
Premake Linux Added runpaths for the *.so dependencies (this allows building in non-root envs)
MSVC Discord Game SDK silenced all warnings
MSVC Vulkan Memory Allocator silenced all warnings
TRAP™ Engine 0.7.141 - 05/25/2022|22w21a2
Renamed VulkanFrameBufferTests to FrameBufferTests
Renamed VulkanMultiWindowTests to MultiWindowTests
Renamed VulkanIcoSphereTests to IcoSphereTests
Renamed VulkanTests to RendererAPITests
Added missing QOI License for QOIConv
Changed all premake files to use staticruntime “off”
Some small premake improvements
TRAP™ Engine 0.7.140 - 05/24/2022|22w21a1
Fixed an issue which leads to the render targets artifacting (StoreColorActions was set to DontCare instead of Store for the swapchain)
TRAP™ Engine 0.7.139 - 05/18/2022|22w20a1
Vulkan implemented Variable Rate Shading (VRS) support
TRAP™ Engine 0.7.138 - 05/15/2022|22w19b1
Utils String Added (Date)Timestamp to string functions
PNG Removed unused tIMECheck function
TRAP™ Engine 0.7.137 - 05/14/2022|22w19a2
Replaced typedefs with usings
Mat3/4 Made operator overloads constexpr
AftermathTracker Added D3D12 support (disabled as D3D12 isnt implemented)
Made AftermathTracker a namespace
Commented AftermathTracker
Moved the dynamic library loading functions from WindowingAPI to Utils
TRAP™ Engine 0.7.136 - 05/13/2022|22w19a1
Added optional support for NVIDIA Nsight Aftermath
Added AftermathTracker class
TRAP™ Engine 0.7.135 - 05/08/2022|22w18d1
VulkanDebug Added support for the older Debug Report extension (Android compatibility)
Vulkan Added support for GPU based validation (enabled via macro, off by default)
Vulkan progress on HDR support
Lowered auto generated shader code SPIR-V version to 1.4 (1.5 before)
Vulkan lowered required version to Vulkan 1.1 (Android compatibility)
Vulkan Updated device rating
Vulkan Added support for texture import/export from/to other processes
Vulkan Added support for lazy texture allocation
Vulkan Added store actions for render targets
RendererAPI Added optional ability to set a lod range
Updated VulkanLoader
TRAP™ Engine 0.7.134 - 05/06/2022|22w18c1
WindowingAPI Added ability to set progress state & value on taskbar on Windows
VulkanDevice Added device name for debugging tools (RenderDoc)
VulkanQueue Added queue type name for debugging tools (RenderDoc)
VulkanShader Added shader name + type for debugging tools (RenderDoc)
WindowingAPI Removed IsWindowsVistraOrGreaterWin32() as TRAP uses Windows 7 as minimum reqs
TRAP™ Engine 0.7.133 - 05/05/2022|22w18b1
SPIRVTools Made CrossCompiler a class
TRAP™ Engine 0.7.132 - 05/04/2022|22w18a2
Tests Added RendererAPIInfo program
TRAP™ Engine 0.7.131 - 05/03/2022|22w18a1
Small code cleanup
Made TextureManager & ShaderManager a namespace
ShaderManager & TextureManager now return the onwed pointer when using Remove()
Added forwarding of console args
TRAP™ Engine 0.7.130 - 05/01/2022|22w17c1
Application cleaned up Main Window creation
Corrected memory model (only use smart pointers when we care about ownership, else use raw pointers)
Removed window parameter from OrthographicCameraController
TRAP™ Engine 0.7.129 - 04/30/2022|22w17b3
Small WindowingAPI updates
Moved some class-members from heap onto stack
Corrected some unique_ptrs used as TRAP::Scope
TRAP™ Engine 0.7.128 - 04/29/2022|22w17b2
Updated Networking
TRAP™ Engine 0.7.127 - 04/28/2022|22w17b1
ImageLoader Added support for QOI
Added QOIConv to convert PNG<->QOI
Tests ImageLoader test Added QOI tests
Optimized PNG loading (removed unused chunks loading/validation)
TRAP™ Engine 0.7.126 - 04/26/2022|22w17a2
Documented code
TRAP™ Engine 0.7.125 - 04/25/2022|22w17a1
Documented code
TRAP™ Engine 0.7.124 - 04/24/2022|22w16a2
Documented code
TRAP™ Engine 0.7.123 - 04/19/2022|22w16a1
Documented code
TRAP™ Engine 0.7.122 - 04/16/2022|22w15a3
Documented code
TRAP™ Engine 0.7.121 - 04/14/2022|22w15a2
Documented code
TRAP™ Engine 0.7.120 - 04/12/2022|22w15a1
Moved RendererAPI Shutdown to Application destructor
Added std::hash overloads for Vec2,3,4 & Mat3,4
Math Added conversion functions for RGB to HSV & reverse
Math Added conversion functions for sRGB to linear & reverse
Applied rule of zero to some classes
Config renamed IsChanged to HasChanged
Config Moved ConvertToType & ConvertToString to TRAP::Utils
String Removed unused functions
Documented code
TRAP™ Engine 0.7.119 - 04/05/2022|22w14a1
Updated WindowingAPI documentation
WindowingAPI got rid of X11 linker dependency
TRAP™ Engine 0.7.118 - 04/03/2022|22w13a2
More clang-tidy cleanup
TRAP™ Engine 0.7.117 - 03/31/2022|22w13a1
Updated WindowingAPI::GetVulkanResultString
Fixed Windows YAMLCpp linker errors
TRAP™ Engine 0.7.116 - 03/27/2022|22w12b3
Fixed many clang-tidy warnings
TRAP™ Engine 0.7.115 - 03/26/2022|22w12b2
Premake Added script to create a compile_commands.json for clang-tidy
TRAP™ Engine 0.7.114 - 03/24/2022|22w12b1
Resolved clang-tidy warnings in Games/
TRAP™ Engine 0.7.113 - 03/22/2022|22w12a1
Updated WindowingAPI
TRAP™ Engine 0.7.112 - 03/16/2022|22w11b1
Updated Dependencies
TRAP™ Engine 0.7.111 - 03/14/2022|22w11a1
Headless Added assert in RendererAPI::GetRenderer() for RenderAPI::NONE
Small bugfixes in Window Destructor and RendererAPI::IsVulkanCapable
Made EnableGPU True by default if not engine.cfg exists
TRAP™ Engine 0.7.110 - 03/12/2022|22w10b1
RenderCommand Added CaptureScreenshot
RenderCommand Added SetResolution (only available in Headless mode)
Renderer Added recreation of RenderTargets on resolution change (Headless mode)
HeadlessTests now captures a screenshot before and after a resolution change
TRAP™ Engine 0.7.109 - 03/10/2022|22w10a1
ImageFormat Added ImageFormatIsFloat
VulkanInits Added VkBufferImageCopy initializer
CaptureScreenshot now also works with HDR/Float32 images
CaptureScreenshot now also works with uint16_t images
TRAP™ Engine 0.7.108 - 03/06/2022|22w09a1
Moved Headless-Tests into own project
Headless Added EnableGPU option to engine.cfg
Headless disabled ImGui
Headless Added offline rendering
PPMImage Added ability to save image to disk (EXPERIMENTAL)
Headless various small bug fixes
Added RendererAPI::CaptureScreenshot to make screenshot of the last frame
Added ScreenshotTest to Tests project
TRAP™ Engine 0.7.107 - 02/22/2022|22w08a1
Added WIP Headless mode (TRAP-Headless)
Relaxed RenderAPI requirements for Vulkan when using Headless mode
Added Headless-Tests project
Removed Headless RenderAPI
Relaxed IsVulkanCapable checks when using Headless mode
Config Added “NONE” RenderAPI to ConvertToString/Type
Added SIGINT capture routines for Headless mode to capture CTRL+C & [X] button closes to normally shutdown
Made Log & Config paths local to executable in Headless mode
Allowed using RenderAPI::NONE when using Headless mode
Renderers now get correctly shutdown when using Headless mode
TRAP™ Engine 0.7.106 - 01/26/2022|22w04b1
Updated VulkanLoader to Vulkan 1.3
Updated README
Cleaned up Dependencies premake scripts
Made big portion of VulkanCommon constexpr
TRAP™ Engine 0.7.105 - 01/25/2022|22w04a2
Fixed Windows (MSVC) compiling
TRAP™ Engine 0.7.104 - 01/24/2022|22w04a1
Updated GLSLang / Now using upstream GLSLang
Updated SPIRV-Cross / Now using upstream SPIRV-Cross
Updated GLSLang premake5 script
Updated EnTT premake5 script (now compiles lib)
Updated Vulkan loader
Updated Controller mappings
Updated zlib inflate algorithm (PNG)
Added FileSystem tests for opening file/folder or externally
TRAP™ Engine 0.7.103 - 01/23/2022|22w03a1
Updated VulkanMemoryAllocator
Made VulkanMemoryAllocator a submodule
Updated EnTT / Made EnTT a submodule
Updated Licenses
Updated ImGui / Now using upstream ImGui
Updated YAMLCpp / Now using upstream YAMLCpp
TRAP™ Engine 0.7.102 - 01/10/2022|22w02a1
Simplified Shader functions
2021
TRAP™ Engine 0.7.101 - 12/30/2021|21w52a1
Moved imgui.ini files to documents/game folder
Vulkan SwapChain recreation fixed InvalidImageLayout errors
TRAP™ Engine 0.7.100 - 12/25/2021|21w51a3
Simplified ConvertToSPIRV code
Updated ConvertToSPIRV
FS Added more utility functions
FS Added OpenFolderInFileBrowser, OpenFileInFileBrower, OpenExternally
TRAP™ Engine 0.7.99 - 12/22/2021|21w51a2
Fixed ImGui not binding RenderTarget if no RenderPass is running
Updated TRAP-Editor to use RenderTarget for viewport rendering
Renderer2D Fixed DrawQuad(Mat4, Vec4, Scope<Texture2D>) using wrong texture index for nullptr textures
TRAP-Editor Added clearing of viewport render target
TRAP™ Engine 0.7.99 - 12/20/2021|21w51a1
CommandBuffer Changed ResourceBarrier
RenderCommand Added BufferBarrier, TextureBarrier & RenderTargetBarrier
VulkanFrameBufferTests now uses RenderCommand::RenderTargetBarrier
RenderCommand Added non-vector versions of BufferBarrier, TextureBarrier & RenderTargetBarrier
TRAP™ Engine 0.7.99 - 12/19/2021|21w50a1
RenderTarget Removed unnecessary virtual functions
Removed VulkanFrameBuffer & FrameBuffer
ImGuiLayer Added ImGui::Image support for TextureBase
VulkanTextureTests Removed unused shader macro
Added VulkanFrameBufferTests
RenderCommand Added BindRenderTarget(s)
TRAP™ Engine 0.7.99 - 12/05/2021|21w48a4
Fixed hot shader reloading not updating shader without pipeline recreation
Pipeline recreation now forced by binding fallback shader
TRAP™ Engine 0.7.98 - 12/04/2021|21w48a3
Application Added event listener for OnFileChange events
Shader Added SupportedShaderFormatSuffixes
HotReloading FileWatcher Added tracking of Shaders and Textures
Application Removed old ProcessHotReloading function
Application Updated UpdateHotReloading function
Hot Texture Reloading fully working now!
Hot Shader Reloading fully working now!
TRAP™ Engine 0.7.98 - 12/01/2021|21w48a2
Converted FS class to namespace
Moved TRAP::FileWatcher to TRAP::FS::FileWatcher
FS Removed some deprecated functions related to hot reloading
Application Added GetHotReloadingFileWatcher, IsHotReloadingEnabled & SetHotReloading
FS Added IsPathAbsolute, IsPathRelative, ToAbsolutePath & ToRelativePath
FileWatcher now uses absolute paths internally
TRAP™ Engine 0.7.98 - 11/29/2021|21w48a1
FileSystem now uses std::error_code instead of try/catch
ByteSwap Fixed float & double strict aliasing violation
Log Added maybe_unused to TP_DEBUG
Linux FileWatcher Shutdown Added checks for write syscall
TRAP™ Engine 0.7.98 - 11/28/2021|21w47a2
ResourceLoader Replaced volatile int32_t with std::atomic<bool>
Removed some mutexes as they were unused (Concurrency will be reworked)
TRAP™ Engine 0.7.98 - 11/27/2021|21w47a1
Better utilization of std::string_view
TRAP™ Engine 0.7.98 - 11/21/2021|21w46b1
Removed old VFS FileWatcher
Added new FS FileWatcher
Added FileChangeEvent
FS FileWatcher is now fully event-based
TRAP™ Engine 0.7.98 - 11/17/2021|21w46a2
Linux X11 WindowingAPI Fixed multiple issues caused by wrong data types
Removed temporary Linux X11 workaround for window maximization via WindowProps
TRAP™ Engine 0.7.98 - 11/15/2021|21w46a1
Linux FS Documents folder now gets retrieved via XDG
TRAP™ Engine 0.7.98 - 11/14/2021|21w45b1
Windows Fixed GetDocumentsFolderPath returning an extra null byte
FS Added GetFolderPath to retrieve the folders from a file path
Windows Fixed saving of trap.log
Changed log date-time stamps to use YYYY-MM-DDTHH-MM-SS
Windows Fixed exclusive fullscreen crashing because of mode switching
TRAP™ Engine 0.7.98 - 11/11/2021|21w45a1
Updated Controller mappings
Updated Vulkan loader
New File System implementation
Complete engine now uses new File System
Disabled HotReloading systems until FileWatcher rewrite
Updated all Games
Moved Engine.cfg to Documents/TRAP/<GameName>/engine.cfg
Fixed some issues with TRAP.Log having wrong encoding
Moved TRAP.Log to Documents/TRAP/<GameName>/logs/trap-YYYY-MM-DDTHH:MM:SS.log
TRAP™ Engine 0.7.97 - 11/07/2021|21w44b1
HotTextureReloading now works correctly again
Renderer2D Added support for HotTextureReloading
FileWatcher Changed minimum check delay from 50ms to 500ms
TextureManager Reload functions now return reloaded texture
Added TextureReload event for hot reloaded textures
ShaderManager Reload functions now return reloaded shader
Added ShaderReload event for hot reloaded shaders
Sandbox2D now uses new TextureReload event
Sandbox2D now uses new ShaderReload event
Removed unused App events
TRAP™ Engine 0.7.96 - 11/07/2021|21w44a4
Vulkan Added max sampler allocation validation
Vulkan Added check for minimum support of 4 simultaneously bound descriptor sets
Vulkan Added check for maximum tessellation patch size
Discord Game SDK Added automatic reconnect on error/not running
TRAP™ Engine 0.7.95 - 11/06/2021|21w44a3
Vulkan typedef pointer types are now returned by value
Updated Premake to 5.0-beta1
Added support for Visual Studio 2022 project generation
TRAP™ Engine 0.7.94 - 11/02/2021|21w44a2
Fixed Wreserved-id-macro messages
TRAP™ Engine 0.7.93 - 11/01/2021|21w44a1
Shader Reflection Changed size types to uint64_t
Vertex/IndexBuffer Changed GetCount to return uint32_t
Tests fixed warnings
Windows again disabled min and max macros
Corrected for loop data types
GCC suppressed warnings from VulkanMemoryAllocator
Static code analysis
TRAP™ Engine 0.7.92 - 10/23/2021|21w42a1
Fixed a small bug in ImGuiWindowing::NewFrame which could cause a crash after some time
Added GetDiscordCore in DiscordGameSDK
TRAP™ Engine 0.7.91 - 10/16/2021|21w41a2
Added Drop-In support for the Discord Game SDK
Added simple wrapper for Discord Game SDK
Added activity wrapper for Discord Game SDK
Window Added check for minimum supported width & height at window creation
TRAP™ Engine 0.7.90 - 10/12/2021|21w41a1
Rule of five everywhere
Linux X11 workaround for window maximization via WindowProps
Fixed a bug which resulted in error code 0x0002
TRAP™ Engine 0.7.89 - 10/03/2021|21w39a2
Made ImGui custom font loading Vulkan compatible
Config Added support for Headless RenderAPI
Removed runtime RenderAPI switching
Implemented error codes for user visible critical error dialogs
TRAP™ Engine 0.7.88 - 09/28/2021|21w39a1
Renderer2D Fixed a bug when using Textures
TRAP™ Engine 0.7.87 - 09/25/2021|21w38a2
RendererAPI & RendererCommand Added DrawInstanced & DrawIndexedInstanced
Added Vulkan extension VK_KHR_shader_draw_parameters
StorageBuffer Removed IsWritable function
Made StorageBuffer always Mapped
Renderer Now uses StorageBuffers for ModelMatrices
Renderer Now uses DrawInstanced & DrawIndexedInstanced to leverage gl_BaseInstance as an index for the ModelMatrices StorageBuffer
Updated all Shaders to use StorageBuffers for ModelMatrices
Tests Removed TestTexture Shader
Renderer Removed ModelMatrices UniformBuffer
TRAP™ Engine 0.7.86 - 09/22/2021|21w38a1
Shader Changed binding of UBOs
Updated all UBO binding calls
Added StorageBuffer (SSBO) class
Shader Added UseSSBO function
Added UniformBuffer CalculateAlignedSize function
Added StorageBuffer CalculateAlignedSize function
TRAP™ Engine 0.7.85 - 09/19/2021|21w37a5
Added new Vulkan ImGui backend with Texture support
ImGui Added helper function for Texture drawing
TRAP™ Engine 0.7.84 - 09/18/2021|21w37a4
Removed OnMouseScroll Controller check from OrthographicCameraController
RendererAPI Added GetCurrentImageIndex function
VulkanShader Changed updating of dynamic resources
Renderer2D corrected UV coordinates
Renderer2D Upped Quad limit to 1 million
TRAP™ Engine 0.7.83 - 09/16/2021|21w37a3
Made ParticleSystem2D work again
VulkanRenderer Changed DescriptorSet binding
RenderCommand Added SetBlendConstant shortcut
TRAP™ Engine 0.7.82 - 09/15/2021|21w37a2
Fixed bugs in Premake action scripts
Changed Renderer2D
Made Sandbox2D work again (except Textures)
Made TRAP-Editor runnable again (viewport/framebuffer non-functional)
TRAP™ Engine 0.7.81 - 09/14/2021|21w37a1
Made Renderer2D work again (missing Textures)
Updated Renderer2D shader
TRAP™ Engine 0.7.80 - 09/02/2021|21w35a3
Made Descriptor set independent from DescriptorUpdateFrequency
Sandbox Updated Shaders
Tests3D Updated Shaders
Tests Updated Shaders
Made Texture constructors more useful
Sampler Added validation check for Anisotropy
Controller Guide button now works without reseting other axis and buttons states
TRAP™ Engine 0.7.79 - 09/01/2021|21w35a2
Added error message for using push constants bigger than GPU allows
TRAP™ Engine 0.7.78 - 08/31/2021|21w35a1
Renderer Added missing draw call reset
Sandbox Updated Shaders using new Renderer UBO
Better utilization of ENABLE_GRAPHICS_DEBUG
Increased Vertex Input Attributes & Bindings to be GPU limited
TextureBase Added Image dimension validation
TRAP™ Engine 0.7.77 - 08/29/2021|21w34a3
Made ENABLE_GRAPHICS_DEBUG and VERBOSE_GRAPHICS_DEBUG more useful
TRAP™ Engine 0.7.76 - 08/28/2021|21w34a2
RendererAPI GPUSettings Added MaxUniformBufferRange value
VulkanDescriptorSet Changed/Simplified constructor
VulkanShader Extended UseUBO to support dynamic UBOs
VulkanRenderer Added PerBatch and PerDraw support
Renderer Removed PushConstant usage
Renderer Now uses a dynamic UBO for sending model matrices (currently limited to MaxUniformBufferRange drawcalls per frame)
Tests3D Updated Shaders, now using dynamic UBO
TRAP™ Engine 0.7.75 - 08/23/2021|21w34a1
Added alias for Sampler related stuff in TRAP::Graphics namespace
Updated Tests & Tests3D using new TRAP::Graphics alias for Sampler
Added PerBatch and PerDraw stuff
TRAP™ Engine 0.7.74 - 08/21/2021|21w33a2
WindowingAPI X11 Fixed a small bug
Math Added unsigned integer typedefs
TRAP™ Engine 0.7.73 - 08/19/2021|21w33a1
Input Added GetControllerBatteryStatus (for XInput)
Input Controller Added support for Guide Button (Thanks M$ for making this so complicated)
Input Controller Fixed some bugs in Windows backend
Tests Controller Added Battery & Guide Button support
TRAP™ Engine 0.7.72 - 08/14/2021|21w32a3
VFS Renamed GetCurrentFolder to GetCurrentFolderPath (API consistency)
VFS Added GetDocumentsFolderPath function
WindowingAPI Removed foreground lock timeout
TRAP™ Engine 0.7.71 - 08/13/2021|21w32a2
VulkanCommon Removed old functions
Renderer Optimized Submit functions
Made ControllerMappings OS dependent on compilation
Input Controller fixed mismatching guid sizes
VFS Added GetCurrentFolder function
Input changed how Controller Mappings are initialized
TRAP™ Engine 0.7.70 - 08/12/2021|21w32a1
Renderer Removed ModelMatrix from per frame SceneData UBO
Now using push constants for per draw model matrices (To be changed)
Updated Sandbox/Tests/Tests3D Shaders
Fixed wrong result in VertexBuffer::GetCount
Removed 64 VertexBuffer limit (now device capped)
Invalid BindPushConstants calls are now ignored
Tests3D Fixed Skybox rendering
TRAP™ Engine 0.7.69 - 08/07/2021|21w31a2
WindowingAPI Removed const_casts
TRAP™ Engine 0.7.68 - 08/02/2021|21w31a1
Texture Added Rotation functions for vertical cross cubemaps
TRAP™ Engine 0.7.67 - 08/01/2021|21w30a6
Reimplemented Renderer Submit function
Updated SandboxLayer (fully working)
Tests3D Fixed Cube UV coordinates
Texture Fixed wrong Cubemap layer ordering
TRAP™ Engine 0.7.66 - 07/31/2021|21w30a5
RendererAPI Added checks against invalid use of Clear function
Updated all Test programs
Validated functionality of every Test program (except ImageLoader as it needs Renderer2D)
Sandbox Updated SandboxLayer (missing Camera)
TRAP.h Added Utils.h
Tests3D Partially updated
Decoupled UniformBuffer from Shader
Shader Added UseUBO function
Updated VukanTest programs
Tests3D Partially updated
Fixed crash in Texture2D::CreateEmpty
TRAP™ Engine 0.7.65 - 07/30/2021|21w30a4
Removed unused TextureUsage enum
Replaced BufferUsage with (RendererAPI::Descriptor)UpdateFrequency
GPUSettings Added fillModeNonSolid
Reimplemented RenderCommand
RenderCommand Added optional Window* for multiple Window support
TRAP™ Engine 0.7.64 - 07/29/2021|21w30a3
RendererAPI Removed unused forward declarations
VulkanCommon Commented some unused functions out
TRAP™ Engine 0.7.63 - 07/28/2021|21w30a2
Cleaned up RendererAPI::Clear functions (1/2)
Cleaned up RendererAPI::Clear functions (2/2)
TRAP™ Engine 0.7.62 - 07/26/2021|21w30a1
Small WindowingAPI fixes
Fixed MSVC warnings
TRAP™ Engine 0.7.61 - 07/25/2021|21w29a4
Texture Added GetMipWidth/Height/Size functions
VulkanTextureTests Added runtime updating of the Texture
Merged TextureAbstraction into master (internal)
Updated stable TRAPVK (internal) version
Doxygen excluded ControllerMappings
Better documentation of internal WindowingAPI
TRAP™ Engine 0.7.60 - 07/24/2021|21w29a3
ResourceLoader Restructured loading procedure
Texture2D Implemented CreateFromImage
Fixed wrong ColorFormat after converting an image from RGB to RGBA
TextureCube Implemented CreateFromImage(s)
Texture Implemented various GetBit/BytesPerPixel/Channel functions
Texture2D/Cube Implemented complete Texture Update
TRAP™ Engine 0.7.59 - 07/22/2021|21w29a2
ResourceLoader added R16G16 and R32G32 format support
Texture Added convert function for colorformat + bpp to image format
Texture2D/Cube Removed old leftover Upload functions
Texture2D Implemented CreateFromFile and Create functions
Image Added function to convert RGB images to RGBA
WindowingAPI Replaced manual RGB to RGBA conversion with TRAP::Image::ConvertRGBToRGBA
ResourceLoader Replaced manual RGB to RGBA conversion with TRAP::Image::ConvertRGBToRGBA
TRAP™ Engine 0.7.58 - 07/21/2021|21w29a1
Added TextureBase class as API agnostic Texture abstraction
Texture classes now uses TextureBase internally (not inherited!)
VulkanShader Added RetrieveDescriptorName to reduce code duplication in Use*** functions
Shader/DummyShader/VulkanShader Implemented UseTexture(s) functions
VulkanTextureTests now uses Shader::UseTexture instead of internal API
TRAP™ Engine 0.7.57 - 07/16/2021|21w28a3
RendererAPI Removed ForceMipLevel in SamplerDesc
VulkanTextureTests Replaced ForceMipLevel in SamplerDesc with textureLod in shader
TRAP™ Engine 0.7.56 - 07/15/2021|21w28a2
Big code maintenance (+100 Files changed)
Big code maintenance (+40 Files changed)
TRAP™ Engine 0.7.55 - 07/13/2021|21w28a1
Big code maintenance (+100 Files changed)
TRAP™ Engine 0.7.54 - 07/03/2021|21w26a1
Added SamplerHash class for RendererAPI::SamplerDesc hashing
Sampler Added GetMinFilter, GetMagFilter, GetMipMapMode, GetAddressU, GetAddressV, GetAddressW, GetMipLodBias, GetMaxAnisotropy, GetCompareFunc, GetForceMipLevel & GetMipLevel functions
Sampler Added caching of newly created Samplers so they are reused instead of always creating new ones (should prevent from ever reaching maxSamplerAllocationCount limit)
Replaced some push_back with emplace_back
VulkanShader Added UseSampler & UseSamplers functions to bind given Sampler(s) to Descriptor
VulkanTextureTests Replaced direct Sampler binding with abstraction
TRAP™ Engine 0.7.53 - 06/27/2021|21w25a4
VulkanDevice Changed VkQueueFlags vector to unordered_map
VulkanPhysicalDevice now also prints device name when a check doesn’t pass capability tester
UniformBuffer Added GetUBOs() function which returns the internal buffers holding the data
Moved UniformBuffer Use() function to inside Shader Use()
VulkanMultiWindowTets Added UBO test for secondary Window
Created TextureAbstraction branch
TRAP™ Engine 0.7.52 - 06/24/2021|21w25a3
RendererAPI Removed GetPerWindowData
TRAP™ Engine 0.7.51 - 06/22/2021|21w25a2
Application Removed GetDrawCalls & AddSingleDrawCall
Moved GetLinuxWindowManager from Application to Utils
TRAP™ Engine 0.7.50 - 06/21/2021|21w25a1
Added SupportedImageFormatSuffixes to TRAP::Image
Moved CPUInfo from Application to Utils
TRAP™ Engine 0.7.49 - 06/20/2021|21w24a2
Resolved more warnings (GCC)
Moved GetEndian from Application to Utils
TRAP™ Engine 0.7.48 - 06/14/2021|21w24a1
Resolved warnings (MSVC)
Added VulkanIcoSphereTests
TRAP™ Engine 0.7.47 - 06/08/2021|21w23a2
Made VulkanTextureTests work again
TRAP™ Engine 0.7.47 - 06/07/2021|21w23a2
GenerateVulkanLoader replaced copy with move
Shaders now create UniformBuffers automatically using reflection data
Updated VulkanLoader version
Updated Controller mappings
UniformBuffer Removed window stuff
Updated VulkanTests
Removed Window stuff from VulkanTests
Fixed a crash in Shader reflection
TRAP™ Engine 0.7.46 - 06/07/2021|21w23a1
Removed global GraphicsRootSignature in RendererAPI
Made RootSignature per shader for now
Shader Added creation of DescriptorSets into constructor
BufferUsage Removed Stream as it has no use for now
Removed Descriptors from UniformBuffer
UniformBuffer made Static not persistent mapped
UniformBuffer Changed Use method (will be replaced soon)
TRAP™ Engine 0.7.45 - 05/24/2021|21w21a1
Tests (Re)Added VulkanMultiWindowTests
Application Removed artifical FrameTime/FPS when not focused
RendererAPI Fixed for loop not running last iteration
RendererAPI Moved Compute stuff out of PerWindowData
RendererAPI Moved Queue stuff out of PerWindowData
RendererAPI Added enums for ShadingRate stuff (WIP)
Vulkan Changed how undefined layouts are handled
Layerstack Added Pop*** methods to remove Layers from LayerStack with a Layer pointer
GCC Silenced unknown pragma warnings
TRAP™ Engine 0.7.44 - 05/16/2021|21w19a2
Updated Codestyle.md
Resolved some warnings
Disabled warnings from dependencies on gcc/…
RendererAPI/ResourceLoader Removed MipLevel selection from texture updates
VulkanTextureTests Added runtime texture update test
TRAP™ Engine 0.7.43 - 05/14/2021|21w19a1
Moved Config class to Utils folder
Math Added Min & Max for 3-4 inputs
Math Added Rounding methods
Math made Dot & Cross functions constexpr
Math Added SLerp function with spin count
TRAP™ Engine 0.7.42 - 05/05/2021|21w18a2
Added VulkanLoader generation script
Updated VulkanLoader
TRAP™ Engine 0.7.41 - 05/04/2021|21w18a1
Replaced ModernFileDialogs submodule with ModernDialogs
TRAP™ Engine 0.7.40 - 04/29/2021|21w17b1
Seperated VulkanTests Textures stuff into VulkanTextureTests
VulkanTextureTests Seperated sampler from texture
Fixed a bug in UniformBuffer (Offset in DescriptorData was not BufferOffset)
Docs Removed VMA & VulkanLoader
TRAP™ Engine 0.7.39 - 04/29/2021|21w17a1
Added project generation scripts
Added controller mapping generation script
Added documentation generation script
Updated README
Updated Controller Mappings
Regenerated documentation
TRAP™ Engine 0.7.38 - 04/22/2021|21w16b1
Added mipmap creation for Vulkan API (vkCmdBlitImage)
Sampler Added ability to force a specific mip level
VulkanTests Splitted Texture related stuff into own VulkanTextureTests
TRAP™ Engine 0.7.37 - 04/20/2021|21w16a1
Added auto generator for ControllerMappings (premake5/lua)
TRAP™ Engine 0.7.36 - 04/18/2021|21w15c1
Updated ControllerMappings (PS5 support)
TRAP™ Engine 0.7.35 - 04/18/2021|21w15b1
RendererAPI Added Cube Texture support
ResourceLoader Added more validations to Texture loading
ResourceLoader shortened Texture upload code
ResourceLoader Added SplitImageFromCross for cubemaps
ResourceLoader Added support for Horizontal/Vertical-Cross Cubemap Textures
ResourceLoader Added support for Multi-File Cubemap Textures
TRAP™ Engine 0.7.34 - 04/13/2021|21w15a1
RendererAPI Default winding order is now CounterClockWise
RendererAPI/ResourceLoader Added 2D Texture support
RendererAPI Fixed GPUSettings not set correctly
RendererAPI Added Max Anisotropy to GPUSettings
Image Added Function to check if filepath is a supported Image file
VFS Fixed casing of paths
VulkanTests Changed Vertices to CounterClockWise winding order
VulkanTests Added UV coordinates to indexed quad vertices
VulkanTests Added a Texture Shader
VulkanTests Added Internal Texture & Sampler
TRAP™ Engine 0.7.33 - 04/10/2021|21w14a1
Removed unused Shaders
VulkanTests Added OnImGuiRender runtime information
UniformBuffer class now uses a global map of descriptors (likely needs to be moved/refactored)
TRAP™ Engine 0.7.32 - 03/14/2021|21w10a2
UniformBuffer is now usable except the Use function
Shader/Manager Added a way to provide optional macros on shader loading/creation
VulkanTests Replaced internal UniformBuffer with the UniformBuffer class
VulkanTests Added a shader macro as a test to the testubo.shader
TRAP™ Engine 0.7.31 - 03/13/2021|21w10a1
Premake5 Added debug symbols to RelWithDebInfo
Config Fixed missing semicolon
RootSignature Removed unused DescriptorCount variable
RendererAPI Added AddShaderToGraphicsRootSignature function
RendererAPI Added bool which indicates if RootSignatures should be rebuilt
VulkanRenderer Optimized RootSignature recreation check
Shader Constructor & Destructor now call RendererAPI::AddShaderToGraphicsRootSignature & RendererAPI::RemoveShaderFromGraphicsRootSignature
ShaderManager Removed calls to RendererAPI::RemoveShaderFromGraphicsRootSignature
(Linux) LinuxInput (Controller Vibration) Added check if write failed
(Linux X11) WindowingAPI Fixed a SEGFAULT in GetWindowPropertyX11
VulkanRootSignature Fixed a bug where only the newest binding of a set was getting bound (nasty bug)
VulkanTests Added a Test for multiple UniformBuffer usage
VulkanTests Added testubo.shader for the UniformBuffer test
TRAP™ Engine 0.7.30 - 03/02/2021|21w09a3
RendererAPI Added BindPushConstants & BindPushConstantsByIndex functions
TRAP™ Engine 0.7.29 - 03/01/2021|21w09a2
Log class can now be used by client code
Event callbacks now get a pointer to the affected window instead of its title
Fixed a bug where the VSync setting of Config.cfg got ignored
TRAP™ Engine 0.7.28 - 03/01/2021|21w09a1
.gitignore Added make and code-workspace files
WindowingAPIX11 Replaced Success macro with its value (compiler error)
WindowingAPIX11 Added missing CursorTypes
WindowingAPI Removed ErrorCallback now uses TP_ERROR directly
(Linux) VFS GetTempFolderPath Added “/” as last character of folder path
(Linux) VFS Added filesystem exist check if path starts with “/” but its not a virtualPath
Worked on UniformBuffer abstraction
VulkanPhysicalDevice Moved WindowingAPI initialization
Commented out VulkanFrameBuffer class
TRAP™ Engine 0.7.27 - 02/16/2021|21w07a2
RendererAPI Moved Graphics RootSignature from per window to static data
RendererAPI Added RemoveShaderFromGraphicsRootSignature function
ShaderManager/Shader Fixed multiple crashes when Shader creation fails (including HotShaderReloading)
Added DummyShader class which gets used when Shader creation fails (preventing crashes | HotShaderReloading)
Vulkan Memory Allocator updated
VulkanTests Added V key to toggle VSync
VulkanTests Enabled HotShaderReloading
TRAP™ Engine 0.7.27 - 02/16/2021|21w07a1
RendererAPI Added GetDescriptorPool & GetGraphicsRootSignature functions
VulkanRenderer Added BindDescriptorSet function
Added UniformBuffer abstraction class which currently only supports 1 binding per set
Shader Added predefined macros for UniformBuffer set index ordered by update frequency None -> every draw calls
VulkanRenderer Fixed VSync (used wrong bool to check if changed)
VulkanRenderer Removed Pipeline binding from draw calls
VulkanRenderer Added Pipeline binding & RootSignature recreation to BindShader function
VulkanLoader Updated to Vulkan 1.2.170
VulkanTests Added Shader using a single UniformBuffer
VulkanTests Added F4 key to toggle between UniformBuffer usage
TRAP™ Engine 0.7.26 - 02/14/2021|21w06b2
(Vulkan)DescriptorSet Removed unnecessary count parameter in Update function
Added RootSignature back to PipelineDescHash
RendererAPI Added GetMainWindowData function for ImGuiLayer
VulkanDescriptorPool Fixed out of bounds in RetrieveDescriptorSet
VulkanRootSignature Removed unused uint32_t & if check in constructor
VulkanRenderer Removed GetImGuiDescriptorPool & GetPerWindowData functions
VertexBuffer, IndexBuffer, UniformBuffer Added persistent map flag for Static usage
IndexBuffer Added constructor without immediate data upload
UniformBuffer WIP changes
ImGuiLayer Implemented OnAttach, OnDetach, End for VulkanAPI
ImGuiWindowing Fixed an IM_ASSERT
ImGuiLayer Added PipelineCache @ TEMP/TRAP/ImGui.cache
Application enabled ImGui again
VulkanTests Added small ImGui test
TRAP™ Engine 0.7.23 - 02/08/2021|21w06a1
Removed old VulkanVertexBuffer class
Removed old VulkanIndexBuffer class
Removed old VulkanVertexArray class
Removed old VulkanUniformBuffer class
Removed old VertexArray base class
RendererAPI, VulkanRenderer Added BindVertexBuffer/BindIndexBuffer function for use by VertexBuffer/IndexBuffers
RendererAPI, VulkanRenderer Added DrawIndexed function
RendererAPI Removed GetCurrentGraphicCommandBuffer & GetCurrentSwapChain functions
Added new VertexBuffer abstraction
Added new IndexBuffer abstraction
Added partially complete UniformBuffer abstraction
ShaderManager Added default call of Shader.Use on Reload*** functions
VFS Added creation of TRAP folder in Temp folder if not existing
VulkanRenderer Added automatic PipelineCache creation & saving to Temp/TRAP folder
ImGui Added support for different RenderAPI implementations
VulkanTests Added Quad Vertices (non indexed)
VulkanTests Added Quad Vertices (indexed)
VulkanTests Added Triangle Indices
VulkanTests Added Quad Indices
VulkanTests Added dynamic VertexBuffer updating Triangle, Quad via F2
VulkanTests Added dynamic IndexBuffer updating Triangle, Quad via F3
VulkanTests Added ESC to shutdown
TRAP™ Engine 0.7.22 - 02/04/2021|21w05a1
New Main Window Width & Height only gets saved if greater than 0
VulkanSwapChain Added missing RenderTargets destruction
Utils Added HashCombine which can be used to combine multiple std::hashes together
Window Set Minimum Default Window size to 2x2
Log Removed unused includes
Shader Added Use function
VulkanRenderer Added Caching of Pipelines
VulkanRenderer Finished functions:
SetDepthTesting
SetDepthWriting
SetDepthFunction
SetDepthFail
SetDepthBias
SetDepthBiasSlopeFactor
SetStencilTesting
SetStencilFail
SetStencilPass
SetStencilFunction
SetStencilMask
SetCullMode
SetFillMode
SetFrontFace
SetBlendMode
SetBlendConstant
VulkanRenderer Added Dynamic Graphics Pipeline recreation
RendererAPI Added std::hash overload for PipelineDesc
Log TP_TRACE now uses magenta instead of plain white color
VulkanRenderer Added default VertexLayout of 0:vec3
RendererAPI Removed ShaderSemantic
VulkanTest Added F1 toggle for Wireframe mode
VulkanTest fixed winding order of triangle vertices
Fixed a crash in VulkanDebugCallback when using RenderDoc
TRAP™ Engine 0.7.21 - 01/24/2021|21w03a1
RendererAPI Added ClearFlags enum
RendererAPI Removed Use function
VulkanCommon Added ClearFlagsToVkImageAspectFlags function
CommandBuffer Added Clear function
VulkanCommandBuffer Added Clear function implementation
VulkanRenderer Implemented functions:
Present (fully)
SetVSync (fully)
SetClearColor (fully)
SetDepthTesting (partially)
SetDepthWriting (partially)
SetDepthFunction (partially)
SetDepthFail (partially)
SetDepthBias (partially)
SetDepthBiasSlopeFactor (partially)
SetStencilTesting (partially)
SetStencilFail (partially)
SetStencilPass (partially)
SetStencilFunction (partially)
SetStencilMask (partially)
SetCullMode (partially)
SetFillMode (partially)
SetFrontFace (partially)
SetBlendMode (partially)
SetBlendConstant (partially)
Clear (fully)
SetViewport (fully)
SetScissor (fully)
GetVSync (fully)
WaitIdle (fully)
RenderCommand Disabled a lot of functions (Will be reworked)
VFS Added Query for temp folder path
Window Added SetVSync & GetVSync functions
Window Removed Use functions
Application constructor now requires game title
Multiple Windows are now supported by the RendererAPI
TRAP™ Engine 0.7.20 - 01/16/2021|21w02a3
Integrated code from VulkanTest into RendererAPI (Queues, CommandPools, CommandBuffers, Fences, Semaphores, SwapChain)
TRAP™ Engine 0.7.19 - 01/15/2021|21w02a2
Added ResourceLoader for Buffers like VertexBuffer, IndexBuffer, etc…
VulkanTest Added colored triangle
TRAP™ Engine 0.7.18 - 01/11/2021|21w02a1
Added loading/saving of PipelineCache from disk
Optimized/Reduced usage of std::dynamic_pointer_cast in Vulkan code
VulkanTest optimized Window resizing
TRAP™ Engine 0.7.17 - 01/06/2021|21w01a3
Reimplemented Shader base class
Replaced ShaderType enum with the RendererAPI::ShaderStage
Added ability to load GLSL or SPIRV(created with ConvertToSPIRV)
Removed Bind/Unbind functions
Removed old VkShader class
Moved constructors of the abstract Vulkan*** base classes to protected
VulkanTest Added Window Resizing
VulkanTest Added a test shader
VulkanTest now uses ShaderManager
Updated ConvertToSPIRV
TRAP™ Engine 0.7.16 - 01/05/2021|21w01a2
Implemented abstraction for Vulkan*** classes
Added CommandSignature base class
Added DescriptorPool base class
Added DescriptorSet base class
Added Fence base class
Added Pipeline base class
Added PipelineCache base class
Added Queue base class
Added Semaphore base class
Added SwapChain base class
RendererAPI replaced Vulkan*** with equivalent abstraction
VulkanTest replaced Vulkan*** with equivalent abstraction
TRAP™ Engine 0.7.15 - 01/04/2021|21w01a1
Fixed a bug in Ycbcr features testing (VulkanDevice)
Started implementing abstraction for Vulkan*** classes
Added Buffer base class
Added CommanBuffer base class
Added CommandPool base class
Added QueryPool base class
Added RenderTarget base class
Added RootSignature base class
Added Sampler base class
2020
TRAP™ Engine 0.7.14 - 01/02/2020|20w53a3
Replaced unions with std::variant
Fixed several bugs
Fixed a major bug
Added a Vulkan API clear screen test
Added support for combined image samplers
Added support for Ycbcr color conversion
VulkanQueue Added PresentStatus struct as return value for Present function
Added support for multi-planar image format
TRAP™ Engine 0.7.13 - 12/31/2020|20w53a2
VulkanCommandBuffer Added UpdateVirtualTexture/BindRenderTargets/GetQueue functions
VulkanDescriptorSet Added Update function (missing RayTracing)
VulkanQueue Added Present fuction
VulkanRenderTarget Added GetID function
VulkanSwapChain Added AcquireNextImage/ToggleVSync/GetVkSwapChain/GetPresentVkQueue function
VulkanTexture Added VirtualTexture support
FINISHED BASELINE IMPLEMENTATION OF ALL VULKAN CLASSES
TRAP™ Engine 0.7.12 - 12/29/2020|20w53a1
Added more functions to VulkanCommandBuffer
Added VulkanCommandSignature class
Fixed a bug in VulkanDevice::FindQueueFamilyIndex
Added getters to VulkanPipeline
Added VulkanQueryPool class
Added VulkanSwapChain (missing getters)
Fixed a bug in VulkanTexture
Added more utility functions to VulkanCommon
VulkanRenderer added DefaultResource creation/upload
TRAP™ Engine 0.7.11 - 12/23/2020|20w52a1
Added more utility functions to VulkanCommon
VulkanRenderer Added default BlendAttachments/RasterizerDesc/DepthStencilDesc/BlendDesc
Added VulkanPipelineCache class
Added VulkanPipeline class (missing RayTracingPipeline)
Added several CreateInfo functions to VulkanInits
TRAP™ Engine 0.7.9 - 12/17/2020|20w51a2
VulkanCommandBuffer Added important Bind/Set/Update/Draw functions
Changed VulkanCommandPool to return a pointer in function AllocateCommandBuffer
VulkanDescriptorSet Added getters
RendererAPI Added some ImageFormat functions
Moved some struct from Vulkan***.h files to VulkanRenderer.h
VulkanQueue Added Submit function
VulkanCommon/VulkanInits Added Blending utilities
Replaced some Vulkan extensions with predefined macros
TRAP™ Engine 0.7.8 - 12/16/2020|20w51a1
Added DeviceMemory functions to VulkanBuffer
VulkanCommandBuffer Added PushConstant binding functions
VulkanCommandBuffer Added DebugMarker support
VulkanDescriptorPool implemented RetrieveDescriptorSet function
VulkanDescriptorSet implemented (de)constructor
VulkanQueue Added WaitQueueIdle function
Updated VulkanInits
Added VulkanRootSignature
Added some getters to VulkanShader
Added DescriptorTypeToVkDescriptorType & ShaderStageToVkShaderStageFlags functions in VulkanCommon
Fixed TRAP_ASSERT checking wrong variable
TRAP™ Engine 0.7.7 - 12/06/2020|20w49a3
Renamed old VulkanShader class to VkShader
Added VulkanBuffer
Added VulkanSampler
Added more util functions to VulkanCommon
Added new VulkanShader class
Added ShaderReflection
Added VulkanShaderReflection (SPIRVCross)
Added CommonShaderReflection
Added SPIRVTools
TRAP™ Engine 0.7.6 - 12/05/2020|20w49a2
Added VulkanCommandpool
Added VulkanCommandBuffer
VulkanDevice added public FindQueueFamilyIndex function
Implemented VulkanFrameBuffer
Added VulkanQueue
Added Getters to VulkanRenderPass
Added VulkanRenderTarget
Added VulkanTexture
Added some helper function to VulkanCommon
TRAP™ Engine 0.7.5 - 12/01/2020|20w49a1
Added Assertions
Some changes on VulkanDescriptorPool
Added WIP VulkanDescriptorSet
VulkanDevice removed unnecessary VulkanInstance parameter
VulkanDevice added WaitDeviceIdle
VulkanFence added GetStatus, Wait & static WaitForFences functions
Added WIP VulkanFrameBuffer
VulkanPhysicalDevice added GetMemoryType
Added fully working VulkanSurface
Added fully working VulkanRenderPass
TRAP™ Engine 0.7.4 - 11/26/2020|20w48a2
Added VMAAllocator
Added VulkanDescriptorPool
Dropped Vulkan Multi-GPU (SLI/Crossfire) support
Move VulkanLoader to Graphics/API/Vulkan/Utils
Moved & renamed VulkanMemoryAllocator to Graphics/API/Vulkan/Utils/VMA
Added QueueFamilyIndex & QueueIndex to VulkanDevice
Added VulkanMemoryAllocator as wrapper for VMA
Added VulkanFence
Added VulkanSemaphore
Added some conversion functions to VulkanCommon for RenderCommand
RenderCommand added RendererCullMode enum
Added some more options to RenderCommand enums
TRAP™ Engine 0.7.3 - 11/24/2020|20w48a1
Updated VulkanLoader to use 1.2.162.0
Updated used Raytracing extensions
TRAP™ Engine 0.7.2 - 11/22/2020|20w47a3
Added fully working automatic VulkanPhysicalDevice selection
Added fully working VulkanPhysicalDevice
Added fully working VulkanDevice
Switched to Vulkan 1.2
TRAP™ Engine 0.7.1 - 11/21/2020|20w47a2
Moved RendererAPI initialization from TRAP::Window to TRAP::Application
Added VulkanInits
Added fully working VulkanInstance class
Added fully working VulkanDebug class
Moved VSync setting to RendererAPI and changed from uint32_t to bool
TRAP™ Engine 0.7.0 - 11/19/2020|20w47a1
Created Private Vulkan only testing fork (TRAPVK)
Removed all OpenGL code
Cleared up all Vulkan code
Merged Context class with RendererAPI
TRAP™ Engine 0.6.89 - 11/13/2020|20w46a4
TRAP-Editor Fixed ability to select multiple primary cameras
TRAP-Editor Fixed crash when creating a new scene while an entity is selected (PropertiesPanel)
TRAP™ Engine 0.6.88 - 11/11/2020|20w46a3
TRAP-Editor Added proper Save/Load dialogs & a New scene button
SceneSerializer::Deserialize now also works with virtual files
TRAP-Editor fixed adding the same component twice resulting in a crash
TRAP™ Engine 0.6.87 - 11/10/2020|20w46a1
Added ModernFileDialogs as submodule
Added MessageBoxes for Linux
TRAP™ Engine 0.6.86 - 11/04/2020|20w45a2
Moved MsgBox to TRAP::Utils::Dialogs namespace
TRAP™ Engine 0.6.85 - 11/03/2020|20w45a1
Added YAML-cpp as a submodule
Added SceneSerializer class
Added WIP Serialize & Deserialize button in TRAP-Editor
Fixed Tests3D (Cube3D)
Fixed Linux crash when closing engine
TRAP™ Engine 0.6.84 - 10/29/2020|20w44a3
Added Create Entity UI
Added Delete Entity UI
Added Add Component UI
Added Remove Component UI
Fixed Camera viewport resize bug
Fixed some asserts
New ImGui dark theme colors
Visual UI changes for TRAP-Editor
Embedded OpenSans font inside Embed.h
TRAP™ Engine 0.6.83 - 10/28/2020|20w44a2
Added basic scene graph panel
Added properties panel
Added TagComponent UI for properties panel
SceneCamera added support for perspective camera
Added CameraComponent UI for properties panel
Added SpriteRendererComponent UI for properties panel
Added TransformComponent UI for properties panel
TRAP™ Engine 0.6.82 - 10/27/2020|20w44a1
Reused Camera class for CameraComponent instead as a base class
Renderer & Renderer2D added support for the new Camera class
Added Components: TagComponent, TransformComponent, CameraComponent, NativeScriptComponent
Added Entity wrapped class for entt
Added Scene class
Added SceneCamera class
Added ScriptableEntity class used by NativeScriptComponents
Fixed linux build
Splitted Platform detection from Core.h into PlatformDetection.h
Moved & Renamed Core.h to Core/Base.h
TRAP™ Engine 0.6.81 - 10/25/2020|20w43a4
Added ECS entt
TRAP™ Engine 0.6.80 - 10/22/2020|20w43a3
Fixed bug in OpenGLFrameBuffer when deleting textures
ImGui changed event blocking
Fixed possible bug in Renderer2DVS shader (now using branching instead of indexing)
TRAP™ Engine 0.6.79 - 10/20/2020|20w43a2
Better thread utilization by FileWatcher
Fixed Horizontal_Cross texture crash
Added new 2D batch renderer
TRAP™ Engine 0.6.78 - 10/19/2020|20w43a1
Fixed OrthographicCameraController movement
Added OpenGL context debug bit
Deactivated OpenGL notification debug messages
TRAP™ Engine 0.6.77 - 10/18/2020|20w42a6
Moved file closing in Image loaders
Reduced redundancy in OpenGL
TRAP™ Engine 0.6.76 - 10/17/2020|20w42a5
Fixed Linux assertion
TRAP™ Engine 0.6.75 - 10/16/2020|20w42a4
Better Assertion support
TRAP™ Engine 0.6.74 - 10/15/2020|20w42a3
Simplified Math.h (removed redundancy)
Updated docs
TRAP™ Engine 0.6.73 - 10/14/2020|20w42a2
Math Added missing Matrix Equal & NotEqual functions
TRAP™ Engine 0.6.72 - 10/12/2020|20w42a1
Complete Reference overhaul
Fixed crash(assert) when no Engine.cfg exists
Fixed Windows Travis CI (new VulkanAPI version)
TRAP™ Engine 0.6.71 - 09/19/2020|20w38a2
Fixed missing last element in SplitStringView
VFS is now actually lowercase except filename
Some documentation stuff in TRAP::VFS
TRAP™ Engine 0.6.70 - 09/18/2020|20w38a1
Added Radiance(HDR) Image Format Loader
Added Radiance(HDR) Image to ImageLoaderTests
Fixed Bug for RGB Images when set as Window or Mouse Icon
TRAP™ Engine 0.6.69 - 09/11/2020|20w37a1
FileWatcher now also refreshes search list every check
TRAP™ Engine 0.6.68 - 09/06/2020|20w36a4
Changed lots of string stuff
Renamed MinimizeTests to WindowStateTests
Added ImGui instructions to tests
TRAP™ Engine 0.6.66 - 09/04/2020|20w36a2
Config Added Get & GetVector functions with non void return type
Config Reordered ConvertToType functions and added more primitive data types
Config Reordered ConvertToString functions and added more primitve data types
Config optimized ConvertToType & ConvertToString functions (removed stringstreams)
String added CompareAnyCase functions
Config made values case insensitive
String added several string_view functions
TRAP™ Engine 0.6.65 - 09/02/2020|20w36a1
Added bool silent = false to every Silent*** counter function
Removed every Silent*** function
Migrated TRAP::FileSystem to TRAP::VFS
Added Virtual path supprot to TRAP::VFS::FileOrFolderExists
Added Virtual path support to TRAP::VFS::GetFileOrFolderSize
Added Virtual path support to TRAP::VFS::GetLastWriteTime
Fixed getting 0 from TRAP::VFS::GetFileOrFolderSize if a folder was supplied
TRAP™ Engine 0.6.64 - 08/27/2020|20w35a2
Added custom VulkanAPI meta loader (Based on Volk)
Fixed a missing s6_addr in SocketImplLinux
Fixed VulkanSDK download on TravisCI on Windows
TRAP™ Engine 0.6.63 - 08/25/2020|20w35a1
FileSystem added append mode for file writes
VFS added append mode for file writes
Linux IPv6 compatibility
TRAP™ Engine 0.6.62 - 08/23/2020|20w34a5
Added IPv6Address
Added IPv6 support
HTTP added automatic prioritising of IPv6 over IPv4
TRAP™ Engine 0.6.61 - 08/22/2020|20w34a4
Made DragAndDrop non default
Added SetDragAndDrop to TRAP::Window
Added DragAndDrop Tests
TRAP™ Engine 0.6.60 - 08/20/2020|20w34a3
Made FTP Download/Upload virtual file path compatible
TRAP™ Engine 0.6.59 - 08/19/2020|20w34a2
Added TCP/UDP Client/Server test
Added FTP Client test
TRAP™ Engine 0.6.58 - 08/18/2020|20w34a1
Added Networking stuff (FTP, HTTP, TCPSocket, UDPSocket, Packet, IPv4Address)
TRAP™ Engine 0.6.57 - 08/05/2020|20w32a1
TravisCI updated Windows VulkanSDK to 1.2.148.0
Updated ImGui Docking submodule
Updated SPIRV-Cross submodule
Updated GLSLang submodule
TRAP™ Engine 0.6.56 - 08/02/2020|20w31a2
WindowingAPI Replaced manuall Mutex with std::mutex
TRAP™ Engine 0.6.55 - 07/29/2020|20w31a1
TRAP::FileWatcher moved lambda functions into own function
TRAP™ Engine 07/25/2020|20w30a4
Completely overhauled documentation generation
TRAP::FileSystem added additional checks for empty paths and/or data
TRAP™ Engine 0.6.53 - 07/23/2020|20w30a3
OpenGLShader if Fragment/Vertex shader does not contain entry point “main” the Fallback shader will be used
VulkanShader Added Debugging Reflection (enable via TRAP_DEBUG_SHADERS macro)
Replaced all logging prefixes with constant expressions inside TRAP::Log namespace
More documentation
TRAP™ Engine 0.6.52 - 07/22/2020|20w30a2
OpenGLLoader Removed some non Direct State Access (DSA) functions
ImGuiOpenGL4 replaced non-DSA functions with DSA functions
ImGuiOpenGL4 removed unnecessary bindings thx to DSA :D
TRAP™ Engine 0.6.51 - 07/20/2020|20w30a1
Fixed crash on shutdown when not using HotReloading (tried to join a nullptr thread xD)
Added GetKeyboardLayoutName() to TRAP::Input
Added KeyLayout Event to TRAP::Input Callback
Made X11 MsgBoxes prettier
Removed unused friend classes in OpenGLShader & VulkanShader
TRAP™ Engine 0.6.50 - 07/19/2020|20w29a3
Test3D Added Skybox
Fixed Bug in Test3D PerspectiveCameraController when x rotation is bigger than 90° or smaller than -90°
Fixed Bug when Camera gets an OnFrameBufferResizeEvent where width or/and height is 0
Added RawMouseInput entry to Engine.cfg
Tried to implement DirectInput rumble via Force Feedback but all my controller do not report the needed Force Feedback flag so I can’t test this feature properly! Help wanted :O
TRAP™ Engine 0.6.49 - 07/17/2020|20w29a2
Made Test3D cube indexed and added normals
Small changes to WindowingAPI
HotReloading is now multithreaded and instant reloads(15ms instead of 1000ms delay)
Added Runtime CPU detection (Detects AMD & Intel)
TRAP™ Engine 0.6.48 - 07/16/2020|20w29a1
Fixed a bug in TRAP::Math
Added Tests3D Project for 3D testing
Added Cube to Tests3D
Added an FPS Camera (like Minecraft Creative mode) to Tests3D
Fixed multiple bugs in FileWatcher (HotReloading System)
TRAP™ Engine 0.6.47 - 07/11/2020|20w28a2
WindowingAPI fixed 2 bugs in X11
Changed Window mouse event transparency inside WindowingAPI
Moved BlockingQueue & ThreadPool into TRAP namespace
TRAP™ Engine 0.6.46 - 07/08/2020|20w28a1
Removed deprecated sudo from Travis CI
WindowingAPI updates
Renamed Event folder to Events (naming consistency)
TRAP™ Engine 0.6.45 - 07/03/2020|20w27a3
Removed multiple VBO support inside a single VAO
TRAP™ Engine 0.6.44 - 07/02/2020|20w27a2
Fixed unresolved functions in Experimental ThreadPool & BlockingQueue
Added multithreading inside OpenGLTexture2D when loading an Image from filepath (STILL EXPERIMENTAL)
Removed Load() function from OpenGLTexture2D as it was only used by one of the constructors
Made Logging thread safe
Renamed TRAP Editor to TRAP-Editor (fixes Linux CI bug)
Added TRAP::Window documentation
Added PNG images to HotTextureReloading list
Added SPIRV shaders to HotShaderReloading list
TRAP™ Engine 0.6.43 - 06/29/2020|20w27a1
Implemented VulkanVertexBuffer
Implemented VulkanIndexBuffer
Added TRAP Editor project
Changed FrameBuffer API
TRAP™ Engine 0.6.42 - 06/28/2020|20w26a3
Added GetAllGPUs function which returns every GPU name and its UUID(VulkanAPI)
Updated docs
TRAP™ Engine 0.6.41 - 06/27/2020|20w26a2
Changed folder structure
Modularized remaining premake5 scripts
Config Fixed an out of range error when only the key exists without any value
Utils Added UUIDToString and UUIDFromString functions
Added VulkanGPU UUID entry to Engine.cfg
Vulkan Added Saving/Loading of a GPU UUID
Vulkan Removed Verbose debug messages
Added Query to get current GPU name
Added Stencil function
TRAP™ Engine 0.6.40 - 06/25/2020|20w26a1
Moved some functions from Image to TGAImage
Changed VFS std::byte to uint8_t data type
TRAP™ Engine 0.6.39 - 06/21/2020|20w25a2
Added new Documentation via Sphinx + Doxygen + Breathe + Exhale
Added ImageLoaderTests
BMP loader added error message for OS/2 images
BMP loader added grayscale support
BMP loader added grayscale and RGBA RLE 8 decoding support
TRAP™ Engine 0.6.38 - 06/19/2020|20w25a1
Refactored OpenGLTexture2D
Added UploadImage to Texture2D(OpenGLTexture2D)
Updated VulkanSDK version for Travis CI on Windows
Fixed a bug in VFS::MakeVirtualPathCompatible
TRAP™ Engine 0.6.37 - 06/08/2020|20w24a1
Changed Instrumentor & made it thread safe
TRAP™ Engine 0.6.36 - 06/07/2020|20w23a3
Vulkan fixed validation errors inside PrepareNextFrame when swapchain is out of date or suboptimal
WindowingAPI Linux X11/XLib is now loaded dynamically (doesnt apply for MsgBoxes)
WindowingAPI Linux X11 Added XIM callbacks (Fixed segfault)
WindowingAPI Linux X11 Filtered error from other connections
WindowingAPI Linux X11 XKB now also checks key aliases
WindowingAPI WinAPI Removed pre Windows XP checks
TRAP™ Engine 0.6.35 - 06/06/2020|20w23a2
Vulkan added support for multiple windows
Fixed remaining Vulkan errors
Validated Vulkan functionality on Ubuntu 20.04 LTS using NVIDIA 440.66.15
TRAP™ Engine 0.6.34 - 05/31/2020|20w23a1
Fixed SandboxLayer not rendering the quad
TRAP™ Engine 0.6.33 - 05/28/2020|20w22a1
Finished big VulkanAPI rework(replaced old implementation)
TRAP™ Engine 05/15/2020|20w20a1
Updated Premake 5 to Alpha 15
TRAP™ Engine 20w19 & 20w20
Worked on new Vulkan implementation
TRAP™ Engine 0.6.32 - 04/20/2020|20w17a1
Added macro TRAP_DEBUG_CONFIGS to allow tracing of config file values
TRAP™ Engine 0.6.31 - 04/16/2020|20w16a1
Started working on Vulkan rewrite
Fixed IsVulkanCapable using wrong Vulkan API version define
Removed Deprecated Vulkan Device Layers
TRAP™ Engine 0.6.30 - 04/10/2020|20w15a2
Added TimeScale feature
TRAP™ Engine 0.6.29 - 04/09/2020|20w15a1
Updated Travis.yml
Removed Standalone sub project
Dropped DirectX 12 support
TRAP™ Engine 0.6.28 - 03/26/2020|20w13a1
Moved OpenGL Max Texture Units from Texture2D/Cube to OpenGLRenderer
Fixed FrameTime when out of Focus
TRAP™ Engine 0.6.27 - 03/20/2020|20w12a2
Added Triangle as Renderer2D primitive
TRAP™ Engine 0.6.26 - 03/16/2020|20w12a1
Made TRAP::Log singleton
Updated TRAP::Log Docs
Added experimental ThreadPool (Dont use it for now)
Added a small 2D particle system example
TRAP™ Engine 0.6.25 - 03/14/2020|20w11a2
2D Textures now can only be loaded directly from memory via a TRAP::Image
Cube Texture can now be loaded via a TRAP::Image
FPS now get calculated via the frametime
TRAP™ Engine 0.6.24 - 03/12/2020|20w11a1
Worked on Docs
Added ability to create texture via name and a TRAP::Image
Removed redundancy in Texture classes
Removed redundancy in Shader classes
TRAP™ Engine 0.6.23 - 03/08/2020|20w10a3
Docs now use Dark theme by default
Moved Event stuff from TRAP namespace to TRAP::Events
Updated Event Docs
Restructured Events in Docs
Made TRAP::Input class static
Updated Input Docs
Worked on Image Docs
TRAP™ Engine 0.6.22 - 03/07/2020|20w10a2
Enabled AVX2 compilation(CPU Requirement)
Added SHA2 hash functions
Changed Adler32 and CRC32 interface
Added SHA3 hash functions
Fixed SHA2 on Linux
TRAP™ Engine 0.6.21 - 03/04/2020|20w10a1
Added Quaternions
Replaced Matrix Rotations with Quaternions (thus fixing Gimbal Locking)
Added Missing GLM license notice in TRAP::Math
Added Missing GLAD license notice in OpenGLLoader
Added Missing GLFW license notice in TRAP::Input & TRAP::INTERNAL::WindowingAPI
Added Missing ImGui license notice in ImGui Layer
Added Missing GLSLang license
Added Missing SPIRV-Cross license
Added Missing Premake5 license
TRAP™ Engine 0.6.20 - 03/01/2020|20w09a4
Fixed Vulkan Present Queue
Added Command Buffer Submit synchronization
Added macro “TRAP_EXPERIMENTAL_VULKAN” to allow experimental usage of Vulkan API
TRAP™ Engine 0.6.19 - 02/29/2020|20w09a3
Renderer2D Added Rotation support
Working on Vulkan
TRAP™ Engine 0.6.18 - 02/27/2020|20w09a2
Added Random generator using mt19937_64
Validated Random generator
TRAP™ Engine 0.6.17 - 02/24/2020|20w09a1
TRAP::Application::Run is now only accessible by the engine
Added JSON based Performance Profiler
Added Profiling to SandboxLayer & Sandbox2D
Added Profiling to whole engine
TRAP™ Engine 0.6.16 - 02/23/2020|20w08a5
Fixed Heap corruption on Linux X11
Validated Controller functionality on Linux X11
Fixed Controller bugs when Connected while TRAP is running on Windows
Removed Singleton class
TRAP™ Engine 0.6.15 - 02/22/2020|20w08a4
Validated Window Title UTF-8 support on Windows
Validated Events on Linux X11
Validated Window Minimize functionality on Linux X11
Validated Window Icon functionality on Linux X11
Validated Monitor functionality on Linux X11
Validated Window Opacity functionality on Linux X11
Validated Window Title UTF-8 support on Linux X11
Controller vibrations now only get set if they differ from current (Fixes Linux bug with repeated calls)
Fixed compiler warnings on Linux X11
TRAP™ Engine 0.6.14 - 02/21/2020|20w08a3
Added support for translucent windows
Updated Docs
Validated Window Opacity functionality on Windows
TRAP™ Engine 0.6.13 - 02/20/2020|20w08a2
Added WindowMinimize/Maximize/RestoreEvents
Updated Docs
Validated Window Icon functionality on Windows
Added more queries to TRAP::Monitor
Updated Docs
Validated Monitor functionality on Windows
TRAP™ Engine 0.6.12 - 02/19/2020|20w08a1
Added Utility functions using TRAP::Math::Vec
Validated Controller functionality on Windows
Validated Window Minimize functionality on Windows
CloseController now only sends ControllerDisconnectEvents if the Controller was connected
Updated Docs
TRAP™ Engine 0.6.11 - 02/15/2020|20w07a3
Updated Travis.yml. Now uses Vulkan 1.2.131.2 SDK
Fixed Linux (XKB) Keyboard not working properly
Validated Clipboard functionality on Linux(X11)
Fixed and Validated Cursor functionality on Linux(X11)
Changed ToString functions in KeyPress/Release/TypeEvent & MouseButtonPress/ReleaseEvent & ControllerDis/ConnectEvent
Fixed missing InputCursorEnter calls in WindowingAPIWin32
Validated Events functionality on Windows
Updated Docs
TRAP™ Engine 0.6.10 - 02/11/2020|20w07a2
Updated ConvertToSPIRV tool for Vulkan 1.2 and SPIRV 1.5
Really Fixed CRLF endings for Linux
Added Tests project. Used for future tests
Validated Clipboard functionality on Windows
Fixed TRAP_RELWITHDEBINFO preprocessor in Sandbox & Tests
Added missing iterators to LayerStack
Validated Cursor functionality on Windows
Fixed ImGui overwriting Cursor the by Client
TRAP™ Engine 0.6.09 - 02/10/2020|20w07a1
Changed Controller API (Temporarily removed XInput)
Added support for up to 16 Controllers simultaneously
Fixed CRLF endings for Linux
Readded XInput support
Removed ControllerAPI from Engine.cfg
Finished combining DirectInput and XInput APIs
Added XInput entries to ControllerMapping
Fixed OrthographicCameraController not zooming until Controller trigger > 0.0
Fixed Windows builds
TRAP™ Engine 0.6.08 - 02/09/2020|20w06a4
Added Config class to Docs
Removed HotShader/TextureReloading from Engine.cfg
Added SetHotShader/TextureReloading() to TRAP::Application
Updated Docs
Removed TRAP::VFS::Get() function
Removed TRAP::Log::Get() function
Added TRAP::Log::GetBuffer() function
Added TRAP::Log to Docs
Added MonitorConnectEvent
Added MonitorDisconnectEvent
Fixed PollMonitorsWin32 not updating Monitor Handles
Added Monitor(Dis)ConnectEvent to Docs
Added automatic handling of Windows on Monitors that got disconnected
TRAP™ Engine 0.6.07 - 02/08/2020|20w06a3
Moved TRAP::VideoMode struct to TRAP::Monitor
Updated Docs
Replaced GetWindowLong with GetWindowLongPtr inside WindowingAPIWin32.cpp
Replaced SetWindowLong with SetWindowLongPtr inside WindowingAPIWin32.cpp
Removed TRAP::Application::Get() function
Made some TRAP::Application functions static
Added Single-Line Comments to Config files by using a ‘#’ at the beginning of a line
TRAP™ Engine 0.6.06 - 02/05/2020|20w06a2
Added WindowContentScaleEvent for OS DPI setting changes
Added GetContentScale to TRAP::Window
Updated Docs
Added Monitor class
Moved VideoMode struct from TRAP::INTERNAL::WindowingAPI to TRAP::
TRAP™ Engine 0.6.05 - 02/03/2020|20w06a1
Fixed TRAP_WINDOW_ASSERT undefined in release builds
Updated Docs
Added WindowDropEvent for Drag’n’Drop
Updated Docs
TRAP™ Engine 0.6.04 - 02/02/2020|20w05a1
Fixed Engine.cfg RefreshRate = 0 when invalid RefreshRate was used
Fixed GLSL Shaders for AMD GPUs
Added MouseEnter & MouseLeave Events
Replaced Single Linked Lists inside WindowingAPI with std::forward_list (This fixed a memory bug)
TRAP™ Engine 0.6.03 - 01/26/2020|20w04a3
Reworked Math API (Vec1-4, Mat3-4, General)
Updated GLSLang submodule
VulkanShader now convert GLSL to SPIRV 1.5 (Need Vulkan 1.2 SDK)
Renamed Events
Updated Docs
Splitted up WindowEvents from ApplicationEvents
Added FrameBufferResizeEvent
Switched WindowResizeEvent to FrameBufferResizeEvent
Updated Docs
TRAP™ Engine 0.6.02 - 01/21/2020|20w04a2
Added optional C++20 features
TRAP™ Engine 0.6.01 - 01/20/2020|20w04a1
Switched License from GPL 3.0 to Apache 2.0
Replaced GLAD
Added custom ImGui OpenGL 4 implementation
Updated docs
TRAP™ Engine 0.5.93 - 01/19/2020|20w03a2
Branch Window:
Fixed X11 parent window initialization
Fixed Windows no Win key release event
Updated Docs
Fixed Windows synthetic key event used TRAP::Input::Key::Unknown
Fixed Windows Frame/Window size callback called twice
Fixed Windows Trying to set SwapInterval while not using OpenGL
Added Cursor captured mode
TRAP™ Engine 0.5.92 - 01/18/2020|20w03a1
Branch Window:
Finished X11 Windowing
Fixed 2 small bugs
Made Config files Cross-Platform compatible (read text files now always use LF)
TRAP™ Engine 0.5.91 - 01/12/2020|20w02a4
Branch Window:
Added WindowingAPI functions to Window
Changed WindowProps constructor
Added clipboard functions to Input
Updated Docs
Added detection for X11 and Wayland on Engine startup
Engine now only runs on Windows 7 or newer
Made branch more linux compatible
TRAP™ Engine 0.5.90 - 01/11/2020|20w02a3
Branch Window:
Changed WindowingAPI from Scopes to Refs
Added more WindowingAPI functions
Added GetControllerGUID to Input
Added new WindowingAPI functions to Window
Updated Docs
TRAP™ Engine 0.5.89 - 01/07/2020|20w02a2
Branch Window:
Added 3 more functions to Window.cpp
Updated Docs
Removed some undefined behaviour
Removed some null deallocator smart pointer
TRAP™ Engine 0.5.88 - 01/06/2020|20w02a1
Branch Window:
Changed Context Use function to use raw pointer instead of const Scope reference
Removed pointer hack inside Window.cpp
Changed some Window functionality
TRAP™ Engine 0.5.87 - 01/05/2020|20w01a2
Branch Window:
Added ImGui support
Fixed False triggering 30FPS lock if ImGui child window is focused outside Main Window
Moar references
TRAP™ Engine 0.5.86 - 01/04/2020|20w01a1
Branch Window:
Added Main Window now keeps track of maximized status and saves it for next start
Added ability to set maximized state upon window creation
Added ability to set resizable state upon window creation
Added ability to set custom image as mouse cursor
Added ability to query maximized, minimized and resizable states from a window
Replaced every TRAP_BIND_EVENT_FN with lambdas
Removed TRAP_BIND_EVENT_FN instead use lambdas now
Fixed TRAP::Window crash if no EventCallbackFn was set
Updated Docs
2019
TRAP™ Engine 0.5.85 - 12/29/2019|19w52a6
Branch Window:
Added Hotkey ALT+(KP)Enter to switch between Windowed and Fullscreen mode (Single-Window only!)
Fixed Minimizing the Main Window on Multi-Window programs also stopped Rendering on the other Windows
Added 30 FPS Lock if Main Window loses focus (Single-Window only!)
TRAP™ Engine 0.5.84 - 12/28/2019|19w52a5
Branch Window:
Changed Borderless Fullscreen Window behaviour
Fixed: VSync setting gets ignored if switch to Fullscreen
Fixed: Input polling only used Main Render Window. Now it uses an optional parameter
Updated Docs
Fixed: Fullscreen Windows using wrong Viewport size
Updated Readme
TRAP™ Engine 0.5.83 - 12/27/2019|19w52a4
Branch Window:
Added more Cursors
Updated ImGui submodule
TRAP™ Engine 0.5.82 - 12/26/2019|19w52a3
Branch Window:
Finished Windows side of WindowingAPI
TRAP™ Engine 0.5.81 - 12/25/2019|19w52a2
Branch Window:
Updated Docs
Debugged and Fixed WindowingAPI
TRAP™ Engine 0.5.80 - 12/20/2019-12/23/2019|19w51a4-19w52a1
Branch Window:
Finished big parts of the new WindowingAPI
Current phase: Debugging of core features & Tidying up the API
TRAP™ Engine 0.5.75 - 12/04/2019|19w49a1
Branch Window:
Started working on new Window API
Removed GLFW
TRAP™ Engine 0.5.74 - 12/01/2019|19w48a4
Replaced cstring functions from Controller Input with std::strings
Merged some XInput functions with the other APIs
TRAP™ Engine 0.5.73 - 11/30/2019|19w48a3
Updated documentation
TRAP™ Engine 0.5.72 - 11/28/2019|19w48a2
Tidied up Input header functions
TRAP™ Engine 0.5.71 - 11/26/2019|19w48a1
Fixed SandboxLayer not initializing VertexArray
Fixed VulkanTexture2D creating Fallback2D with wrong name
TRAP™ Engine 0.5.70 - 11/24/2019|19w47a2
Branch ControllerInput:
Reverted XInput runtime loading
TRAP Engine now requires Windows 8 or newer because of XInput 1.4
Added DirectInput as new Controller API
Updated Docs
Created new Branch for a new Windowing API for Windows(Win32) and Linux(X11)
TRAP™ Engine 0.5.69 - 11/23/2019|19w47a1
Branch ControllerInput:
Finished Linux Controller Input
Windows XInput gets loaded at runtime now
Updated Documentation
TRAP™ Engine 0.5.68 - 11/17/2019|19w46a3
Branch ControllerInput:
Started working on Linux Controller Input
TRAP™ Engine 0.5.67 - 11/16/2019|19w46a2
Create new branch for Controller Input
Finished Controller Input(XInput)
Application Added check if Windows 8 or newer (XInput 1.4 Requirements)
Renamed ControllerHat functions to ControllerDPad
Added GetControllerDPad for XInput
TRAP™ Engine 0.5.66 - 11/14/2019|19w46a1
PNG Image Loader reduced memory usage
Reverted last PNG Optimization because it invalidated data
TRAP™ Engine 0.5.65 - 11/10/2019|19w45a4
Started working on Controller Input(XInput)
TRAP™ Engine 0.5.64 - 11/09/2019|19w45a3
ImageLoader changed some functions
Added ability to load 2D texure from memory
OpenGLFrameBuffer2D Added resolution safety check
Renderer2D now uses only 1 shader and a 1x1 White 2D Texture
TRAP™ Engine 0.5.63 - 11/06/2019|19w45a2
Memory SwapBytes now uses bitwise operations
TRAP™ Engine 0.5.62 - 11/05/2019|19w45a1
OpenGLTexture2D/Cube Fixed Uploading of 32BPP GrayScale-Alpha Images
TRAP™ Engine 0.5.61 - 11/03/2019|19w44a5
Optimized PNG Loader
Removed macOS support
TRAP™ Engine 0.5.60 - 11/02/2019|19w44a4
Changed Default Fallback Image
Started working on Renderer2D
Embedeed Shader for Renderer2D
Shader/TextureManager Added ability to remove Shader/Texture
TRAP™ Engine 0.5.59 - 10/31/2019|19w44a3
Config class can now be used in games
Changed some strings to string_views
TRAP™ Engine 0.5.58 - 10/29/2019|19w44a2
[Vulkan] Fixed some unitinialized variables
TRAP™ Engine 0.5.57 - 10/28/2019|19w44a1
Added HuffmanTree
Added Adler32
Added own zlib inflator
Removed zlib-ng submodule
TRAP™ Engine 0.5.56 - 10/27/2019|19w43a3
Finished PNG Loader
Tested PNG Loader with PNGSuite
Fixed small bugs in PNG Loader
TRAP™ Engine 0.5.55 - 10/26/2019|19w43a2
Added zlib to Inflate PNG Image Data
Disabled warnings from all submodules
Added Unfinished PNG Loader
TRAP™ Engine 0.5.54 - 10/21/2019|19w43a1
PNG Finished loading of all chunks
PNG Finished CRC Checking
Started working on PNG Decompression
TRAP™ Engine 0.5.53 - 10/19/2019|19w42a4
Worked on PNG Image File Format
TRAP™ Engine 0.5.52 - 10/18/2019|19w42a3
Finished caring about endian correctness
TRAP™ Engine 0.5.51 - 10/15/2019|19w42a2
Images started caring about endian correctness
Worked on PNG Image File Format
TRAP™ Engine 0.5.50 - 10/13/2019|19w41a4
Application Replaced BIND_EVENT_FN with TRAP_BIND_EVENT_FN
Texture Optimized RAM usage
Refactored OpenGLTexture2D
KeyPressedEvent Added actually counting the amount of key repeats
Removed EmptyImage class
Shaders Removed language tag and HLSL support
Shaders Fixed some edge cases in *.shader parsing
TRAP™ Engine 0.5.49 - 10/12/2019|19w41a3
Working on Shading language independent loading
ConvertToSPIRV Finished GLSL converting
Shader Optimized RAM usage
VulkanShader Added loading of SPIR-V
Dependencies Added SPIRV-Cross
Updated documentation
OpenGLShader Added loading of SPIR-V
Updated README.md
Fixed Travis CI
TRAP™ Engine 0.5.48 - 10/09/2019|19w41a2
OpenGLUniformBuffer with Stream usage now uses Orphaning(because of internal issues)
Working on Shading language independent loading
TRAP™ Engine 0.5.47 - 10/08/2019|19w41a1
OpenGLShader GLSL Ignore #version tag & always add “#version 460 core”
TRAP™ Engine 0.5.46 - 10/06/2019|19w40a5
OpenGLUniformBuffer Fixed Unbind function not using bindingPoint
OpenGLUniformBuffer Added Unbind/Bind safety checks
OpenGLUniformBuffer Optimized Binding/Unbinding of the same UniformBuffer to the same bindingPoint
Moved all inline functions to the .cpp files
Reordered functions to match declarations
TRAP™ Engine 0.5.45 - 10/05/2019|19w40a4
Finished & Added Event documentation
OpenGLTexture2D & OpenGLTextureCube Added safety checks to Bind and Unbind
Now utilizing structured bindings
OpenGLTexture2D & OpenGLTextureCube Optimized Binding/Unbinding of the same Texture to the same slot
TRAP™ Engine 0.5.44 - 10/04/2019|19w40a3
Windows now use overclocked monitors refresh rate or native refresh rate
Worked on Event documentation
TRAP™ Engine 0.5.43 - 10/03/2019|19w40a2
Fixed Window not updating position on windowed mode
Window Added storing of base video mode for every monitor
TRAP™ Engine 0.5.42 - 09/30/2019|19w40a1
Fixed invalid monitor usage if Engine.cfg doesnt exist
Added Core.h documentation
TRAP™ Engine 0.5.41 - 09/29/2019|19w39a4
Reverted Logging macros back to use TP_
TRAP™ Engine 0.5.40 - 09/28/2019|19w39a3
Worked on Event/Core documentation
Changed some things in Core.h
Changed some macro/template names
TRAP™ Engine 0.5.39 - 09/24/2019|19w39a2
Updated all submodules
TRAP™ Engine 0.5.38 - 09/23/2019|19w39a1
OpenGL Finished Persistent Mapped Triple Buffered(No Sync) Buffers
TRAP™ Engine 0.5.37 - 09/20/2019|19w38a2
Only Textures and Shaders which already exist in the Shader/TextureManager are getting reloaded now
OpenGL working on Persistent Mapped Triple Buffered(No Sync) Buffers for streaming data to the GPU every frame
TRAP™ Engine 0.5.36 - 09/19/2019|19w38a1
Moved Platform detection macros from premake to Core.h
Added OrthographicCameraController class and outsourced camera stuff from Sandbox
Added Zooming via mouse scrolling | controller triggers
Made OrthographicCameraController rotations optional
Made OrthographicCameraController controller input optional
Removed Translate and Rotate functions from OrthographicCamera
Added support for multiple OrthographicCameraControllers on different Windows
Main Window Resizing now gets handled inside the Engine
Added documentation for TRAP::Input
TRAP™ Engine 0.5.35 - 09/14/2019|19w37a5
Renderer changed Clear()
Fixed TimeStep class
Added new shader for testing(and fun :D)
TRAP™ Engine 0.5.34 - 09/13/2019|19w37a4
Working on Documentation for TRAP::Input
TRAP™ Engine 0.5.33 - 09/12/2019|19w37a3
Finished Controller support
Changed all enums to use UpperCamelCase
TRAP™ Engine 0.5.32 - 09/11/2019|19w37a2
Window Added Detection for which Windows uses which Monitor when using Fullscreen or Borderless
UniformBuffer Added support for multiple UBOs @ the same time
Working on Controller support
TRAP™ Engine 0.5.31 - 09/09/2019|19w37a1
ShaderManager now uses unordered_map
TextureManager now uses unordered_map
TextureManager changed some functions
ShaderManager changed some functions
Textures and Shaders that already exists don’t get overwritten now
ShaderManager Added Load functions to replace Add + CreateFromFile/Source
TextureManager Added Load functions to replace Add + CreateFromFile(s)/Cross
VFS Added GetFileName to retrieve filename of a virtualPath
Added Scopes and Refs as unique_ptr and shared_ptr replacement
TRAP™ Engine 0.5.30 - 09/08/2019|19w36a7
Replaced Key and Mouse defines with enum classes
Input Added GetKeyName
Window Added GetMonitorNames, GetMonitorName
Started Adding Gamepad support
Shader Added CreateFromFile without name parameter
Texture2D Added CreateFromFile without name parameter
TextureCube Added CreateFromCross without name parameter
TRAP™ Engine 0.5.29 - 09/07/2019|19w36a6
Added setting of the CursorMode
Added Raw Mouse Input support
TRAP™ Engine 0.5.28 - 09/06/2019|19w36a5
Working on Documentation(TRAP::Window)
Fixed a Bug inside Window SetDisplayMode when using Fullscreen
Restructured Window class
TRAP™ Engine 0.5.27 - 09/05/2019|19w36a4
BufferElement GetComponentCount() Removed Invalid returns
Started Working on Documentation
Replaced every unsigned int with uint32_t
Replaced every int with int32_t
TRAP™ Engine 0.5.26 - 09/04/2019|19w36a3
Added Camera Base class
OpenGL Added Texture Swizzle for GrayScale Images
RenderCommand Added Enable/Disable of Depth Masking
RenderCommand Added Setting of the Depth Test Function
RenderCommand Added Setting of different Blend Equations for RGB and alpha
RenderCommand Added Setting of different Blend Functions for srcRGB, srcAlpha, dstRGB, dstAlpha
RenderCommand Added Default values to some functions
Made VSync Window dependent
Removed GetVSyncInterval from API::Context
Added SetVSyncInterval and GetVSyncInterval to TRAP::Window
Removed unecessary TRAP::WindowProps constructor
TRAP™ Engine 0.5.25 - 09/03/2019|19w36a2
Removed std::function in EventDispatcher for performance
Fixed Changing Wrap/Filter of Texture
Added automatic drawing without IndexBuffer if no IndexBuffer exists
Added functions Get2D/GetCube to TextureManager
Updated Submodules
TRAP™ Engine 0.5.24 - 09/02/2019|19w36a1
OpenGL Added Texture Cube with Vertical Cross
Added HotTextureReloading to TextureCube
OpenGL Added TextureCube with Horizontal Cross
Modified TextureManager::Get() function to pass TextureType
Added Fallback for TextureCube
Made Input class Singleton
OpenGL Added TextureCube with multiple images
TRAP™ Engine 0.5.23 - 08/29/2019|19w35a3
Vulkan Added incomplete graphics pipeline
Added TextureCube Base class
TRAP™ Engine 0.5.22 - 08/28/2019|19w35a2
8BPP Indexed RLE BMP are now unsupported
Added EmptyImage for OpenGLFrameBuffer
Vulkan Splitted Compute/Graphics shaders
OpenGL Changed DrawCall function
TRAP™ Engine 0.5.20 - 08/25/2019|19w34a7
Optimized Vertical/Horizontal Functions for Image flipping
Optimized Image Decode/Convert Functions
TRAP™ Engine 0.5.19 - 08/24/2019|19w34a6
Optimized memory usage in TGA Image Loader for RLE images
TRAP™ Engine 0.5.18 - 08/23/2019|19w34a5
Added Multi-Window support
Changed Events system so it now passes current window title through
TRAP™ Engine 0.5.17 - 08/22/2019|19w34a4
Removed support for Non-Opaque Uniforms in GLSL Shaders(Use UBOs instead)
Added support for custom window icon with TRAP::Image
Simplified Compile function from OpenGLShader
Added support for 16BPP Indexed (RLE) TGA Image Files
Fixed bug in DecodeBGRAMap & DecodeRLEBGRAMap
Added Support for BMPV5 BitField Images
TRAP™ Engine 0.5.16 - 08/21/2019|19w34a3
Switched to OpenGL DSA(Direct State Access) mode
TRAP™ Engine 0.5.15 - 08/20/2019|19w34a2
Tested NPOT Textures on all current image formats
Simplified FlipX/Y function
Made the OpenGLTexture2D more bindless
TRAP™ Engine 0.5.14 - 08/19/2019|19w34a1
Got padding for 8 BPP BMP Images working
Fixed Linux compiling
Added support for NPOT Textures
TRAP™ Engine 0.5.13 - 08/14/2019|19w33a2
Got 32 BPP BMP Images working
TRAP™ Engine 0.5.12 - 08/13/2019|19w33a1
Working on BMP Image Loader
Added check if OpenGLTexture2D exceeds max size
TRAP™ Engine 0.5.11 - 08/11/2019|19w32a2
Added Range to FPSLimiter(25-1000FPS)
TRAP™ Engine 0.5.10 - 08/05/2019|19w32a1
Finished TGA Image Loader
TRAP™ Engine 0.5.9 - 08/04/2019|19w31a7
Working on TGA Image Loader
TRAP™ Engine 0.5.8 - 08/03/2019|19w31a6
Added uniform location caching for OpenGL shaders
TRAP™ Engine 0.5.7 - 08/02/2019|19w31a5
Allow FileWatcher to track sub directory files
Started working on TGA Image Format
TRAP™ Engine 0.5.6 - 08/01/2019|19w31a4
Confirmed PPM, PNM, PGM, PAM and PFM Image Formats working
Added TextureManager
Added HotTextureReloading
TRAP™ Engine 0.5.5 - 07/31/2019|19w31a3
Added Image class
Added DefaultImage for errors
Added PPM Image Format
Added PNM Image Format
Added PGM Image Format
Added PAM Image Format
Added PFM Image Format
TRAP™ Engine 0.5.4 - 07/30/2019|19w31a2
Tested if Tessellation Control and Evaulation Shader are working
Added PATCHES to RendererPrimitive for Tessellation
Fixed bug with single comments
Removed OpenGLShader comment detection because its unecessary
TRAP™ Engine 0.5.3 - 07/29/2019|19w31a1
Added GetDrawCalls()
Added optional FPSLimiter
Added OnTick, SetTickRate, GetTickRate functions
Tested if Geometry Shaders are working
Added OpenGL Shader Linker Error detection
Added RendererPrimitive option
TRAP™ Engine 0.5.2 - 07/28/2019|19w30a5
Added Projection/View/Model Matrix to the Passthrough Shader
Changed destruction order Renderer->ShaderManager->RendererAPI->Context->Window
TRAP™ Engine 0.5.1 - 07/27/2019|19w30a4
Added FPS and FrameTime overlay
Migrated UBO for Matrices to the abstract Renderer
Added Projection Matrix recalculation on resizing
Added support for Model(Transformation) Matrix
Added new FPS calculation method thx to Nilusss
TRAP™ Engine 0.5.0 - 07/26/2019|19w30a3
Linux support now official
TRAP™ Engine 0.4.10 - 07/24/2019|19w30a2
Readded MsgBoxLinux
Fixed premake5.lua to successfully build on Linux and Windows
Fixed all issues with Travis
TRAP™ Engine 0.4.9 - 07/22/2019|19w30a1
Removed unused Exception class
Removed MsgBoxLinux(Will be re-added without the need of GTK)
TRAP™ Engine 0.4.8 - 07/21/2019|19w29a2
Resolved Cyclic Dependency in tVec2,3,4 and Mat3,4(I know Math.h is ugly)
TRAP™ Engine 0.4.7 - 07/19/2019|19w29a1
Updated Submodules
Added UniformBuffer support
Changed Shader file format
Added support for comments(non range based) in Shaders
Shader parser now ignores UniformBufferBlock because they get handled by the UBOs
TRAP™ Engine 0.4.6 - 07/09/2019|19w28a1
Removed Texture stuff for now…
Moved some Renderer abstractions
Renamed Renderer class to RendererAPI
Added new Renderer class for abstractions
Added RenderCommand class for Renderer settings
Removed rectangle from Sandbox
Added automatic viewport change on WindowResizeEvent
Started evaluating the validity of my Maths API results(Vectors seem to work fine)
Added OrthographicCamera class
Changed Sandbox Color Shader to allow View and Projection Matrix
TRAP™ Engine 0.4.5 - 06/17/2019|19w25a2
Added TextureManager Reload functionality
Added Conversion from BGR(A) to RGB(A) format
TRAP™ Engine 0.4.3 - 06/16/2019|19w24a4
Added abstract Image class
Added Texture(2D) class
Added TextureManager
TRAP™ Engine 0.4.2 - 06/15/2019|19w24a3
Added TGAImage and BMPImage class to load Images
TRAP™ Engine 0.4.1 - 06/14/2019|19w24a2
Added checks for Geometry and Tessellation Shader support inside Vulkan
TRAP™ Engine 0.4.0 - 06/10/2019|19w24a1
Added BufferLayout
Added Vertex Buffer
Added Index Buffer
Added Vertex Array
Changed where ShaderManager gets destroyed
TRAP™ Engine 06/05/2019|19w23a2
Changed TRAP Engine verison to 19w23b1(0.3.2)
Worked on VulkanShader
TRAP™ Engine 0.3.1 - 06/03/2019|19w23a1
Added IsVulkanCapable() functionality inside VulkanContext
Added check if Vulkan 1.1 is supported by physical device inside VulkanContext
TRAP™ Engine 0.3.0 - 06/02/2019|19w22c1
Added Runtime switching between RenderAPIs
Added MsgBox API to create cross-platform Message Boxes
Fixed Bug #9 Crash if Engine.cfg was overwritten with an incompatible RenderAPI
Added RenderAPI auto correction for Bug #9
TRAP™ Engine 0.2.78 - 05/31/2019|19w22b1
Added Automatic selection of RenderAPI if there’s no/an invalid provided in Engine.cfg
TRAP™ Engine 0.2.77 - 05/30/2019|19w22a4
Changed checks if TRAP_PLATFORM_WINDOWS for D3D12 API
Changed calculation of FPS & set FPS and FrameTime at the end of the GameLoop
Added SetIcon inside Window and embedded TRAP logo as default icon
TRAP™ Engine 0.2.76 - 05/29/2019|19w22a3
Big CodeStyle overhaul
TRAP™ Engine 0.2.75 - 05/28/2019|19w22a2
Uploaded Repository to GitHub Yay :D
TRAP™ Engine 0.2.74 - 05/27/2019|19w22a1
Removed GLFW and ImGui
Re-Added GLFW and ImGui as submodules
Added GLSLang as Dependencie submodule
Reimplemented Hot Shader Reloading(FileWatcher)
TRAP™ Engine 0.2.73 - 05/26/2019|19w21c3
Splitted Dependencies into a seperate group
Added GLSLang library for runtime GLSL to SPIRV compiling
TRAP™ Engine 0.2.71 - 05/25/2019|19w21c2
Added Optional Shader Types to Shader System
Added Hot Shader Reloading Support with Hotkey(R+S) and On File Modified
Added Fallback Shader to Shader System for runtime Shader compile errors
TRAP™ Engine 0.2.70 - 05/24/2019|19w21c1
Windows Favors Nvidia or Amd GPU now
Fixed Bug #6 Added a check if shader == nullptr return
Removed TryCompile & TryCompileFromFile
Replaced GetTimeStamp with TIME macro
Added Timer & TimeStamp classes
Added GetFrameTime & GetFPS in Application
Readded GetTimeStamp with new Format
Added some missing constructors
Replaced all shared_ptr with unique_ptr
Added Multi Monitor support
Added Shutdown in Application to use for Hotkeys
Added Monitor Resolution Check for Fullscreen see Bug #2
Added Refresh Rate to Fullscreen
TRAP™ Engine 0.2.69 - 05/23/2019|19w21b3
Finished removing new & delete from Shader System(replaced by unique_ptr)
Added advanced debugging for OpenGL(DebugCallback)
Fixed Bug Shaders are now correctly destroyed before Context current == nullptr
Renamed Pixel Shader to Fragment Shader
Replaced some function parameters and return types from string to string_view(Shader System)
TRAP™ Engine 0.2.68 - 05/22/2019|19w21b2
Started removing new & delete from Shader System
TRAP™ Engine 0.2.67 - 05/21/2019|19w21b1
Updated ImGui
Replaced some function parameters and return types from string to string_view(Only Shader System is missing now)
TRAP™ Engine 0.2.66 - 05/20/2019|19w21a2
Fixed Bug #4 replaced VFS::Get()->WriteTextFile() with ofstream
Config changed forEach loops to use std::find_if()
Changed enums to enum classes
Removed EVENT_CLASS_CATEGORY macro
Removed EVENT_CLASS_TYPE
TRAP™ Engine 0.2.62 - 05/19/2019|19w20d2
Removed Warnings
Removed #defines
Removed potential memory leak in LayerStack
TRAP™ Engine 0.2.60 - 05/19/2019|19w20c2
Changed Config class std::map to std::vector
TRAP™ Engine 0.2.59 - 05/18/2019|19w20c1
Added Config class(using VFS for reading and writing to files)
Added Loading & Saving of Window Width, Height, Mode, VSync and RenderAPI
TRAP™ Engine 05/16/2019|19w20b2
Fixed Bug #1 replaced VKContext* Get() with shared_ptr<VKContext> Get()
Renamed VK to Vulkan, GL to OpenGL, DX to D3D12
Added a Config class(not using VFS for now)
TRAP™ Engine 05/15/2019|19w20a1
Finished adding TP_RENDERER_ASSERT back to VKRenderer
TRAP™ Engine 05/14/2019|19w20a
Updated Trello board https://trello.com/b/OFXQuscQ/trap-engine-redesign
Updated Version Number
TRAP™ Engine 0.2.55 - 05/10/2019|19w19b3a
Reported Bug #1 Destruction of Context before VkImageViews could be cleaned up by Renderer Destructor
Added more TP_RENDERER_ASSERT back to VKRenderer
TRAP™ Engine 0.2.54 - 05/09/2019|19w19b2
Started Adding TP_RENDERER_ASSERT back to VKRenderer
TRAP™ Engine 05/08/2019|19w19b1
Added Precompiled Header files(PCH) to speed up compiling
Optimized all vector accesses by replacing vector.at() with vector[] operators
Log.txt is now created by the Virtual File System(VFS)
Replaced all uint8_t with std::byte less error prone because std::bytes has no operator overloads except bitwise operations
Added macros for versioning TRAP Engine
Changed Parameters of WriteFile(VFS), WriteFile(FileSystem) to use std::vector<std::byte>& instead of std::byte*
Added TP_RENDERER_ASSERT back to VKContext