Pioneer
Loading...
Searching...
No Matches
RendererDummy.h
Go to the documentation of this file.
1// Copyright © 2008-2023 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#include "graphics/Types.h"
7#ifndef _RENDERER_DUMMY_H
8#define _RENDERER_DUMMY_H
9
11#include "graphics/Renderer.h"
19
20namespace Graphics {
21
22 class RendererDummy : public Renderer {
23 public:
24 static void RegisterRenderer();
25
27 Renderer(0, 0, 0),
28 m_identity(matrix4x4f::Identity())
29 {}
30
31 virtual const char *GetName() const override final { return "Dummy"; }
32 virtual RendererType GetRendererType() const override final { return RENDERER_DUMMY; }
33 virtual bool SupportsInstancing() override final { return false; }
34 virtual int GetMaximumNumberAASamples() const override final { return 0; }
35 virtual bool GetNearFarRange(float &near_, float &far_) const override final { return true; }
36
37 virtual bool BeginFrame() override final { return true; }
38 virtual bool EndFrame() override final { return true; }
39 virtual bool SwapBuffers() override final { return true; }
40
41 virtual bool SetRenderTarget(RenderTarget *) override final { return true; }
42 virtual bool SetScissor(ViewportExtents ext) override final { return true; }
43
44 virtual bool ClearScreen() override final { return true; }
45 virtual bool ClearDepthBuffer() override final { return true; }
46 virtual bool SetClearColor(const Color &c) override final { return true; }
47
48 virtual bool SetViewport(ViewportExtents v) override final { return true; }
49 virtual ViewportExtents GetViewport() const override final { return {}; }
50
51 virtual bool SetTransform(const matrix4x4f &m) override final { return true; }
52 virtual matrix4x4f GetTransform() const override final { return matrix4x4f::Identity(); }
53 virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_) override final { return true; }
54 virtual bool SetOrthographicProjection(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax) override final { return true; }
55 virtual bool SetProjection(const matrix4x4f &m) override final { return true; }
56 virtual matrix4x4f GetProjection() const override final { return matrix4x4f::Identity(); }
57
58 virtual bool SetWireFrameMode(bool enabled) override final { return true; }
59
60 virtual bool SetLightIntensity(Uint32, const float *) override final { return true; }
61 virtual bool SetLights(Uint32 numlights, const Light *l) override final { return true; }
62 virtual Uint32 GetNumLights() const override final { return 1; }
63 virtual bool SetAmbientColor(const Color &c) override final { return true; }
64
65 virtual bool FlushCommandBuffers() override final { return true; }
66
67 virtual bool DrawBuffer(const VertexArray *, Material *) override final { return true; }
68 virtual bool DrawBufferDynamic(VertexBuffer *, uint32_t, IndexBuffer *, uint32_t, uint32_t, Material *) override final { return true; }
69 virtual bool DrawMesh(MeshObject *, Material *) override final { return true; }
70 virtual bool DrawMeshInstanced(MeshObject *, Material *, InstanceBuffer *) override final { return true; }
71
72 virtual Material *CreateMaterial(const std::string &s, const MaterialDescriptor &d, const RenderStateDesc &rsd) override final { return new Graphics::Dummy::Material(rsd); }
73 virtual Material *CloneMaterial(const Material *m, const MaterialDescriptor &d, const RenderStateDesc &rsd) override final { return new Graphics::Dummy::Material(rsd); }
74 virtual Texture *CreateTexture(const TextureDescriptor &d) override final { return new Graphics::TextureDummy(d); }
75 virtual RenderTarget *CreateRenderTarget(const RenderTargetDesc &d) override final { return new Graphics::Dummy::RenderTarget(d); }
76 virtual VertexBuffer *CreateVertexBuffer(const VertexBufferDesc &d) override final { return new Graphics::Dummy::VertexBuffer(d); }
77 virtual IndexBuffer *CreateIndexBuffer(Uint32 size, BufferUsage bu, IndexBufferSize el) override final { return new Graphics::Dummy::IndexBuffer(size, bu, el); }
78 virtual InstanceBuffer *CreateInstanceBuffer(Uint32 size, BufferUsage bu) override final { return new Graphics::Dummy::InstanceBuffer(size, bu); }
79 virtual UniformBuffer *CreateUniformBuffer(Uint32 size, BufferUsage bu) override final { return new Graphics::Dummy::UniformBuffer(size, bu); }
80 virtual MeshObject *CreateMeshObject(VertexBuffer *v, IndexBuffer *i) override final { return new Graphics::Dummy::MeshObject(static_cast<Dummy::VertexBuffer *>(v), static_cast<Dummy::IndexBuffer *>(i)); }
82 {
83 auto desc = Graphics::VertexBufferDesc::FromAttribSet(v->GetAttributeSet());
84 desc.numVertices = v->GetNumVerts();
85 return new Graphics::Dummy::MeshObject(static_cast<Dummy::VertexBuffer *>(CreateVertexBuffer(desc)), static_cast<Dummy::IndexBuffer *>(i));
86 }
87
88 virtual const RenderStateDesc &GetMaterialRenderState(const Graphics::Material *m) override final { return static_cast<const Dummy::Material *>(m)->rsd; }
89
90 virtual bool ReloadShaders() override final { return true; }
91
92 protected:
93 virtual void PushState() override final {}
94 virtual void PopState() override final {}
95
96 private:
97 const matrix4x4f m_identity;
98 };
99
100} // namespace Graphics
101
102#endif
Definition VertexBufferDummy.h:41
Definition VertexBufferDummy.h:67
Definition MaterialDummy.h:19
Definition VertexBufferDummy.h:87
Definition RenderTargetDummy.h:15
Definition UniformBufferDummy.h:14
Definition VertexBufferDummy.h:16
Definition VertexBuffer.h:102
Definition VertexBuffer.h:127
Definition Light.h:14
Definition Material.h:60
Definition Material.h:148
Definition VertexBuffer.h:156
Definition RenderTarget.h:38
Definition RendererDummy.h:22
virtual VertexBuffer * CreateVertexBuffer(const VertexBufferDesc &d) override final
Definition RendererDummy.h:76
virtual RenderTarget * CreateRenderTarget(const RenderTargetDesc &d) override final
Definition RendererDummy.h:75
virtual int GetMaximumNumberAASamples() const override final
Definition RendererDummy.h:34
virtual const char * GetName() const override final
Definition RendererDummy.h:31
virtual bool SetWireFrameMode(bool enabled) override final
Definition RendererDummy.h:58
virtual bool SupportsInstancing() override final
Definition RendererDummy.h:33
virtual matrix4x4f GetProjection() const override final
Definition RendererDummy.h:56
virtual bool SetProjection(const matrix4x4f &m) override final
Definition RendererDummy.h:55
virtual Material * CreateMaterial(const std::string &s, const MaterialDescriptor &d, const RenderStateDesc &rsd) override final
Definition RendererDummy.h:72
virtual bool EndFrame() override final
Definition RendererDummy.h:38
virtual bool SetRenderTarget(RenderTarget *) override final
Definition RendererDummy.h:41
virtual const RenderStateDesc & GetMaterialRenderState(const Graphics::Material *m) override final
Definition RendererDummy.h:88
RendererDummy()
Definition RendererDummy.h:26
virtual ViewportExtents GetViewport() const override final
Definition RendererDummy.h:49
virtual bool GetNearFarRange(float &near_, float &far_) const override final
Definition RendererDummy.h:35
virtual bool SetClearColor(const Color &c) override final
Definition RendererDummy.h:46
virtual bool FlushCommandBuffers() override final
Definition RendererDummy.h:65
virtual bool DrawMeshInstanced(MeshObject *, Material *, InstanceBuffer *) override final
Definition RendererDummy.h:70
virtual bool SetScissor(ViewportExtents ext) override final
Definition RendererDummy.h:42
virtual matrix4x4f GetTransform() const override final
Definition RendererDummy.h:52
virtual Material * CloneMaterial(const Material *m, const MaterialDescriptor &d, const RenderStateDesc &rsd) override final
Definition RendererDummy.h:73
virtual bool SwapBuffers() override final
Definition RendererDummy.h:39
virtual void PushState() override final
Definition RendererDummy.h:93
virtual void PopState() override final
Definition RendererDummy.h:94
virtual bool DrawBufferDynamic(VertexBuffer *, uint32_t, IndexBuffer *, uint32_t, uint32_t, Material *) override final
Definition RendererDummy.h:68
virtual bool ClearDepthBuffer() override final
Definition RendererDummy.h:45
virtual bool BeginFrame() override final
Definition RendererDummy.h:37
virtual bool DrawBuffer(const VertexArray *, Material *) override final
Definition RendererDummy.h:67
virtual Texture * CreateTexture(const TextureDescriptor &d) override final
Definition RendererDummy.h:74
virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_) override final
Definition RendererDummy.h:53
virtual InstanceBuffer * CreateInstanceBuffer(Uint32 size, BufferUsage bu) override final
Definition RendererDummy.h:78
virtual IndexBuffer * CreateIndexBuffer(Uint32 size, BufferUsage bu, IndexBufferSize el) override final
Definition RendererDummy.h:77
virtual MeshObject * CreateMeshObjectFromArray(const VertexArray *v, IndexBuffer *i=nullptr, BufferUsage=BUFFER_USAGE_STATIC) override final
Definition RendererDummy.h:81
virtual UniformBuffer * CreateUniformBuffer(Uint32 size, BufferUsage bu) override final
Definition RendererDummy.h:79
virtual bool SetTransform(const matrix4x4f &m) override final
Definition RendererDummy.h:51
virtual bool SetOrthographicProjection(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax) override final
Definition RendererDummy.h:54
virtual bool SetAmbientColor(const Color &c) override final
Definition RendererDummy.h:63
virtual RendererType GetRendererType() const override final
Definition RendererDummy.h:32
static void RegisterRenderer()
Definition RendererDummy.cpp:13
virtual Uint32 GetNumLights() const override final
Definition RendererDummy.h:62
virtual bool SetLights(Uint32 numlights, const Light *l) override final
Definition RendererDummy.h:61
virtual bool SetLightIntensity(Uint32, const float *) override final
Definition RendererDummy.h:60
virtual bool DrawMesh(MeshObject *, Material *) override final
Definition RendererDummy.h:69
virtual bool ReloadShaders() override final
Definition RendererDummy.h:90
virtual bool SetViewport(ViewportExtents v) override final
Definition RendererDummy.h:48
virtual MeshObject * CreateMeshObject(VertexBuffer *v, IndexBuffer *i) override final
Definition RendererDummy.h:80
virtual bool ClearScreen() override final
Definition RendererDummy.h:44
Definition Renderer.h:44
Definition Texture.h:54
Definition TextureDummy.h:11
Definition Texture.h:106
Definition UniformBuffer.h:11
Definition VertexArray.h:19
Definition VertexBuffer.h:65
static matrix4x4 Identity()
Definition matrix4x4.h:106
Definition Background.h:14
RendererType
Definition Graphics.h:18
@ RENDERER_DUMMY
Definition Graphics.h:19
IndexBufferSize
Definition Types.h:76
BufferUsage
Definition Types.h:65
@ BUFFER_USAGE_STATIC
Definition Types.h:66
Definition Color.h:66
Definition RenderState.h:10
Definition RenderTarget.h:20
Definition VertexBuffer.h:43
static VertexBufferDesc FromAttribSet(AttributeSet set)
Definition VertexBuffer.cpp:44
Definition Graphics.h:59