Pioneer
VertexBufferDummy.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 #ifndef DUMMY_VERTEXBUFFER_H
5 #define DUMMY_VERTEXBUFFER_H
6 
8 
9 namespace Graphics {
10 
11  namespace Dummy {
12 
14  public:
17  m_buffer(new Uint8[m_desc.numVertices * m_desc.stride])
18  {}
19 
20  // copies the contents of the VertexArray into the buffer
21  virtual bool Populate(const VertexArray &) override final { return true; }
22 
23  // change the buffer data without mapping
24  virtual void BufferData(const size_t, void *) override final {}
25 
26  virtual void Bind() override final {}
27  virtual void Release() override final {}
28 
29  virtual void Unmap() override final {}
30 
31  protected:
32  virtual Uint8 *MapInternal(BufferMapMode) override final { return m_buffer.get(); }
33 
34  private:
35  std::unique_ptr<Uint8[]> m_buffer;
36  };
37 
39  public:
40  IndexBuffer(Uint32 size, BufferUsage bu) :
41  Graphics::IndexBuffer(size, bu),
42  m_buffer(new Uint32[size]){};
43 
44  virtual Uint32 *Map(BufferMapMode) override final { return m_buffer.get(); }
45  virtual void Unmap() override final {}
46 
47  virtual void BufferData(const size_t, void *) override final {}
48 
49  virtual void Bind() override final {}
50  virtual void Release() override final {}
51 
52  private:
53  std::unique_ptr<Uint32[]> m_buffer;
54  };
55 
56  // Instance buffer
58  public:
59  InstanceBuffer(Uint32 size, BufferUsage hint) :
60  Graphics::InstanceBuffer(size, hint),
61  m_data(new matrix4x4f[size])
62  {}
63  virtual ~InstanceBuffer(){};
64  virtual matrix4x4f *Map(BufferMapMode) override final { return m_data.get(); }
65  virtual void Unmap() override final {}
66 
67  Uint32 GetSize() const { return m_size; }
68  BufferUsage GetUsage() const { return m_usage; }
69 
70  virtual void Bind() override final {}
71  virtual void Release() override final {}
72 
73  protected:
74  std::unique_ptr<matrix4x4f> m_data;
75  };
76 
77  } // namespace Dummy
78 } // namespace Graphics
79 
80 #endif
Definition: VertexBufferDummy.h:38
virtual void BufferData(const size_t, void *) override final
Definition: VertexBufferDummy.h:47
virtual Uint32 * Map(BufferMapMode) override final
Definition: VertexBufferDummy.h:44
virtual void Release() override final
Definition: VertexBufferDummy.h:50
virtual void Bind() override final
Definition: VertexBufferDummy.h:49
virtual void Unmap() override final
Definition: VertexBufferDummy.h:45
IndexBuffer(Uint32 size, BufferUsage bu)
Definition: VertexBufferDummy.h:40
Definition: VertexBufferDummy.h:57
BufferUsage GetUsage() const
Definition: VertexBufferDummy.h:68
virtual void Unmap() override final
Definition: VertexBufferDummy.h:65
std::unique_ptr< matrix4x4f > m_data
Definition: VertexBufferDummy.h:74
virtual ~InstanceBuffer()
Definition: VertexBufferDummy.h:63
Uint32 GetSize() const
Definition: VertexBufferDummy.h:67
InstanceBuffer(Uint32 size, BufferUsage hint)
Definition: VertexBufferDummy.h:59
virtual void Bind() override final
Definition: VertexBufferDummy.h:70
virtual matrix4x4f * Map(BufferMapMode) override final
Definition: VertexBufferDummy.h:64
virtual void Release() override final
Definition: VertexBufferDummy.h:71
Definition: VertexBufferDummy.h:13
virtual void Unmap() override final
Definition: VertexBufferDummy.h:29
virtual Uint8 * MapInternal(BufferMapMode) override final
Definition: VertexBufferDummy.h:32
virtual void BufferData(const size_t, void *) override final
Definition: VertexBufferDummy.h:24
VertexBuffer(const VertexBufferDesc &d)
Definition: VertexBufferDummy.h:15
virtual bool Populate(const VertexArray &) override final
Definition: VertexBufferDummy.h:21
virtual void Bind() override final
Definition: VertexBufferDummy.h:26
virtual void Release() override final
Definition: VertexBufferDummy.h:27
Definition: VertexBuffer.h:114
Definition: VertexBuffer.h:136
BufferUsage m_usage
Definition: VertexBuffer.h:151
Uint32 m_size
Definition: VertexBuffer.h:75
Definition: VertexArray.h:19
Definition: VertexBuffer.h:80
VertexBufferDesc m_desc
Definition: VertexBuffer.h:110
Definition: Background.h:13
BufferUsage
Definition: Types.h:34
BufferMapMode
Definition: Types.h:39
Definition: VertexBuffer.h:41