24 class MaterialDescriptor;
28 class TextureDescriptor;
33 struct VertexBufferDesc;
34 struct RenderStateDesc;
35 struct RenderTargetDesc;
41 typedef std::pair<std::string, std::string> TextureCacheKey;
42 typedef std::map<TextureCacheKey, RefCountedPtr<Texture> *> TextureCacheMap;
47 Renderer(SDL_Window *win,
int width,
int height);
225 TextureCacheMap m_textureCache;
Definition: VertexBuffer.h:114
Definition: VertexBuffer.h:136
Definition: Material.h:57
Definition: Material.h:81
Definition: RenderState.h:25
Definition: RenderTarget.h:38
Definition: Renderer.h:182
virtual ~MatrixTicket()
Definition: Renderer.h:195
MatrixTicket(const MatrixTicket &)=delete
MatrixTicket & operator=(const MatrixTicket &)=delete
MatrixTicket(Renderer *r)
Definition: Renderer.h:184
MatrixTicket(Renderer *r, const matrix4x4f &newMat)
Definition: Renderer.h:188
Definition: Renderer.h:151
StateTicket & operator=(const StateTicket &)=delete
StateTicket(Renderer *r)
Definition: Renderer.h:153
StateTicket(const StateTicket &)=delete
virtual ~StateTicket()
Definition: Renderer.h:162
Definition: Renderer.h:39
Renderer(SDL_Window *win, int width, int height)
Definition: Renderer.cpp:9
virtual int GetMaximumNumberAASamples() const =0
virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, const vector2f *offsets, const float *sizes, RenderState *rs, Material *material)=0
virtual bool DrawBufferIndexedInstanced(VertexBuffer *, IndexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType=TRIANGLES)=0
virtual bool SetClearColor(const Color &c)=0
virtual bool SetProjection(const matrix4x4f &m)=0
Light m_lights[4]
Definition: Renderer.h:217
virtual bool SetOrthographicProjection(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax)=0
virtual bool ReloadShaders()=0
virtual bool SetWireFrameMode(bool enabled)=0
virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_)=0
virtual const char * GetName() const =0
virtual void PushState()=0
virtual bool SupportsInstancing()=0
virtual bool DrawBuffer(VertexBuffer *, RenderState *, Material *, PrimitiveType type=TRIANGLES)=0
virtual bool FrameGrab(ScreendumpState &sd)
Definition: Renderer.h:209
virtual bool SetLights(Uint32 numlights, const Light *l)=0
const Light & GetLight(const Uint32 idx) const
Definition: Renderer.h:104
float GetDisplayAspect() const
Definition: Renderer.h:60
virtual InstanceBuffer * CreateInstanceBuffer(Uint32 size, BufferUsage)=0
Stats m_stats
Definition: Renderer.h:218
virtual bool SetRenderState(RenderState *)=0
virtual bool DrawTriangles(const VertexArray *vertices, RenderState *state, Material *material, PrimitiveType type=TRIANGLES)=0
virtual RenderTarget * CreateRenderTarget(const RenderTargetDesc &)=0
const Color & GetAmbientColor() const
Definition: Renderer.h:111
virtual bool SetViewport(Viewport vp)=0
virtual bool DrawBufferInstanced(VertexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType type=TRIANGLES)=0
virtual bool SetDepthRange(double znear, double zfar)=0
virtual Material * CreateMaterial(const MaterialDescriptor &descriptor)=0
SDL_Window * GetSDLWindow() const
Definition: Renderer.h:59
Texture * GetCachedTexture(const std::string &type, const std::string &name)
Definition: Renderer.cpp:23
virtual bool SwapBuffers()=0
virtual IndexBuffer * CreateIndexBuffer(Uint32 size, BufferUsage)=0
int GetWindowHeight() const
Definition: Renderer.h:62
void AddCachedTexture(const std::string &type, const std::string &name, Texture *texture)
Definition: Renderer.cpp:30
virtual bool Screendump(ScreendumpState &sd)
Definition: Renderer.h:208
virtual bool SetTransform(const matrix4x4f &m)=0
int m_width
Definition: Renderer.h:214
void RemoveCachedTexture(const std::string &type, const std::string &name)
Definition: Renderer.cpp:36
void RemoveAllCachedTextures()
Definition: Renderer.cpp:44
virtual void PopState()=0
Color m_ambient
Definition: Renderer.h:216
virtual Texture * CreateTexture(const TextureDescriptor &descriptor)=0
virtual bool ResetDepthRange()=0
SDL_Window * m_window
Definition: Renderer.h:219
virtual bool BeginFrame()=0
virtual Uint32 GetNumLights() const
Definition: Renderer.h:109
TextureCacheMap TextureCache
Definition: Renderer.h:45
virtual void CheckRenderErrors(const char *func=nullptr, const int line=-1) const
Definition: Renderer.h:55
virtual void WriteRendererInfo(std::ostream &out) const
Definition: Renderer.h:53
virtual bool ClearDepthBuffer()=0
virtual RenderState * CreateRenderState(const RenderStateDesc &)=0
virtual bool SetScissor(bool enabled, const vector2f &pos=vector2f(0.0f), const vector2f &size=vector2f(0.0f))=0
virtual VertexBuffer * CreateVertexBuffer(const VertexBufferDesc &)=0
const TextureCache & GetTextureCache()
Definition: Renderer.h:144
virtual matrix4x4f GetTransform() const =0
virtual matrix4x4f GetProjection() const =0
virtual RendererType GetRendererType() const =0
virtual Viewport GetViewport() const =0
virtual bool DrawBufferIndexed(VertexBuffer *, IndexBuffer *, RenderState *, Material *, PrimitiveType=TRIANGLES)=0
int GetWindowWidth() const
Definition: Renderer.h:61
virtual bool SetAmbientColor(const Color &c)=0
virtual bool ClearScreen()=0
virtual ~Renderer()
Definition: Renderer.cpp:17
virtual bool EndFrame()=0
Stats & GetStats()
Definition: Renderer.h:211
virtual bool SetRenderTarget(RenderTarget *)=0
virtual bool GetNearFarRange(float &near_, float &far_) const =0
virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, RenderState *rs, Material *material, float size)=0
int m_height
Definition: Renderer.h:215
Definition: Texture.h:106
Definition: VertexArray.h:19
Definition: VertexBuffer.h:80
Definition: Background.h:13
RendererType
Definition: Graphics.h:17
PrimitiveType
Definition: Types.h:46
@ TRIANGLES
Definition: Types.h:51
BufferUsage
Definition: Types.h:34
Definition: RenderState.h:10
Definition: RenderTarget.h:20
Definition: Graphics.h:95
Definition: VertexBuffer.h:41
Definition: Graphics.h:58
vector2< float > vector2f
Definition: vector2.h:126