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" 10 #include "graphics/dummy/MaterialDummy.h" 11 #include "graphics/dummy/RenderStateDummy.h" 12 #include "graphics/dummy/RenderTargetDummy.h" 13 #include "graphics/dummy/TextureDummy.h" 14 #include "graphics/dummy/VertexBufferDummy.h" 15 16 namespace Graphics { 17 18 class RendererDummy : public Renderer { 19 public: 20 static void RegisterRenderer(); 21 RendererDummy()22 RendererDummy() : 23 Renderer(0, 0, 0), 24 m_identity(matrix4x4f::Identity()) 25 {} 26 GetName()27 virtual const char *GetName() const override final { return "Dummy"; } GetRendererType()28 virtual RendererType GetRendererType() const override final { return RENDERER_DUMMY; } SupportsInstancing()29 virtual bool SupportsInstancing() override final { return false; } GetMaximumNumberAASamples()30 virtual int GetMaximumNumberAASamples() const override final { return 0; } GetNearFarRange(float & near_,float & far_)31 virtual bool GetNearFarRange(float &near_, float &far_) const override final { return true; } 32 BeginFrame()33 virtual bool BeginFrame() override final { return true; } EndFrame()34 virtual bool EndFrame() override final { return true; } SwapBuffers()35 virtual bool SwapBuffers() override final { return true; } 36 SetRenderState(RenderState *)37 virtual bool SetRenderState(RenderState *) override final { return true; } SetRenderTarget(RenderTarget *)38 virtual bool SetRenderTarget(RenderTarget *) override final { return true; } 39 SetDepthRange(double znear,double zfar)40 virtual bool SetDepthRange(double znear, double zfar) override final { return true; } ResetDepthRange()41 virtual bool ResetDepthRange() override final { return true; } 42 ClearScreen()43 virtual bool ClearScreen() override final { return true; } ClearDepthBuffer()44 virtual bool ClearDepthBuffer() override final { return true; } SetClearColor(const Color & c)45 virtual bool SetClearColor(const Color &c) override final { return true; } 46 SetViewport(Viewport v)47 virtual bool SetViewport(Viewport v) override final { return true; } GetViewport()48 virtual Viewport GetViewport() const override final { return {}; } 49 SetTransform(const matrix4x4f & m)50 virtual bool SetTransform(const matrix4x4f &m) override final { return true; } GetTransform()51 virtual matrix4x4f GetTransform() const override final { return matrix4x4f::Identity(); } SetPerspectiveProjection(float fov,float aspect,float near_,float far_)52 virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_) override final { return true; } SetOrthographicProjection(float xmin,float xmax,float ymin,float ymax,float zmin,float zmax)53 virtual bool SetOrthographicProjection(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax) override final { return true; } SetProjection(const matrix4x4f & m)54 virtual bool SetProjection(const matrix4x4f &m) override final { return true; } GetProjection()55 virtual matrix4x4f GetProjection() const override final { return matrix4x4f::Identity(); } 56 SetWireFrameMode(bool enabled)57 virtual bool SetWireFrameMode(bool enabled) override final { return true; } 58 SetLights(Uint32 numlights,const Light * l)59 virtual bool SetLights(Uint32 numlights, const Light *l) override final { return true; } GetNumLights()60 virtual Uint32 GetNumLights() const override final { return 1; } SetAmbientColor(const Color & c)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; } DrawPointSprites(const Uint32 count,const vector3f * positions,RenderState * rs,Material * material,float size)66 virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, RenderState *rs, Material *material, float size) override final { return true; } DrawPointSprites(const Uint32 count,const vector3f * positions,const vector2f * offsets,const float * sizes,RenderState * rs,Material * material)67 virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, const vector2f *offsets, const float *sizes, RenderState *rs, Material *material) override final { return true; } DrawBuffer(VertexBuffer *,RenderState *,Material *,PrimitiveType)68 virtual bool DrawBuffer(VertexBuffer *, RenderState *, Material *, PrimitiveType) override final { return true; } DrawBufferIndexed(VertexBuffer *,IndexBuffer *,RenderState *,Material *,PrimitiveType)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 CreateMaterial(const MaterialDescriptor & d)73 virtual Material *CreateMaterial(const MaterialDescriptor &d) override final { return new Graphics::Dummy::Material(); } CreateTexture(const TextureDescriptor & d)74 virtual Texture *CreateTexture(const TextureDescriptor &d) override final { return new Graphics::TextureDummy(d); } CreateRenderState(const RenderStateDesc & d)75 virtual RenderState *CreateRenderState(const RenderStateDesc &d) override final { return new Graphics::Dummy::RenderState(d); } CreateRenderTarget(const RenderTargetDesc & d)76 virtual RenderTarget *CreateRenderTarget(const RenderTargetDesc &d) override final { return new Graphics::Dummy::RenderTarget(d); } CreateVertexBuffer(const VertexBufferDesc & d)77 virtual VertexBuffer *CreateVertexBuffer(const VertexBufferDesc &d) override final { return new Graphics::Dummy::VertexBuffer(d); } CreateIndexBuffer(Uint32 size,BufferUsage bu)78 virtual IndexBuffer *CreateIndexBuffer(Uint32 size, BufferUsage bu) override final { return new Graphics::Dummy::IndexBuffer(size, bu); } CreateInstanceBuffer(Uint32 size,BufferUsage bu)79 virtual InstanceBuffer *CreateInstanceBuffer(Uint32 size, BufferUsage bu) override final { return new Graphics::Dummy::InstanceBuffer(size, bu); } 80 ReloadShaders()81 virtual bool ReloadShaders() override final { return true; } 82 83 protected: PushState()84 virtual void PushState() override final {} PopState()85 virtual void PopState() override final {} 86 87 private: 88 const matrix4x4f m_identity; 89 }; 90 91 } // namespace Graphics 92 93 #endif 94