* Mark concrete graphics device classes as final - they should not be inherited from further.
* Apply consistent snake_cast naming (which has been used in more recent additions) across wiGraphics structs
* Make 'CommandList' type safe so that calling graphics device functions is less error-prone.
* Decouple wiProfiler from wiRenderer by passing the device instance to functions instead of using wiRenderer::GetDevice().
* Bump minor version for graphics refactors.
* Decouple wiHelper screenshot/saveTexture* functions from wiRenderer by providing the graphics device as a parameter.
* Convert wiGraphics.h enums to use enum class (except a couple of raytracing flag enums which seem best left)
* hdr fix
* Documentation updates for enum class.
* Revert "Decouple wiHelper screenshot/saveTexture* functions from wiRenderer by providing the graphics device as a parameter."
This reverts commit fd70249554.
* Revert "Decouple wiProfiler from wiRenderer by passing the device instance to functions instead of using wiRenderer::GetDevice()."
This reverts commit 69b5326cfc.
* Fix debug build
* Fix gcc build (hopefully). Move bitmask operator defs to end of file outside of wiGraphics namespace.
* Remove 'to_underlying' and replace with casts
* graphics device access decoupled from wiRenderer, now should be accessed from wiGraphics::GetDevice()
* minor refactors, comments
* dx12 assert fix
* fixes
* commandlist refactor
* commandlist initial value
* commandlist refactor
* graphicsdevice comments, GetActivePipelineCount() function
* has changed to has_flag
* just rename a thing
Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
* Don't redefine NOMINMAX if already defined
* Don't redefine WIN32_LEAN_AND_MEAN or NOMINMAX if already defined
* Explicitly use LoadLibraryExW so that compilation still succeeds on projects not defining UNICODE.
linux: works only with wayland backend, can be used with SDL_VIDEODRIVER=wayland enviroment variable set.
It's possible that it works also on other platforms when using the SDL backend.
The engine would crash on exit because SDL handles the deletion of the swapchain on his own, making the engine delete the swapchain twice, which would result in a crash on wayland.
This fix checks if the Video Subsystem is not running any more, if not it will assume there is no need to destroy the swap chains any more.
On some compilers, wiRandom would initialize later than other modules that depend on it for initialization, resuling in undefined behaviour (infinite loop in my case).
Co-authored-by: Amer Koleci <amerkoleci@gmail.com>
* ThirdParty: Update DirectX headers and D3D12MA.
* D3D12: Replace feature detection with new CD3DX12FeatureSupport.
* D3D12: Handle tearing in correct way, can be used when vertical sync is disabled, non fullscreen and tearing is supported.
* Vulkan: Implement pipeline cache support, verifies and loads cache validation.
* wiHelper: Add GetTempDirectoryPath and use it in vulkan cache lookup.
* emitter rewrite to support raytracing, still has some problems
* added emitters to compute BVH
* sorting only for culled rasterized particles; fixes;
* emitter mesh shader update
* emitter tracing improvements
* particle traces will use simplified lighting model
* don't update particle gpu data when scene update requests are stopped
* path tracing unlit material support
* path tracing unlit material fix
* path tracing: unlit refactor
* remove all resource bindings from renderpath, they will be descriptor indices attached to camera CB data
* fix
* big refactor: bindings removal
* minor update renderpath3d
* version bump
* fix
* big refactor: shader weather params
* refactor
* this update will increase minor version number as interface changes were made
* dx12, vulkan fix: dirty pso state was not handled correctly
* moved lot of things to camera CB, refactors
* cameracb padding fix