Saga3D API Documentation  1.0-RC4
saga::video::IVideoDriver Class Referenceabstract

#include <IVideoDriver.h>

Public Member Functions

virtual const std::string & getVendorName () const =0
 
virtual void begin ()=0
 
virtual void beginPass (RenderPassHandle pass)=0
 
virtual void draw ()=0
 
virtual void submit ()=0
 
virtual void present (TextureHandle texture=NULL_GPU_RESOURCE_HANDLE)=0
 
virtual void endPass ()=0
 
virtual void end ()=0
 
virtual void setPersistence (const SGPUResource::HandleType resource, const bool persistence=true)=0
 
virtual void resetPersistence ()=0
 
virtual void clear ()=0
 
virtual void enqueuePass (const RenderPassHandle pass)=0
 
virtual void render ()=0
 
virtual SRenderPass createRenderPass () const =0
 
virtual SGPUResource::HandleType createResource (SRenderPass &&pass)=0
 
virtual SRenderPassgetRenderPass (const RenderPassHandle pass)=0
 
virtual void destroyRenderPass (const RenderPassHandle pass)=0
 
virtual SPipeline createPipeline () const =0
 
virtual SGPUResource::HandleType createResource (SPipeline &&pipeline)=0
 
virtual SPipelinegetPipeline (const PipelineHandle p)=0
 
virtual void destroyPipeline (const PipelineHandle p)=0
 
virtual void bindComputePipeline (const PipelineHandle &compute)=0
 
virtual void dispatchComputePipeline (std::uint32_t x, std::uint32_t y, uint32_t z)=0
 
virtual STexture createTexture ()=0
 
virtual void loadTexture (STexture &texture, const int face, const int level, const std::string &path) const =0
 
virtual void loadTexture (STexture &texture, const int face, const int level, const unsigned char *data, const size_t size) const =0
 
virtual TextureHandle createTexture (STexture &&texture)=0
 
virtual TextureHandle createTexture (const std::string &path, const E_PIXEL_FORMAT format=E_PIXEL_FORMAT::RGBA8)=0
 
virtual TextureHandle createTexture (unsigned char *fileData, const std::size_t size, const E_PIXEL_FORMAT format=E_PIXEL_FORMAT::RGBA8)=0
 
virtual TextureHandle createTexture (unsigned char *pixelData, const int width, const int height, const E_PIXEL_FORMAT format=E_PIXEL_FORMAT::RGBA8)=0
 
virtual void bindTexture (TextureHandle texture, const int binding)=0
 
virtual STexturegetTexture (const TextureHandle texture)=0
 
virtual STexturegetTextureByID (const ID id)=0
 
virtual void destroyTexture (const TextureHandle texture)=0
 
virtual SShader createShader () const =0
 
virtual ShaderHandle createResource (SShader &&shader)=0
 
virtual SShadergetShader (const ShaderHandle shader)=0
 
virtual void destroyShader (const ShaderHandle shader)=0
 
virtual SShaderUniform createShaderUniform () const =0
 
virtual ShaderUniformHandle createResource (SShaderUniform &&shader)=0
 
virtual SShaderUniformgetShaderUniform (const ShaderUniformHandle uniform)=0
 
virtual void destroyShaderUniform (const ShaderUniformHandle uniform)=0
 
virtual void updateShaderUniform (const ShaderUniformHandle uniform, const void *data)=0
 
virtual void bindShaderUniform (const ShaderUniformHandle uniform, const int binding)=0
 
virtual SPushConstant createPushConstant () const =0
 
virtual PushConstantHandle createResource (SPushConstant &&con)=0
 
virtual SPushConstantgetPushConstant (const PushConstantHandle con)=0
 
virtual void destroyPushConstant (const PushConstantHandle con)=0
 
virtual void updatePushConstant (const PushConstantHandle con, const void *data, const size_t offset=0, const size_t size=0)=0
 
virtual SShaderBuffer createShaderBuffer () const =0
 
virtual ShaderBufferHandle createResource (SShaderBuffer &&buffer)=0
 
virtual SShaderBuffergetShaderBuffer (const ShaderBufferHandle buffer)=0
 
virtual void destroyShaderBuffer (const ShaderBufferHandle buffer)=0
 
virtual void updateShaderBuffer (const ShaderBufferHandle buffer, const void *data, const size_t offset=0, const size_t size=0)=0
 
virtual void bindShaderBuffer (const ShaderBufferHandle buffer, const int binding)=0
 
virtual void addShader (SShader &shader, E_SHADER_TYPE type, std::string &&source) const =0
 
virtual void addShaderFromFile (SShader &shader, E_SHADER_TYPE type, const std::string &path) const =0
 
virtual SIndirectBuffer createIndirectBuffer ()=0
 
virtual IndirectBufferHandle createResource (SIndirectBuffer &&buffer)=0
 
virtual SIndirectBuffergetIndirectBuffer (const IndirectBufferHandle buffer)=0
 
virtual void destroyIndirectBuffer (const IndirectBufferHandle buffer)=0
 
virtual SIndexedIndirectBuffer createIndexedIndirectBuffer ()=0
 
virtual IndexedIndirectBufferHandle createResource (SIndexedIndirectBuffer &&buffer)=0
 
virtual SIndexedIndirectBuffergetIndexedIndirectBuffer (const IndexedIndirectBufferHandle buffer)=0
 
virtual void destroyIndexedIndirectBuffer (const IndexedIndirectBufferHandle buffer)=0
 
virtual void * mapBuffer (const ShaderBufferHandle buffer, const std::size_t offset=0, const std::size_t size=0) const =0
 
virtual void unmapBuffer (const ShaderBufferHandle buffer) const =0
 
virtual bool hasPipelineBuffer (const scene::IMeshSceneNode &node, const video::PipelineHandle pipeline) const =0
 
virtual void createPipelineBuffer (const scene::IMeshSceneNode &node, const video::PipelineHandle pipeline)=0
 
virtual void destroyPipelineBuffer (const scene::ISceneNode &node, bool destroyAll=false)=0
 
virtual std::uint32_t getWidth () const =0
 Get window's width. More...
 
virtual std::uint32_t getHeight () const =0
 Get window's height. More...
 
virtual void setSceneManager (const std::shared_ptr< scene::ISceneManager > &smgr)=0
 
virtual void copyTexture (TextureHandle srcTex, TextureHandle dstTex, const glm::ivec2 &srcOffset={}, const glm::ivec2 &dstOffset={}, const glm::ivec2 &size={})=0
 Copy texture content to another texture. More...
 
virtual void copyTextureToBuffer (TextureHandle srcTex, ShaderBufferHandle dstBuffer, const glm::ivec2 &srcOffset={}, const std::uint64_t dstOffset=0, const glm::ivec2 &size={})=0
 Copy texture content a buffer. More...
 
virtual void copyFramebufferColorToBuffer (ShaderBufferHandle dstBuffer, const glm::ivec2 &srcOffset={}, const std::uint64_t dstOffset=0, const glm::ivec2 &size={})=0
 
virtual void copyFramebufferDepthToBuffer (ShaderBufferHandle dstBuffer, const glm::ivec2 &srcOffset={}, const std::uint64_t dstOffset=0, const glm::ivec2 &size={})=0
 
virtual void blitTexture (TextureHandle srcTex, TextureHandle dstTex, const glm::ivec2 &srcOffset={}, const glm::ivec2 &dstOffset={})=0
 Blit texture content to another texture. More...
 

Detailed Description

Definition at line 68 of file IVideoDriver.h.

Member Function Documentation

◆ addShader()

virtual void saga::video::IVideoDriver::addShader ( SShader shader,
E_SHADER_TYPE  type,
std::string &&  source 
) const
pure virtual

◆ addShaderFromFile()

virtual void saga::video::IVideoDriver::addShaderFromFile ( SShader shader,
E_SHADER_TYPE  type,
const std::string &  path 
) const
pure virtual

◆ begin()

virtual void saga::video::IVideoDriver::begin ( )
pure virtual

◆ beginPass()

virtual void saga::video::IVideoDriver::beginPass ( RenderPassHandle  pass)
pure virtual

◆ bindComputePipeline()

virtual void saga::video::IVideoDriver::bindComputePipeline ( const PipelineHandle compute)
pure virtual

◆ bindShaderBuffer()

virtual void saga::video::IVideoDriver::bindShaderBuffer ( const ShaderBufferHandle  buffer,
const int  binding 
)
pure virtual

◆ bindShaderUniform()

virtual void saga::video::IVideoDriver::bindShaderUniform ( const ShaderUniformHandle  uniform,
const int  binding 
)
pure virtual

◆ bindTexture()

virtual void saga::video::IVideoDriver::bindTexture ( TextureHandle  texture,
const int  binding 
)
pure virtual

◆ blitTexture()

virtual void saga::video::IVideoDriver::blitTexture ( TextureHandle  srcTex,
TextureHandle  dstTex,
const glm::ivec2 &  srcOffset = {},
const glm::ivec2 &  dstOffset = {} 
)
pure virtual

Blit texture content to another texture.

Format conversion may perform

Parameters
srcTexsource texture handle
dstTexdestination texture handle
srcOffsetrange of source texture to blit, default is (width, height) of srcTex
dstOffsetrange of destination texture to be written, default is (width, height) of dstTex

◆ clear()

virtual void saga::video::IVideoDriver::clear ( )
pure virtual

◆ copyFramebufferColorToBuffer()

virtual void saga::video::IVideoDriver::copyFramebufferColorToBuffer ( ShaderBufferHandle  dstBuffer,
const glm::ivec2 &  srcOffset = {},
const std::uint64_t  dstOffset = 0,
const glm::ivec2 &  size = {} 
)
pure virtual

◆ copyFramebufferDepthToBuffer()

virtual void saga::video::IVideoDriver::copyFramebufferDepthToBuffer ( ShaderBufferHandle  dstBuffer,
const glm::ivec2 &  srcOffset = {},
const std::uint64_t  dstOffset = 0,
const glm::ivec2 &  size = {} 
)
pure virtual

◆ copyTexture()

virtual void saga::video::IVideoDriver::copyTexture ( TextureHandle  srcTex,
TextureHandle  dstTex,
const glm::ivec2 &  srcOffset = {},
const glm::ivec2 &  dstOffset = {},
const glm::ivec2 &  size = {} 
)
pure virtual

Copy texture content to another texture.

Parameters
srcTexsource texture handle
dstTexdestination texture handle
srcOffsetrange of source texture to copy, default is (width, height) of srcTex
dstOffsetrange of destination texture to be written, default is (width, height) of dstTex

◆ copyTextureToBuffer()

virtual void saga::video::IVideoDriver::copyTextureToBuffer ( TextureHandle  srcTex,
ShaderBufferHandle  dstBuffer,
const glm::ivec2 &  srcOffset = {},
const std::uint64_t  dstOffset = 0,
const glm::ivec2 &  size = {} 
)
pure virtual

Copy texture content a buffer.

Parameters
srcTexsource texture handle
dstBufferdestination buffer handle
srcOffsetrange of source texture to copy, default is (width, height) of srcTex
dstOffsetrange of destination texture to be written, default is (width, height) of dstTex

◆ createIndexedIndirectBuffer()

virtual SIndexedIndirectBuffer saga::video::IVideoDriver::createIndexedIndirectBuffer ( )
pure virtual

◆ createIndirectBuffer()

virtual SIndirectBuffer saga::video::IVideoDriver::createIndirectBuffer ( )
pure virtual

◆ createPipeline()

virtual SPipeline saga::video::IVideoDriver::createPipeline ( ) const
pure virtual

◆ createPipelineBuffer()

virtual void saga::video::IVideoDriver::createPipelineBuffer ( const scene::IMeshSceneNode node,
const video::PipelineHandle  pipeline 
)
pure virtual

◆ createPushConstant()

virtual SPushConstant saga::video::IVideoDriver::createPushConstant ( ) const
pure virtual

◆ createRenderPass()

virtual SRenderPass saga::video::IVideoDriver::createRenderPass ( ) const
pure virtual

◆ createResource() [1/8]

virtual IndexedIndirectBufferHandle saga::video::IVideoDriver::createResource ( SIndexedIndirectBuffer &&  buffer)
pure virtual

◆ createResource() [2/8]

virtual IndirectBufferHandle saga::video::IVideoDriver::createResource ( SIndirectBuffer &&  buffer)
pure virtual

◆ createResource() [3/8]

virtual SGPUResource::HandleType saga::video::IVideoDriver::createResource ( SPipeline &&  pipeline)
pure virtual

◆ createResource() [4/8]

virtual PushConstantHandle saga::video::IVideoDriver::createResource ( SPushConstant &&  con)
pure virtual

◆ createResource() [5/8]

virtual SGPUResource::HandleType saga::video::IVideoDriver::createResource ( SRenderPass &&  pass)
pure virtual

◆ createResource() [6/8]

virtual ShaderHandle saga::video::IVideoDriver::createResource ( SShader &&  shader)
pure virtual

◆ createResource() [7/8]

virtual ShaderBufferHandle saga::video::IVideoDriver::createResource ( SShaderBuffer &&  buffer)
pure virtual

◆ createResource() [8/8]

virtual ShaderUniformHandle saga::video::IVideoDriver::createResource ( SShaderUniform &&  shader)
pure virtual

◆ createShader()

virtual SShader saga::video::IVideoDriver::createShader ( ) const
pure virtual

◆ createShaderBuffer()

virtual SShaderBuffer saga::video::IVideoDriver::createShaderBuffer ( ) const
pure virtual

◆ createShaderUniform()

virtual SShaderUniform saga::video::IVideoDriver::createShaderUniform ( ) const
pure virtual

◆ createTexture() [1/5]

virtual STexture saga::video::IVideoDriver::createTexture ( )
pure virtual

◆ createTexture() [2/5]

virtual TextureHandle saga::video::IVideoDriver::createTexture ( const std::string &  path,
const E_PIXEL_FORMAT  format = E_PIXEL_FORMAT::RGBA8 
)
pure virtual

◆ createTexture() [3/5]

virtual TextureHandle saga::video::IVideoDriver::createTexture ( STexture &&  texture)
pure virtual

◆ createTexture() [4/5]

virtual TextureHandle saga::video::IVideoDriver::createTexture ( unsigned char *  fileData,
const std::size_t  size,
const E_PIXEL_FORMAT  format = E_PIXEL_FORMAT::RGBA8 
)
pure virtual

◆ createTexture() [5/5]

virtual TextureHandle saga::video::IVideoDriver::createTexture ( unsigned char *  pixelData,
const int  width,
const int  height,
const E_PIXEL_FORMAT  format = E_PIXEL_FORMAT::RGBA8 
)
pure virtual

◆ destroyIndexedIndirectBuffer()

virtual void saga::video::IVideoDriver::destroyIndexedIndirectBuffer ( const IndexedIndirectBufferHandle  buffer)
pure virtual

◆ destroyIndirectBuffer()

virtual void saga::video::IVideoDriver::destroyIndirectBuffer ( const IndirectBufferHandle  buffer)
pure virtual

◆ destroyPipeline()

virtual void saga::video::IVideoDriver::destroyPipeline ( const PipelineHandle  p)
pure virtual

◆ destroyPipelineBuffer()

virtual void saga::video::IVideoDriver::destroyPipelineBuffer ( const scene::ISceneNode node,
bool  destroyAll = false 
)
pure virtual

◆ destroyPushConstant()

virtual void saga::video::IVideoDriver::destroyPushConstant ( const PushConstantHandle  con)
pure virtual

◆ destroyRenderPass()

virtual void saga::video::IVideoDriver::destroyRenderPass ( const RenderPassHandle  pass)
pure virtual

◆ destroyShader()

virtual void saga::video::IVideoDriver::destroyShader ( const ShaderHandle  shader)
pure virtual

◆ destroyShaderBuffer()

virtual void saga::video::IVideoDriver::destroyShaderBuffer ( const ShaderBufferHandle  buffer)
pure virtual

◆ destroyShaderUniform()

virtual void saga::video::IVideoDriver::destroyShaderUniform ( const ShaderUniformHandle  uniform)
pure virtual

◆ destroyTexture()

virtual void saga::video::IVideoDriver::destroyTexture ( const TextureHandle  texture)
pure virtual

◆ dispatchComputePipeline()

virtual void saga::video::IVideoDriver::dispatchComputePipeline ( std::uint32_t  x,
std::uint32_t  y,
uint32_t  z 
)
pure virtual

◆ draw()

virtual void saga::video::IVideoDriver::draw ( )
pure virtual

◆ end()

virtual void saga::video::IVideoDriver::end ( )
pure virtual

◆ endPass()

virtual void saga::video::IVideoDriver::endPass ( )
pure virtual

◆ enqueuePass()

virtual void saga::video::IVideoDriver::enqueuePass ( const RenderPassHandle  pass)
pure virtual

◆ getHeight()

virtual std::uint32_t saga::video::IVideoDriver::getHeight ( ) const
pure virtual

Get window's height.

◆ getIndexedIndirectBuffer()

virtual SIndexedIndirectBuffer& saga::video::IVideoDriver::getIndexedIndirectBuffer ( const IndexedIndirectBufferHandle  buffer)
pure virtual

◆ getIndirectBuffer()

virtual SIndirectBuffer& saga::video::IVideoDriver::getIndirectBuffer ( const IndirectBufferHandle  buffer)
pure virtual

◆ getPipeline()

virtual SPipeline& saga::video::IVideoDriver::getPipeline ( const PipelineHandle  p)
pure virtual

◆ getPushConstant()

virtual SPushConstant& saga::video::IVideoDriver::getPushConstant ( const PushConstantHandle  con)
pure virtual

◆ getRenderPass()

virtual SRenderPass& saga::video::IVideoDriver::getRenderPass ( const RenderPassHandle  pass)
pure virtual

◆ getShader()

virtual SShader& saga::video::IVideoDriver::getShader ( const ShaderHandle  shader)
pure virtual

◆ getShaderBuffer()

virtual SShaderBuffer& saga::video::IVideoDriver::getShaderBuffer ( const ShaderBufferHandle  buffer)
pure virtual

◆ getShaderUniform()

virtual SShaderUniform& saga::video::IVideoDriver::getShaderUniform ( const ShaderUniformHandle  uniform)
pure virtual

◆ getTexture()

virtual STexture& saga::video::IVideoDriver::getTexture ( const TextureHandle  texture)
pure virtual

◆ getTextureByID()

virtual STexture& saga::video::IVideoDriver::getTextureByID ( const ID  id)
pure virtual

◆ getVendorName()

virtual const std::string& saga::video::IVideoDriver::getVendorName ( ) const
pure virtual

◆ getWidth()

virtual std::uint32_t saga::video::IVideoDriver::getWidth ( ) const
pure virtual

Get window's width.

◆ hasPipelineBuffer()

virtual bool saga::video::IVideoDriver::hasPipelineBuffer ( const scene::IMeshSceneNode node,
const video::PipelineHandle  pipeline 
) const
pure virtual

◆ loadTexture() [1/2]

virtual void saga::video::IVideoDriver::loadTexture ( STexture texture,
const int  face,
const int  level,
const std::string &  path 
) const
pure virtual

◆ loadTexture() [2/2]

virtual void saga::video::IVideoDriver::loadTexture ( STexture texture,
const int  face,
const int  level,
const unsigned char *  data,
const size_t  size 
) const
pure virtual

◆ mapBuffer()

virtual void* saga::video::IVideoDriver::mapBuffer ( const ShaderBufferHandle  buffer,
const std::size_t  offset = 0,
const std::size_t  size = 0 
) const
pure virtual

◆ present()

virtual void saga::video::IVideoDriver::present ( TextureHandle  texture = NULL_GPU_RESOURCE_HANDLE)
pure virtual

◆ render()

virtual void saga::video::IVideoDriver::render ( )
pure virtual

◆ resetPersistence()

virtual void saga::video::IVideoDriver::resetPersistence ( )
pure virtual

◆ setPersistence()

virtual void saga::video::IVideoDriver::setPersistence ( const SGPUResource::HandleType  resource,
const bool  persistence = true 
)
pure virtual

◆ setSceneManager()

virtual void saga::video::IVideoDriver::setSceneManager ( const std::shared_ptr< scene::ISceneManager > &  smgr)
pure virtual

◆ submit()

virtual void saga::video::IVideoDriver::submit ( )
pure virtual

◆ unmapBuffer()

virtual void saga::video::IVideoDriver::unmapBuffer ( const ShaderBufferHandle  buffer) const
pure virtual

◆ updatePushConstant()

virtual void saga::video::IVideoDriver::updatePushConstant ( const PushConstantHandle  con,
const void *  data,
const size_t  offset = 0,
const size_t  size = 0 
)
pure virtual

◆ updateShaderBuffer()

virtual void saga::video::IVideoDriver::updateShaderBuffer ( const ShaderBufferHandle  buffer,
const void *  data,
const size_t  offset = 0,
const size_t  size = 0 
)
pure virtual

◆ updateShaderUniform()

virtual void saga::video::IVideoDriver::updateShaderUniform ( const ShaderUniformHandle  uniform,
const void *  data 
)
pure virtual

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