OpenBarnyard
 
Loading...
Searching...
No Matches
TRenderAdapter.h
Go to the documentation of this file.
1#pragma once
2#include "Toshi/TNodeList.h"
3
5
6class TString8;
7
8class TRenderAdapter : public TNodeList<TRenderAdapter>::TNode
9{
10public:
11 class Mode : public TNodeList<Mode>::TNode
12 {
13 public:
14 class Device : public TNodeList<Device>::TNode
15 {
16 public:
17 Device() = default;
18 virtual ~Device() = default;
19
20 virtual Mode* GetMode() const = 0;
21 virtual TUINT32 GetDeviceIndex() const = 0;
22 virtual const TCHAR* GetTypeString() const = 0;
23 virtual TBOOL IsSoftware() const = 0;
24 virtual TBOOL CanRenderWindowed() const = 0;
26 virtual TBOOL IsDepthStencilFormatSupported( TUINT32 a_iIndex ) const = 0;
27 };
28
29 public:
30 Mode() = default;
31
32 virtual ~Mode() = default;
33
34 virtual TRenderAdapter* GetAdapter() const = 0;
35 virtual size_t GetModeIndex() const = 0;
36 virtual TUINT32 GetWidth() const = 0;
37 virtual TUINT32 GetHeight() const = 0;
38 virtual TBOOL Is32Bit() const = 0;
39 virtual TBOOL Is16Bit() const = 0;
40 virtual TUINT32 GetRefreshRate() const = 0;
42 };
43
44public:
45 TRenderAdapter() = default;
46 virtual ~TRenderAdapter() = default;
47
48 // TODO: complete vftable
49 virtual TUINT32 GetAdapterIndex() const = 0;
50 virtual const TString8& GetDriver() const = 0;
51 virtual const TString8& GetDriverDescription() const = 0;
52 virtual TUINT16 GetProductID() const = 0;
53 virtual TUINT16 GetVersion() const = 0;
54 virtual TUINT16 GetSubVersion() const = 0;
55 virtual TUINT16 GetBuild() const = 0;
56 virtual const void* GetDeviceIdentifier() const = 0;
57 virtual TUINT32 GetNumSupportedDevices() const = 0;
58
59 TNodeList<Mode>* GetModeList() { return &m_Modes; }
60
61private:
62 TNodeList<Mode> m_Modes; // 0x10
63};
64
#define TOSHI_NAMESPACE_START
Definition Defines.h:47
#define TOSHI_NAMESPACE_END
Definition Defines.h:50
uint16_t TUINT16
Definition Typedefs.h:15
char TCHAR
Definition Typedefs.h:20
uint32_t TUINT32
Definition Typedefs.h:13
bool TBOOL
Definition Typedefs.h:6
virtual const TString8 & GetDriverDescription() const =0
virtual TUINT16 GetSubVersion() const =0
virtual const void * GetDeviceIdentifier() const =0
virtual TUINT16 GetProductID() const =0
TNodeList< Mode > * GetModeList()
TRenderAdapter()=default
virtual TUINT16 GetBuild() const =0
virtual TUINT16 GetVersion() const =0
virtual TUINT32 GetNumSupportedDevices() const =0
virtual const TString8 & GetDriver() const =0
virtual TUINT32 GetAdapterIndex() const =0
virtual ~TRenderAdapter()=default
virtual TRenderAdapter * GetAdapter() const =0
virtual size_t GetModeIndex() const =0
virtual TBOOL Is32Bit() const =0
virtual TUINT32 GetHeight() const =0
virtual TRenderAdapter::Mode::Device * GetDevice(TUINT32 a_iDevice)=0
virtual TUINT32 GetRefreshRate() const =0
virtual TUINT32 GetWidth() const =0
virtual TBOOL Is16Bit() const =0
virtual ~Mode()=default
virtual TBOOL SupportsHardwareTransfomations() const =0
virtual TUINT32 GetDeviceIndex() const =0
virtual Mode * GetMode() const =0
virtual const TCHAR * GetTypeString() const =0
virtual TBOOL CanRenderWindowed() const =0
virtual TBOOL IsDepthStencilFormatSupported(TUINT32 a_iIndex) const =0
virtual TBOOL IsSoftware() const =0
virtual ~Device()=default
constexpr TNode()
Definition TNodeList.h:15