Berserk
Public Types | Public Member Functions | Static Public Member Functions | List of all members
GLDevice Class Referencefinal

GL device implementation. More...

#include <GLDevice.hpp>

Inheritance diagram for GLDevice:
Inheritance graph
[legend]
Collaboration diagram for GLDevice:
Collaboration graph
[legend]

Public Types

using MakeContextCurrentFunc = std::function< void(const Ref< Window > &)>
 
using SwapBuffersFunc = std::function< void(const Ref< Window > &)>
 

Public Member Functions

BRK_API GLDevice (MakeContextCurrentFunc makeCurrentFunc, SwapBuffersFunc swapBuffersFunc)
 
BRK_API ~GLDevice () override
 
BRK_API Ref< RHIVertexDeclarationCreateVertexDeclaration (const RHIVertexDeclarationDesc &desc) override
 
BRK_API Ref< RHIVertexBufferCreateVertexBuffer (const RHIBufferDesc &desc) override
 
BRK_API Ref< RHIIndexBufferCreateIndexBuffer (const RHIBufferDesc &desc) override
 
BRK_API Ref< RHIUniformBufferCreateUniformBuffer (const RHIBufferDesc &desc) override
 
BRK_API Ref< RHISamplerCreateSampler (const RHISamplerDesc &desc) override
 
BRK_API Ref< RHITextureCreateTexture (const RHITextureDesc &desc) override
 
BRK_API Ref< RHIResourceSetCreateResourceSet (const RHIResourceSetDesc &desc) override
 
BRK_API Ref< RHIFramebufferCreateFramebuffer (const RHIFramebufferDesc &desc) override
 
BRK_API Ref< RHIShaderCreateShader (const RHIShaderDesc &desc) override
 
BRK_API Ref< RHIRenderPassCreateRenderPass (const RHIRenderPassDesc &desc) override
 
BRK_API Ref< RHIGraphicsPipelineCreateGraphicsPipeline (const RHIGraphicsPipelineDesc &desc) override
 
BRK_API Ref< RHICommandListGetCoreCommandList () override
 
BRK_API void UpdateResourceSet_RT (const Ref< RHIResourceSet > &set, const RHIResourceSetDesc &desc) override
 
BRK_API MakeContextCurrentFuncGetContextFunc ()
 
BRK_API SwapBuffersFuncGetSwapFunc ()
 
- Public Member Functions inherited from RHIDevice
virtual BRK_API ~RHIDevice ()=default
 
virtual BRK_API void UpdateVertexBuffer (const Ref< RHIVertexBuffer > &buffer, uint32 byteOffset, uint32 byteSize, const Ref< Data > &data)
 
virtual BRK_API void UpdateIndexBuffer (const Ref< RHIIndexBuffer > &buffer, uint32 byteOffset, uint32 byteSize, const Ref< Data > &data)
 
virtual BRK_API void UpdateUniformBuffer (const Ref< RHIUniformBuffer > &buffer, uint32 byteOffset, uint32 byteSize, const Ref< Data > &data)
 
virtual BRK_API void UpdateTexture2D (const Ref< RHITexture > &texture, uint32 mipLevel, const Rect2u &region, const Ref< Data > &data)
 
virtual BRK_API void UpdateTexture2DArray (const Ref< RHITexture > &texture, uint32 arrayIndex, uint32 mipLevel, const Rect2u &region, const Ref< Data > &data)
 
virtual BRK_API void UpdateTextureCube (const Ref< RHITexture > &texture, RHITextureCubemapFace face, uint32 mipLevel, const Rect2u &region, const Ref< Data > &data)
 
virtual BRK_API void UpdateResourceSet (const Ref< RHIResourceSet > &set, const RHIResourceSetDesc &desc)
 
virtual BRK_API void GenerateMipMaps (const Ref< RHITexture > &texture)
 
virtual BRK_API const std::vector< RHITextureFormat > & GetSupportedFormats () const
 
virtual BRK_API const std::vector< RHIShaderLanguage > & GetSupportedShaderLanguages () const
 
virtual BRK_API RHIType GetDriverType () const
 
virtual BRK_API const RHIDeviceCapsGetCaps () const
 
virtual BRK_API const Mat4x4fGetClipMatrix () const
 
BRK_API bool IsSupported (RHIShaderLanguage language) const
 

Static Public Member Functions

static BRK_API std::shared_ptr< GLDeviceMake (MakeContextCurrentFunc makeCurrentFunc, SwapBuffersFunc swapBuffersFunc)
 CreateFromImage GL RHI device. More...
 

Additional Inherited Members

- Protected Attributes inherited from RHIDevice
std::vector< RHITextureFormatmSupportedTextureFormats
 
std::vector< RHIShaderLanguagemSupportedShaderLanguages
 
RHIDeviceCaps mCaps
 
Mat4x4f mClipMatrix
 
RHIType mType
 

Detailed Description

GL device implementation.

Member Typedef Documentation

◆ MakeContextCurrentFunc

using GLDevice::MakeContextCurrentFunc = std::function<void(const Ref<Window> &)>

◆ SwapBuffersFunc

using GLDevice::SwapBuffersFunc = std::function<void(const Ref<Window> &)>

Constructor & Destructor Documentation

◆ GLDevice()

GLDevice::GLDevice ( MakeContextCurrentFunc  makeCurrentFunc,
SwapBuffersFunc  swapBuffersFunc 
)
explicit

◆ ~GLDevice()

GLDevice::~GLDevice ( )
override

Member Function Documentation

◆ CreateFramebuffer()

Ref< RHIFramebuffer > GLDevice::CreateFramebuffer ( const RHIFramebufferDesc desc)
overridevirtual
Returns
CreateFromImage framebuffer from desc

Implements RHIDevice.

◆ CreateGraphicsPipeline()

Ref< RHIGraphicsPipeline > GLDevice::CreateGraphicsPipeline ( const RHIGraphicsPipelineDesc desc)
overridevirtual
Returns
CreateFromImage and compile pipeline from desc

Implements RHIDevice.

◆ CreateIndexBuffer()

Ref< RHIIndexBuffer > GLDevice::CreateIndexBuffer ( const RHIBufferDesc desc)
overridevirtual
Returns
CreateFromImage vertex buffer from desc

Implements RHIDevice.

◆ CreateRenderPass()

Ref< RHIRenderPass > GLDevice::CreateRenderPass ( const RHIRenderPassDesc desc)
overridevirtual
Returns
CreateFromImage render pass from desc

Implements RHIDevice.

◆ CreateResourceSet()

Ref< RHIResourceSet > GLDevice::CreateResourceSet ( const RHIResourceSetDesc desc)
overridevirtual
Returns
CreateFromImage resource set from desc

Implements RHIDevice.

◆ CreateSampler()

Ref< RHISampler > GLDevice::CreateSampler ( const RHISamplerDesc desc)
overridevirtual
Returns
CreateFromImage sampler object from desc

Implements RHIDevice.

◆ CreateShader()

Ref< RHIShader > GLDevice::CreateShader ( const RHIShaderDesc desc)
overridevirtual
Returns
CreateFromImage and compile shader from desc

Implements RHIDevice.

◆ CreateTexture()

Ref< RHITexture > GLDevice::CreateTexture ( const RHITextureDesc desc)
overridevirtual
Returns
CreateFromImage texture from desc

Implements RHIDevice.

◆ CreateUniformBuffer()

Ref< RHIUniformBuffer > GLDevice::CreateUniformBuffer ( const RHIBufferDesc desc)
overridevirtual
Returns
CreateFromImage vertex buffer from desc

Implements RHIDevice.

◆ CreateVertexBuffer()

Ref< RHIVertexBuffer > GLDevice::CreateVertexBuffer ( const RHIBufferDesc desc)
overridevirtual
Returns
CreateFromImage vertex buffer from desc

Implements RHIDevice.

◆ CreateVertexDeclaration()

Ref< RHIVertexDeclaration > GLDevice::CreateVertexDeclaration ( const RHIVertexDeclarationDesc desc)
overridevirtual
Returns
CreateFromImage vertex declaration from desc

Implements RHIDevice.

◆ GetContextFunc()

GLDevice::MakeContextCurrentFunc & GLDevice::GetContextFunc ( )

◆ GetCoreCommandList()

Ref< RHICommandList > GLDevice::GetCoreCommandList ( )
overridevirtual
Returns
Core command list for commands capturing

Implements RHIDevice.

◆ GetSwapFunc()

GLDevice::SwapBuffersFunc & GLDevice::GetSwapFunc ( )

◆ Make()

std::shared_ptr< GLDevice > GLDevice::Make ( MakeContextCurrentFunc  makeCurrentFunc,
SwapBuffersFunc  swapBuffersFunc 
)
static

CreateFromImage GL RHI device.

Attempts to load and initialize GL functions and create GL RHI device.

Parameters
makeCurrentFuncFunction to bind context of the window
swapBuffersFuncFunction to swap buffers to present window image
Returns
Created device; null if failed

◆ UpdateResourceSet_RT()

void GLDevice::UpdateResourceSet_RT ( const Ref< RHIResourceSet > &  set,
const RHIResourceSetDesc desc 
)
overridevirtual

Update resource set

Implements RHIDevice.


The documentation for this class was generated from the following files: