Pioneer
RendererDummy.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #pragma once
5 
6 #ifndef _RENDERER_DUMMY_H
7 #define _RENDERER_DUMMY_H
8 
9 #include "graphics/Renderer.h"
15 
16 namespace Graphics {
17 
18  class RendererDummy : public Renderer {
19  public:
20  static void RegisterRenderer();
21 
23  Renderer(0, 0, 0),
24  m_identity(matrix4x4f::Identity())
25  {}
26 
27  virtual const char *GetName() const override final { return "Dummy"; }
28  virtual RendererType GetRendererType() const override final { return RENDERER_DUMMY; }
29  virtual bool SupportsInstancing() override final { return false; }
30  virtual int GetMaximumNumberAASamples() const override final { return 0; }
31  virtual bool GetNearFarRange(float &near_, float &far_) const override final { return true; }
32 
33  virtual bool BeginFrame() override final { return true; }
34  virtual bool EndFrame() override final { return true; }
35  virtual bool SwapBuffers() override final { return true; }
36 
37  virtual bool SetRenderState(RenderState *) override final { return true; }
38  virtual bool SetRenderTarget(RenderTarget *) override final { return true; }
39 
40  virtual bool SetDepthRange(double znear, double zfar) override final { return true; }
41  virtual bool ResetDepthRange() override final { return true; }
42 
43  virtual bool ClearScreen() override final { return true; }
44  virtual bool ClearDepthBuffer() override final { return true; }
45  virtual bool SetClearColor(const Color &c) override final { return true; }
46 
47  virtual bool SetViewport(Viewport v) override final { return true; }
48  virtual Viewport GetViewport() const override final { return {}; }
49 
50  virtual bool SetTransform(const matrix4x4f &m) override final { return true; }
51  virtual matrix4x4f GetTransform() const override final { return matrix4x4f::Identity(); }
52  virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_) override final { return true; }
53  virtual bool SetOrthographicProjection(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax) override final { return true; }
54  virtual bool SetProjection(const matrix4x4f &m) override final { return true; }
55  virtual matrix4x4f GetProjection() const override final { return matrix4x4f::Identity(); }
56 
57  virtual bool SetWireFrameMode(bool enabled) override final { return true; }
58 
59  virtual bool SetLights(Uint32 numlights, const Light *l) override final { return true; }
60  virtual Uint32 GetNumLights() const override final { return 1; }
61  virtual bool SetAmbientColor(const Color &c) override final { return true; }
62 
63  virtual bool SetScissor(bool enabled, const vector2f &pos = vector2f(0.0f), const vector2f &size = vector2f(0.0f)) override final { return true; }
64 
65  virtual bool DrawTriangles(const VertexArray *vertices, RenderState *state, Material *material, PrimitiveType type = TRIANGLES) override final { return true; }
66  virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, RenderState *rs, Material *material, float size) override final { return true; }
67  virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, const vector2f *offsets, const float *sizes, RenderState *rs, Material *material) override final { return true; }
68  virtual bool DrawBuffer(VertexBuffer *, RenderState *, Material *, PrimitiveType) override final { return true; }
69  virtual bool DrawBufferIndexed(VertexBuffer *, IndexBuffer *, RenderState *, Material *, PrimitiveType) override final { return true; }
70  virtual bool DrawBufferInstanced(VertexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType type = TRIANGLES) override final { return true; }
71  virtual bool DrawBufferIndexedInstanced(VertexBuffer *, IndexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType = TRIANGLES) override final { return true; }
72 
73  virtual Material *CreateMaterial(const MaterialDescriptor &d) override final { return new Graphics::Dummy::Material(); }
74  virtual Texture *CreateTexture(const TextureDescriptor &d) override final { return new Graphics::TextureDummy(d); }
75  virtual RenderState *CreateRenderState(const RenderStateDesc &d) override final { return new Graphics::Dummy::RenderState(d); }
76  virtual RenderTarget *CreateRenderTarget(const RenderTargetDesc &d) override final { return new Graphics::Dummy::RenderTarget(d); }
77  virtual VertexBuffer *CreateVertexBuffer(const VertexBufferDesc &d) override final { return new Graphics::Dummy::VertexBuffer(d); }
78  virtual IndexBuffer *CreateIndexBuffer(Uint32 size, BufferUsage bu) override final { return new Graphics::Dummy::IndexBuffer(size, bu); }
79  virtual InstanceBuffer *CreateInstanceBuffer(Uint32 size, BufferUsage bu) override final { return new Graphics::Dummy::InstanceBuffer(size, bu); }
80 
81  virtual bool ReloadShaders() override final { return true; }
82 
83  protected:
84  virtual void PushState() override final {}
85  virtual void PopState() override final {}
86 
87  private:
88  const matrix4x4f m_identity;
89  };
90 
91 } // namespace Graphics
92 
93 #endif
Definition: VertexBufferDummy.h:38
Definition: VertexBufferDummy.h:57
Definition: MaterialDummy.h:17
Definition: RenderStateDummy.h:12
Definition: RenderTargetDummy.h:15
Definition: VertexBufferDummy.h:13
Definition: VertexBuffer.h:114
Definition: VertexBuffer.h:136
Definition: Light.h:14
Definition: Material.h:57
Definition: Material.h:81
Definition: RenderState.h:25
Definition: RenderTarget.h:38
Definition: RendererDummy.h:18
virtual int GetMaximumNumberAASamples() const override final
Definition: RendererDummy.h:30
virtual InstanceBuffer * CreateInstanceBuffer(Uint32 size, BufferUsage bu) override final
Definition: RendererDummy.h:79
virtual bool SetScissor(bool enabled, const vector2f &pos=vector2f(0.0f), const vector2f &size=vector2f(0.0f)) override final
Definition: RendererDummy.h:63
virtual bool SetWireFrameMode(bool enabled) override final
Definition: RendererDummy.h:57
virtual bool SupportsInstancing() override final
Definition: RendererDummy.h:29
virtual matrix4x4f GetProjection() const override final
Definition: RendererDummy.h:55
virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, const vector2f *offsets, const float *sizes, RenderState *rs, Material *material) override final
Definition: RendererDummy.h:67
virtual bool SetProjection(const matrix4x4f &m) override final
Definition: RendererDummy.h:54
virtual bool ResetDepthRange() override final
Definition: RendererDummy.h:41
virtual bool EndFrame() override final
Definition: RendererDummy.h:34
virtual bool SetRenderTarget(RenderTarget *) override final
Definition: RendererDummy.h:38
RendererDummy()
Definition: RendererDummy.h:22
virtual Viewport GetViewport() const override final
Definition: RendererDummy.h:48
virtual bool GetNearFarRange(float &near_, float &far_) const override final
Definition: RendererDummy.h:31
virtual bool SetClearColor(const Color &c) override final
Definition: RendererDummy.h:45
virtual const char * GetName() const override final
Definition: RendererDummy.h:27
virtual matrix4x4f GetTransform() const override final
Definition: RendererDummy.h:51
virtual IndexBuffer * CreateIndexBuffer(Uint32 size, BufferUsage bu) override final
Definition: RendererDummy.h:78
virtual bool SwapBuffers() override final
Definition: RendererDummy.h:35
virtual void PushState() override final
Definition: RendererDummy.h:84
virtual void PopState() override final
Definition: RendererDummy.h:85
virtual Material * CreateMaterial(const MaterialDescriptor &d) override final
Definition: RendererDummy.h:73
virtual bool DrawBufferInstanced(VertexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType type=TRIANGLES) override final
Definition: RendererDummy.h:70
virtual bool SetViewport(Viewport v) override final
Definition: RendererDummy.h:47
virtual bool SetRenderState(RenderState *) override final
Definition: RendererDummy.h:37
virtual bool ClearDepthBuffer() override final
Definition: RendererDummy.h:44
virtual bool BeginFrame() override final
Definition: RendererDummy.h:33
virtual RenderTarget * CreateRenderTarget(const RenderTargetDesc &d) override final
Definition: RendererDummy.h:76
virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_) override final
Definition: RendererDummy.h:52
virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, RenderState *rs, Material *material, float size) override final
Definition: RendererDummy.h:66
virtual bool SetTransform(const matrix4x4f &m) override final
Definition: RendererDummy.h:50
virtual bool DrawBufferIndexedInstanced(VertexBuffer *, IndexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType=TRIANGLES) override final
Definition: RendererDummy.h:71
virtual VertexBuffer * CreateVertexBuffer(const VertexBufferDesc &d) override final
Definition: RendererDummy.h:77
virtual bool SetOrthographicProjection(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax) override final
Definition: RendererDummy.h:53
virtual bool DrawTriangles(const VertexArray *vertices, RenderState *state, Material *material, PrimitiveType type=TRIANGLES) override final
Definition: RendererDummy.h:65
virtual RenderState * CreateRenderState(const RenderStateDesc &d) override final
Definition: RendererDummy.h:75
virtual bool SetAmbientColor(const Color &c) override final
Definition: RendererDummy.h:61
virtual RendererType GetRendererType() const override final
Definition: RendererDummy.h:28
virtual Texture * CreateTexture(const TextureDescriptor &d) override final
Definition: RendererDummy.h:74
static void RegisterRenderer()
Definition: RendererDummy.cpp:13
virtual Uint32 GetNumLights() const override final
Definition: RendererDummy.h:60
virtual bool SetDepthRange(double znear, double zfar) override final
Definition: RendererDummy.h:40
virtual bool DrawBuffer(VertexBuffer *, RenderState *, Material *, PrimitiveType) override final
Definition: RendererDummy.h:68
virtual bool SetLights(Uint32 numlights, const Light *l) override final
Definition: RendererDummy.h:59
virtual bool ReloadShaders() override final
Definition: RendererDummy.h:81
virtual bool DrawBufferIndexed(VertexBuffer *, IndexBuffer *, RenderState *, Material *, PrimitiveType) override final
Definition: RendererDummy.h:69
virtual bool ClearScreen() override final
Definition: RendererDummy.h:43
Definition: Renderer.h:39
Definition: Texture.h:54
Definition: TextureDummy.h:11
Definition: Texture.h:106
Definition: VertexArray.h:19
Definition: VertexBuffer.h:80
static matrix4x4 Identity()
Definition: matrix4x4.h:105
Definition: Background.h:13
RendererType
Definition: Graphics.h:17
@ RENDERER_DUMMY
Definition: Graphics.h:18
PrimitiveType
Definition: Types.h:46
@ TRIANGLES
Definition: Types.h:51
BufferUsage
Definition: Types.h:34
Definition: Color.h:66
Definition: RenderState.h:10
Definition: RenderTarget.h:20
Definition: VertexBuffer.h:41
Definition: Graphics.h:58
vector2< float > vector2f
Definition: vector2.h:126