Pioneer
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Graphics::Renderer Class Referenceabstract

#include <Renderer.h>

Inheritance diagram for Graphics::Renderer:
Inheritance graph
[legend]
Collaboration diagram for Graphics::Renderer:
Collaboration graph
[legend]

Classes

class  MatrixTicket
 
class  StateTicket
 

Public Types

using TextureCache = TextureCacheMap
 

Public Member Functions

 Renderer (SDL_Window *win, int width, int height)
 
virtual ~Renderer ()
 
virtual const char * GetName () const =0
 
virtual RendererType GetRendererType () const =0
 
virtual void WriteRendererInfo (std::ostream &out) const
 
virtual void CheckRenderErrors (const char *func=nullptr, const int line=-1) const
 
virtual bool SupportsInstancing ()=0
 
SDL_Window * GetSDLWindow () const
 
float GetDisplayAspect () const
 
int GetWindowWidth () const
 
int GetWindowHeight () const
 
virtual int GetMaximumNumberAASamples () const =0
 
virtual bool GetNearFarRange (float &near_, float &far_) const =0
 
virtual bool BeginFrame ()=0
 
virtual bool EndFrame ()=0
 
virtual bool SwapBuffers ()=0
 
virtual bool SetRenderTarget (RenderTarget *)=0
 
virtual bool SetScissor (ViewportExtents scissor)=0
 
virtual bool ClearScreen ()=0
 
virtual bool ClearDepthBuffer ()=0
 
virtual bool SetClearColor (const Color &c)=0
 
virtual bool SetViewport (ViewportExtents vp)=0
 
virtual ViewportExtents GetViewport () const =0
 
virtual bool SetTransform (const matrix4x4f &m)=0
 
virtual matrix4x4f GetTransform () const =0
 
virtual bool SetPerspectiveProjection (float fov, float aspect, float near_, float far_)=0
 
virtual bool SetOrthographicProjection (float xmin, float xmax, float ymin, float ymax, float zmin, float zmax)=0
 
virtual bool SetProjection (const matrix4x4f &m)=0
 
virtual matrix4x4f GetProjection () const =0
 
virtual bool SetWireFrameMode (bool enabled)=0
 
virtual bool SetLightIntensity (Uint32 numlights, const float *intensity)=0
 
virtual bool SetLights (Uint32 numlights, const Light *l)=0
 
const LightGetLight (const Uint32 idx) const
 
virtual Uint32 GetNumLights () const
 
virtual bool SetAmbientColor (const Color &c)=0
 
const ColorGetAmbientColor () const
 
virtual bool FlushCommandBuffers ()=0
 
virtual bool DrawBuffer (const VertexArray *v, Material *m)=0
 
virtual bool DrawBufferDynamic (VertexBuffer *v, uint32_t vtxOffset, IndexBuffer *i, uint32_t idxOffset, uint32_t numElems, Material *m)=0
 
virtual bool DrawMesh (MeshObject *, Material *)=0
 
virtual bool DrawMeshInstanced (MeshObject *, Material *, InstanceBuffer *)=0
 
virtual MaterialCreateMaterial (const std::string &shader, const MaterialDescriptor &descriptor, const RenderStateDesc &stateDescriptor)=0
 
virtual MaterialCloneMaterial (const Material *mat, const MaterialDescriptor &descriptor, const RenderStateDesc &stateDescriptor)=0
 
virtual TextureCreateTexture (const TextureDescriptor &descriptor)=0
 
virtual RenderTargetCreateRenderTarget (const RenderTargetDesc &)=0
 
virtual VertexBufferCreateVertexBuffer (const VertexBufferDesc &)=0
 
virtual IndexBufferCreateIndexBuffer (Uint32 size, BufferUsage, IndexBufferSize=INDEX_BUFFER_32BIT)=0
 
virtual InstanceBufferCreateInstanceBuffer (Uint32 size, BufferUsage)=0
 
virtual UniformBufferCreateUniformBuffer (Uint32 size, BufferUsage)=0
 
virtual MeshObjectCreateMeshObject (VertexBuffer *vertexBuffer, IndexBuffer *indexBuffer=nullptr)=0
 
virtual MeshObjectCreateMeshObjectFromArray (const VertexArray *vertexArray, IndexBuffer *indexBuffer=nullptr, BufferUsage usage=BUFFER_USAGE_STATIC)=0
 
virtual const RenderStateDescGetMaterialRenderState (const Material *mat)=0
 
TextureGetCachedTexture (const std::string &type, const std::string &name)
 
void AddCachedTexture (const std::string &type, const std::string &name, Texture *texture)
 
void RemoveCachedTexture (const std::string &type, const std::string &name)
 
void RemoveAllCachedTextures ()
 
const TextureCacheGetTextureCache ()
 
virtual bool ReloadShaders ()=0
 
virtual bool Screendump (ScreendumpState &sd)
 
virtual bool FrameGrab (ScreendumpState &sd)
 
StatsGetStats ()
 

Static Public Member Functions

static constexpr size_t GetName (std::string_view s)
 

Protected Member Functions

virtual void PushState ()=0
 
virtual void PopState ()=0
 

Protected Attributes

int m_width
 
int m_height
 
Color m_ambient
 
Light m_lights [4]
 
Stats m_stats
 
SDL_Window * m_window
 

Member Typedef Documentation

◆ TextureCache

using Graphics::Renderer::TextureCache = TextureCacheMap

Constructor & Destructor Documentation

◆ Renderer()

Graphics::Renderer::Renderer ( SDL_Window *  win,
int  width,
int  height 
)

◆ ~Renderer()

Graphics::Renderer::~Renderer ( )
virtual
Here is the call graph for this function:

Member Function Documentation

◆ AddCachedTexture()

void Graphics::Renderer::AddCachedTexture ( const std::string &  type,
const std::string &  name,
Texture texture 
)
Here is the call graph for this function:

◆ BeginFrame()

virtual bool Graphics::Renderer::BeginFrame ( )
pure virtual

◆ CheckRenderErrors()

virtual void Graphics::Renderer::CheckRenderErrors ( const char *  func = nullptr,
const int  line = -1 
) const
inlinevirtual

Reimplemented in Graphics::RendererOGL.

◆ ClearDepthBuffer()

virtual bool Graphics::Renderer::ClearDepthBuffer ( )
pure virtual

◆ ClearScreen()

virtual bool Graphics::Renderer::ClearScreen ( )
pure virtual

◆ CloneMaterial()

virtual Material * Graphics::Renderer::CloneMaterial ( const Material mat,
const MaterialDescriptor descriptor,
const RenderStateDesc stateDescriptor 
)
pure virtual

◆ CreateIndexBuffer()

virtual IndexBuffer * Graphics::Renderer::CreateIndexBuffer ( Uint32  size,
BufferUsage  ,
IndexBufferSize  = INDEX_BUFFER_32BIT 
)
pure virtual

◆ CreateInstanceBuffer()

virtual InstanceBuffer * Graphics::Renderer::CreateInstanceBuffer ( Uint32  size,
BufferUsage   
)
pure virtual

◆ CreateMaterial()

virtual Material * Graphics::Renderer::CreateMaterial ( const std::string &  shader,
const MaterialDescriptor descriptor,
const RenderStateDesc stateDescriptor 
)
pure virtual

◆ CreateMeshObject()

virtual MeshObject * Graphics::Renderer::CreateMeshObject ( VertexBuffer vertexBuffer,
IndexBuffer indexBuffer = nullptr 
)
pure virtual

◆ CreateMeshObjectFromArray()

virtual MeshObject * Graphics::Renderer::CreateMeshObjectFromArray ( const VertexArray vertexArray,
IndexBuffer indexBuffer = nullptr,
BufferUsage  usage = BUFFER_USAGE_STATIC 
)
pure virtual

◆ CreateRenderTarget()

virtual RenderTarget * Graphics::Renderer::CreateRenderTarget ( const RenderTargetDesc )
pure virtual

◆ CreateTexture()

virtual Texture * Graphics::Renderer::CreateTexture ( const TextureDescriptor descriptor)
pure virtual

◆ CreateUniformBuffer()

virtual UniformBuffer * Graphics::Renderer::CreateUniformBuffer ( Uint32  size,
BufferUsage   
)
pure virtual

◆ CreateVertexBuffer()

virtual VertexBuffer * Graphics::Renderer::CreateVertexBuffer ( const VertexBufferDesc )
pure virtual

◆ DrawBuffer()

virtual bool Graphics::Renderer::DrawBuffer ( const VertexArray v,
Material m 
)
pure virtual

◆ DrawBufferDynamic()

virtual bool Graphics::Renderer::DrawBufferDynamic ( VertexBuffer v,
uint32_t  vtxOffset,
IndexBuffer i,
uint32_t  idxOffset,
uint32_t  numElems,
Material m 
)
pure virtual

◆ DrawMesh()

virtual bool Graphics::Renderer::DrawMesh ( MeshObject ,
Material  
)
pure virtual

◆ DrawMeshInstanced()

virtual bool Graphics::Renderer::DrawMeshInstanced ( MeshObject ,
Material ,
InstanceBuffer  
)
pure virtual

◆ EndFrame()

virtual bool Graphics::Renderer::EndFrame ( )
pure virtual

◆ FlushCommandBuffers()

virtual bool Graphics::Renderer::FlushCommandBuffers ( )
pure virtual

◆ FrameGrab()

virtual bool Graphics::Renderer::FrameGrab ( ScreendumpState sd)
inlinevirtual

Reimplemented in Graphics::RendererOGL.

◆ GetAmbientColor()

const Color & Graphics::Renderer::GetAmbientColor ( ) const
inline

◆ GetCachedTexture()

Texture * Graphics::Renderer::GetCachedTexture ( const std::string &  type,
const std::string &  name 
)

◆ GetDisplayAspect()

float Graphics::Renderer::GetDisplayAspect ( ) const
inline

◆ GetLight()

const Light & Graphics::Renderer::GetLight ( const Uint32  idx) const
inline

◆ GetMaterialRenderState()

virtual const RenderStateDesc & Graphics::Renderer::GetMaterialRenderState ( const Material mat)
pure virtual

◆ GetMaximumNumberAASamples()

virtual int Graphics::Renderer::GetMaximumNumberAASamples ( ) const
pure virtual

◆ GetName() [1/2]

virtual const char * Graphics::Renderer::GetName ( ) const
pure virtual

◆ GetName() [2/2]

static constexpr size_t Graphics::Renderer::GetName ( std::string_view  s)
inlinestaticconstexpr
Here is the call graph for this function:

◆ GetNearFarRange()

virtual bool Graphics::Renderer::GetNearFarRange ( float &  near_,
float &  far_ 
) const
pure virtual

◆ GetNumLights()

virtual Uint32 Graphics::Renderer::GetNumLights ( ) const
inlinevirtual

◆ GetProjection()

virtual matrix4x4f Graphics::Renderer::GetProjection ( ) const
pure virtual

◆ GetRendererType()

virtual RendererType Graphics::Renderer::GetRendererType ( ) const
pure virtual

◆ GetSDLWindow()

SDL_Window * Graphics::Renderer::GetSDLWindow ( ) const
inline

◆ GetStats()

Stats & Graphics::Renderer::GetStats ( )
inline

◆ GetTextureCache()

const TextureCache & Graphics::Renderer::GetTextureCache ( )
inline

◆ GetTransform()

virtual matrix4x4f Graphics::Renderer::GetTransform ( ) const
pure virtual

◆ GetViewport()

virtual ViewportExtents Graphics::Renderer::GetViewport ( ) const
pure virtual

◆ GetWindowHeight()

int Graphics::Renderer::GetWindowHeight ( ) const
inline

◆ GetWindowWidth()

int Graphics::Renderer::GetWindowWidth ( ) const
inline

◆ PopState()

virtual void Graphics::Renderer::PopState ( )
protectedpure virtual

◆ PushState()

virtual void Graphics::Renderer::PushState ( )
protectedpure virtual

◆ ReloadShaders()

virtual bool Graphics::Renderer::ReloadShaders ( )
pure virtual

◆ RemoveAllCachedTextures()

void Graphics::Renderer::RemoveAllCachedTextures ( )

◆ RemoveCachedTexture()

void Graphics::Renderer::RemoveCachedTexture ( const std::string &  type,
const std::string &  name 
)

◆ Screendump()

virtual bool Graphics::Renderer::Screendump ( ScreendumpState sd)
inlinevirtual

Reimplemented in Graphics::RendererOGL.

◆ SetAmbientColor()

virtual bool Graphics::Renderer::SetAmbientColor ( const Color c)
pure virtual

◆ SetClearColor()

virtual bool Graphics::Renderer::SetClearColor ( const Color c)
pure virtual

◆ SetLightIntensity()

virtual bool Graphics::Renderer::SetLightIntensity ( Uint32  numlights,
const float *  intensity 
)
pure virtual

◆ SetLights()

virtual bool Graphics::Renderer::SetLights ( Uint32  numlights,
const Light l 
)
pure virtual

◆ SetOrthographicProjection()

virtual bool Graphics::Renderer::SetOrthographicProjection ( float  xmin,
float  xmax,
float  ymin,
float  ymax,
float  zmin,
float  zmax 
)
pure virtual

◆ SetPerspectiveProjection()

virtual bool Graphics::Renderer::SetPerspectiveProjection ( float  fov,
float  aspect,
float  near_,
float  far_ 
)
pure virtual

◆ SetProjection()

virtual bool Graphics::Renderer::SetProjection ( const matrix4x4f m)
pure virtual

◆ SetRenderTarget()

virtual bool Graphics::Renderer::SetRenderTarget ( RenderTarget )
pure virtual

◆ SetScissor()

virtual bool Graphics::Renderer::SetScissor ( ViewportExtents  scissor)
pure virtual

◆ SetTransform()

virtual bool Graphics::Renderer::SetTransform ( const matrix4x4f m)
pure virtual

◆ SetViewport()

virtual bool Graphics::Renderer::SetViewport ( ViewportExtents  vp)
pure virtual

◆ SetWireFrameMode()

virtual bool Graphics::Renderer::SetWireFrameMode ( bool  enabled)
pure virtual

◆ SupportsInstancing()

virtual bool Graphics::Renderer::SupportsInstancing ( )
pure virtual

◆ SwapBuffers()

virtual bool Graphics::Renderer::SwapBuffers ( )
pure virtual

◆ WriteRendererInfo()

virtual void Graphics::Renderer::WriteRendererInfo ( std::ostream &  out) const
inlinevirtual

Reimplemented in Graphics::RendererOGL.

Member Data Documentation

◆ m_ambient

Color Graphics::Renderer::m_ambient
protected

◆ m_height

int Graphics::Renderer::m_height
protected

◆ m_lights

Light Graphics::Renderer::m_lights[4]
protected

◆ m_stats

Stats Graphics::Renderer::m_stats
protected

◆ m_width

int Graphics::Renderer::m_width
protected

◆ m_window

SDL_Window* Graphics::Renderer::m_window
protected

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