18#ifndef INCLUDED_RENDERER_BACKEND_IDEVICE
19#define INCLUDED_RENDERER_BACKEND_IDEVICE
70 virtual const std::string&
GetName()
const = 0;
106 const char* name,
const uint32_t usage,
178 const uint32_t usage,
const bool depth,
const bool stencil)
const = 0;
Represents a mapping of name strings to value strings, for use with #if and #ifdef and similar condit...
Definition: ShaderDefines.h:147
Simplifed version of std::span (C++20) as we don't support the original one yet.
Definition: Span.h:37
Type
Definition: IBuffer.h:35
virtual Backend GetBackend() const =0
virtual const std::string & GetName() const =0
virtual const std::vector< std::string > & GetExtensions() const =0
virtual std::unique_ptr< IComputePipelineState > CreateComputePipelineState(const SComputePipelineStateDesc &pipelineStateDesc)=0
Creates a compute pipeline state.
virtual void OnWindowResize(const uint32_t width, const uint32_t height)=0
Should be called on window surface resize.
virtual Format GetPreferredDepthStencilFormat(const uint32_t usage, const bool depth, const bool stencil) const =0
Returns the most suitable format for the usage.
virtual std::unique_ptr< IDeviceCommandContext > CreateCommandContext()=0
virtual const Capabilities & GetCapabilities() const =0
virtual ~IDevice()
Definition: IDevice.h:66
virtual bool AcquireNextBackbuffer()=0
Acquires a backbuffer for rendering a frame.
virtual bool IsFramebufferFormatSupported(const Format format) const =0
virtual const std::string & GetVersion() const =0
virtual std::unique_ptr< IFramebuffer > CreateFramebuffer(const char *name, SColorAttachment *colorAttachment, SDepthStencilAttachment *depthStencilAttachment)=0
virtual const std::string & GetDriverInformation() const =0
virtual bool IsTextureFormatSupported(const Format format) const =0
virtual std::unique_ptr< ITexture > CreateTexture2D(const char *name, const uint32_t usage, const Format format, const uint32_t width, const uint32_t height, const Sampler::Desc &defaultSamplerDesc, const uint32_t MIPLevelCount=1, const uint32_t sampleCount=1)=0
virtual std::unique_ptr< ITexture > CreateTexture(const char *name, const ITexture::Type type, const uint32_t usage, const Format format, const uint32_t width, const uint32_t height, const Sampler::Desc &defaultSamplerDesc, const uint32_t MIPLevelCount, const uint32_t sampleCount)=0
virtual std::unique_ptr< IGraphicsPipelineState > CreateGraphicsPipelineState(const SGraphicsPipelineStateDesc &pipelineStateDesc)=0
Creates a graphics pipeline state.
virtual std::unique_ptr< IVertexInputLayout > CreateVertexInputLayout(const PS::span< const SVertexAttributeFormat > attributes)=0
Creates a vertex input layout.
virtual void Report(const ScriptRequest &rq, JS::HandleValue settings)=0
virtual IFramebuffer * GetCurrentBackbuffer(const AttachmentLoadOp colorAttachmentLoadOp, const AttachmentStoreOp colorAttachmentStoreOp, const AttachmentLoadOp depthStencilAttachmentLoadOp, const AttachmentStoreOp depthStencilAttachmentStoreOp)=0
Returns a framebuffer for the current backbuffer with the required attachment operations.
virtual std::unique_ptr< IShaderProgram > CreateShaderProgram(const CStr &name, const CShaderDefines &defines)=0
virtual std::unique_ptr< IBuffer > CreateBuffer(const char *name, const IBuffer::Type type, const uint32_t size, const uint32_t usage)=0
virtual void Present()=0
Presents the backbuffer to the swapchain queue to be flipped on a screen.
IFramebuffer stores attachments which should be used by backend as rendering destinations.
Definition: IFramebuffer.h:85
Type
Definition: ITexture.h:37
Spidermonkey maintains some 'local' state via the JSContext* object.
Definition: ScriptRequest.h:60
Format
Definition: Format.h:28
AttachmentStoreOp
Store operation is set for each attachment, what should be done with its content on EndFramebufferPas...
Definition: IFramebuffer.h:52
Backend
Definition: Backend.h:28
AttachmentLoadOp
Load operation is set for each attachment, what should be done with its content on BeginFramebufferPa...
Definition: IFramebuffer.h:37
Definition: VideoMode.h:29
bool ARBShaders
Definition: IDevice.h:53
bool anisotropicFiltering
Definition: IDevice.h:59
bool ARBShadersShadow
Definition: IDevice.h:54
float maxAnisotropy
Definition: IDevice.h:61
bool multisampling
Definition: IDevice.h:58
uint32_t maxSampleCount
Definition: IDevice.h:60
bool instancing
Definition: IDevice.h:63
bool S3TC
Definition: IDevice.h:52
bool computeShaders
Definition: IDevice.h:55
bool debugLabels
Definition: IDevice.h:56
bool debugScopedLabels
Definition: IDevice.h:57
uint32_t maxTextureSize
Definition: IDevice.h:62
Definition: IFramebuffer.h:60
Definition: PipelineState.h:175
Definition: IFramebuffer.h:68
Definition: PipelineState.h:165
unsigned int uint32_t
Definition: wposix_types.h:53