| 
    Foray Library
    
   rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications 
   | 
 
Intended as base class for demo applications. Compared to MinimalAppBase it offers a complete simple vulkan setup. More...
#include <foray_defaultappbase.hpp>
Public Member Functions | |
| DefaultAppBase () | |
| virtual | ~DefaultAppBase ()=default | 
| int32_t | Run () | 
| Runs through the entire application lifetime.   | |
Protected Member Functions | |
| virtual void | ApiBeforeInit () | 
| Called before any initialization happens.   | |
| virtual void | ApiBeforeWindowCreate (osi::Window &window) | 
| Override this method to alter vulkan instance creation parameters via the instance builder.   | |
| virtual void | ApiBeforeInstanceCreate (vkb::InstanceBuilder &instanceBuilder) | 
| Override this method to alter vulkan instance creation parameters via the instance builder.   | |
| virtual void | ApiBeforeDeviceSelection (vkb::PhysicalDeviceSelector &pds) | 
| Alter physical device selection.   | |
| virtual void | ApiBeforeDeviceBuilding (vkb::DeviceBuilder &deviceBuilder) | 
| Alter device selection.   | |
| virtual void | ApiBeforeSwapchainBuilding (vkb::SwapchainBuilder &swapchainBuilder) | 
| Before building the swapchain.   | |
| virtual void | ApiInit () | 
| Called after all DefaultAppBase members have been initialized, but before the renderloop starts. Initialize your application here.   | |
| virtual void | ApiOnResized (VkExtent2D size) | 
| Called whenever the swapchain has been resized.   | |
| virtual void | ApiOnEvent (const osi::Event *event) | 
| Override this method to react to events.   | |
| virtual void | ApiRender (FrameRenderInfo &renderInfo) | 
| Called once every frame. Render your application here.   | |
| virtual void | ApiFrameFinishedExecuting (uint64_t frameIndex) | 
| Called back once the frame of the index has finished executing on the GPU, so QueryResults etc. are ready to be obtained.   | |
| virtual void | ApiOnShadersRecompiled (std::unordered_set< uint64_t > &recompiledShaderKeys) | 
| Called whenever the shader compiler has detected a change and shaders have successfully been recompiled.   | |
| virtual void | ApiDestroy () | 
| Called after the application has been requested to shut down but before DefaultAppBase finalizes itself.   | |
| virtual void | RegisterRenderStage (stages::RenderStage *stage) | 
| Call this with a renderstage for automatic OnResized/OnShadersRecompiled calls. Register order is maintained for callbacks.   | |
| virtual void | UnregisterRenderStage (stages::RenderStage *stage) | 
| Call this with a renderstage to unsubscribe from automatic calls.   | |
| virtual void | Init () | 
| [Internal] Initializes DefaultAppBase   | |
| virtual void | InitGetQueue () | 
| [Internal] Initializes Queue   | |
| virtual void | InitCommandPool () | 
| [Internal] Initializes Command Pool   | |
| virtual void | InitCreateVma () | 
| [Internal] Initializes VmaAllocator   | |
| virtual void | InitSyncObjects () | 
| [Internal] Initializes Synchronization Objects (InFlightFrame vector)   | |
| virtual void | RecreateSwapchain () | 
| [Internal] Recreates the swapchain   | |
| void | OnResized (VkExtent2D size) | 
| [Internal] Handler for swapchain resize   | |
| virtual void | PollEvents () | 
| [Internal] Polls and distributes events from the SDL subsystem   | |
| virtual bool | CanRenderNextFrame () | 
| [Internal] Checks next frames InFlightFrame object for completed execution   | |
| virtual void | Render (RenderLoop::RenderInfo &renderInfo) | 
| [Internal] Image Acquire, Image Present   | |
| virtual void | OnShadersRecompiled (std::unordered_set< uint64_t > &recompiledShaderKeys) | 
| [Internal] Shader recompile handler   | |
| virtual void | Destroy () | 
| [Internal] Finalizer   | |
Protected Attributes | |
| RenderLoop | mRenderLoop | 
| osi::OsManager | mOsManager | 
| VulkanInstance | mInstance | 
| VulkanDevice | mDevice | 
| VulkanWindowSwapchain | mWindowSwapchain | 
| core::SamplerCollection | mSamplerCollection | 
| core::Context | mContext | 
| core::ShaderManager | mShaderManager | 
| uint32_t | mAuxiliaryCommandBufferCount = 0 | 
| Increase this in an early init method to get auxiliary command buffers.   | |
| std::array< InFlightFrame, INFLIGHT_FRAME_COUNT > | mInFlightFrames | 
| uint32_t | mInFlightFrameIndex = 0 | 
| uint64_t | mRenderedFrameCount = 0 | 
| std::vector< stages::RenderStage * > | mRegisteredStages | 
| fp64_t | mLastShadersCheckedTimestamp = 0.0 | 
| bool | mEnableFrameRecordBenchmark = false | 
| bench::HostBenchmark | mHostFrameRecordBenchmark | 
Static Protected Attributes | |
| static const char *const | FRAMERECORDBENCH_WAITONFENCE = "Wait On Fence" | 
| static const char *const | FRAMERECORDBENCH_ACQUIRESWAPIMAGE = "Acquire Swapimage" | 
| static const char *const | FRAMERECORDBENCH_RECORDCMDBUFFERS = "Record CmdBuffers" | 
| static const char *const | FRAMERECORDBENCH_PRESENT = "Present" | 
Intended as base class for demo applications. Compared to MinimalAppBase it offers a complete simple vulkan setup.
| foray::base::DefaultAppBase::DefaultAppBase | ( | ) | 
      
  | 
  virtualdefault | 
      
  | 
  inlineprotectedvirtual | 
Alter device selection.
      
  | 
  inlineprotectedvirtual | 
Alter physical device selection.
      
  | 
  inlineprotectedvirtual | 
Called before any initialization happens.
      
  | 
  inlineprotectedvirtual | 
Override this method to alter vulkan instance creation parameters via the instance builder.
      
  | 
  inlineprotectedvirtual | 
Before building the swapchain.
      
  | 
  inlineprotectedvirtual | 
Override this method to alter vulkan instance creation parameters via the instance builder.
      
  | 
  inlineprotectedvirtual | 
Called after the application has been requested to shut down but before DefaultAppBase finalizes itself.
      
  | 
  inlineprotectedvirtual | 
Called back once the frame of the index has finished executing on the GPU, so QueryResults etc. are ready to be obtained.
| frameIndex | Index of the frame that has finished executing | 
      
  | 
  inlineprotectedvirtual | 
Called after all DefaultAppBase members have been initialized, but before the renderloop starts. Initialize your application here.
      
  | 
  inlineprotectedvirtual | 
Override this method to react to events.
      
  | 
  inlineprotectedvirtual | 
Called whenever the swapchain has been resized.
| size | New size of the swapchain | 
      
  | 
  inlineprotectedvirtual | 
Called whenever the shader compiler has detected a change and shaders have successfully been recompiled.
| recompiledShaderKeys | Shader compilation keys as provided by the ShaderManager | 
      
  | 
  inlineprotectedvirtual | 
Called once every frame. Render your application here.
| renderInfo | Frame specific information | 
Used command buffers must be fully recorded and submitted by the overrider. The swapchain image must be prepared for present In one of these command buffers!
      
  | 
  protectedvirtual | 
[Internal] Checks next frames InFlightFrame object for completed execution
      
  | 
  protectedvirtual | 
[Internal] Finalizer
      
  | 
  protectedvirtual | 
[Internal] Initializes DefaultAppBase
      
  | 
  protectedvirtual | 
[Internal] Initializes Command Pool
      
  | 
  protectedvirtual | 
[Internal] Initializes VmaAllocator
      
  | 
  protectedvirtual | 
[Internal] Initializes Queue
      
  | 
  protectedvirtual | 
[Internal] Initializes Synchronization Objects (InFlightFrame vector)
      
  | 
  inlineprotected | 
[Internal] Handler for swapchain resize
      
  | 
  protectedvirtual | 
[Internal] Shader recompile handler
      
  | 
  protectedvirtual | 
[Internal] Polls and distributes events from the SDL subsystem
      
  | 
  protectedvirtual | 
[Internal] Recreates the swapchain
      
  | 
  protectedvirtual | 
Call this with a renderstage for automatic OnResized/OnShadersRecompiled calls. Register order is maintained for callbacks.
      
  | 
  protectedvirtual | 
[Internal] Image Acquire, Image Present
| int32_t foray::base::DefaultAppBase::Run | ( | ) | 
Runs through the entire application lifetime.
      
  | 
  protectedvirtual | 
Call this with a renderstage to unsubscribe from automatic calls.
      
  | 
  inlinestaticprotected | 
      
  | 
  inlinestaticprotected | 
      
  | 
  inlinestaticprotected | 
      
  | 
  inlinestaticprotected | 
      
  | 
  protected | 
Increase this in an early init method to get auxiliary command buffers.
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected |