Plasma Engine  2.0
Loading...
Searching...
No Matches
WindowOutputTarget.h
1#pragma once
2
3#include <Core/GameApplication/WindowOutputTargetBase.h>
4#include <GameEngine/GameEngineDLL.h>
5
6#include <Foundation/Math/Size.h>
7#include <RendererFoundation/Descriptors/Descriptors.h>
8#include <RendererFoundation/RendererFoundationDLL.h>
9
10struct plGALDeviceEvent;
11
16class PL_GAMEENGINE_DLL plWindowOutputTargetGAL : public plWindowOutputTargetBase
17{
18public:
19 using OnSwapChainChanged = plDelegate<void(plGALSwapChainHandle hSwapChain, plSizeU32 size)>;
20 plWindowOutputTargetGAL(OnSwapChainChanged onSwapChainChanged = {});
22
23 void CreateSwapchain(const plGALWindowSwapChainCreationDescription& desc);
24
25 virtual void PresentImage(bool bEnableVSync) override;
26 virtual void AcquireImage() override;
27 virtual plResult CaptureImage(plImage& out_image) override;
28
29 OnSwapChainChanged m_OnSwapChainChanged;
30 plSizeU32 m_Size = plSizeU32(0, 0);
32 plGALSwapChainHandle m_hSwapChain;
33};
Definition RendererFoundationDLL.h:397
A class containing image data and associated meta data.
Definition Image.h:103
Base class for window output targets.
Definition WindowOutputTargetBase.h:16
Creates a swapchain and keeps it up to date with the window.
Definition WindowOutputTarget.h:17
Type for important GAL events.
Definition Descriptors.h:253
Definition Descriptors.h:20
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54