Cogs.Core
BuffersNull.h
1#pragma once
2
3#include "../Common.h"
4#include "../Flags.h"
5#include "../Base/BuffersCommon.h"
6#include "../VertexFormat.h"
7
8#include "../Base/ResourceMap.h"
9
10namespace Cogs {
12 };
13
14 class BuffersNull : public BuffersCommon {
15 public:
16 virtual VertexBufferHandle loadVertexBuffer(const void* /*vertexData*/, const size_t /*count*/, const VertexFormat& /*vertexFormat*/) override {
17 return VertexBufferHandle(reinterpret_cast<int64_t>(new BufferTag()));
18 }
19
20 virtual VertexBufferHandle loadVertexBuffer(const void* /*vertexData*/, const size_t /*count*/, VertexFormatHandle /*vertexFormatHandle*/) override {
21 return VertexBufferHandle(reinterpret_cast<int64_t>(new BufferTag()));
22 }
23
24 virtual void releaseVertexBuffer(VertexBufferHandle vertexBufferHandle) override {
25 delete reinterpret_cast<BufferTag*>(vertexBufferHandle.handle);
26 }
27
28 virtual IndexBufferHandle loadIndexBuffer(const void* /*indexData*/, const size_t /*count*/, const size_t /*indexSize*/) override {
29 return IndexBufferHandle(reinterpret_cast<int64_t>(new BufferTag()));
30 }
31
32 virtual void releaseIndexBuffer(IndexBufferHandle indexBufferHandle) override {
33 delete reinterpret_cast<BufferTag*>(indexBufferHandle.handle);
34 }
35
36 virtual InputLayoutHandle loadInputLayout(const VertexFormatHandle* vertexFormats, const size_t count, EffectHandle effectHandle) override;
37 virtual void releaseInputLayout(InputLayoutHandle inputLayoutHandle) override;
38
39 virtual BufferHandle loadBuffer(const void* /*data*/, const size_t /*size*/, Usage::EUsage /*usage*/, uint32_t /*accessMode*/, uint32_t /*bindFlags*/, uint32_t /*stride*/ = 0) override {
40 return BufferHandle(reinterpret_cast<int64_t>(new BufferTag()));
41 }
42
43 virtual void releaseBuffer(BufferHandle bufferHandle) override {
44 delete reinterpret_cast<BufferTag*>(bufferHandle.handle);
45 }
46
47 virtual void* getNativeHandle(BufferHandle bufferHandle) override {
48 return reinterpret_cast<void*>(bufferHandle.handle);
49 }
50
51 virtual void releaseResources() override {
52 }
53
54 virtual void retrieveSubBuffer(void* /*data*/, BufferHandle /*source*/, const size_t /*offset*/, const size_t /*size*/) override {
55 }
56
57 private:
59 };
60}
virtual VertexBufferHandle loadVertexBuffer(const void *, const size_t, const VertexFormat &) override
Loads a new vertex buffer and populates it with the given data.
Definition: BuffersNull.h:16
virtual IndexBufferHandle loadIndexBuffer(const void *, const size_t, const size_t) override
Loads a new index buffer and populates it with the given indexData.
Definition: BuffersNull.h:28
virtual void * getNativeHandle(BufferHandle bufferHandle) override
Get the device-specific handle (D3D buffer pointer, OpenGL buffer ID etc) associated with the given b...
Definition: BuffersNull.h:47
virtual void releaseInputLayout(InputLayoutHandle inputLayoutHandle) override
Releases the input layout with the given inputLayoutHandle.
Definition: BuffersNull.cpp:7
virtual void retrieveSubBuffer(void *, BufferHandle, const size_t, const size_t) override
Retrieves the contents of a buffer.
Definition: BuffersNull.h:54
virtual void releaseResources() override
Releases all allocated buffer resources.
Definition: BuffersNull.h:51
virtual void releaseVertexBuffer(VertexBufferHandle vertexBufferHandle) override
Release the vertex buffer with the given handle.
Definition: BuffersNull.h:24
virtual InputLayoutHandle loadInputLayout(const VertexFormatHandle *vertexFormats, const size_t count, EffectHandle effectHandle) override
Loads a new input layout to map vertex flow between vertex buffers with the given vertexFormats to ef...
Definition: BuffersNull.cpp:3
virtual BufferHandle loadBuffer(const void *, const size_t, Usage::EUsage, uint32_t, uint32_t, uint32_t=0) override
Loads a new buffer using the given data to populate the buffer.
Definition: BuffersNull.h:39
virtual void releaseBuffer(BufferHandle bufferHandle) override
Releases the buffer with the given bufferHandle.
Definition: BuffersNull.h:43
virtual void releaseIndexBuffer(IndexBufferHandle indexBufferHandle) override
Releases the index buffer with the given handle.
Definition: BuffersNull.h:32
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
handle_type handle
Internal resource handle.
Definition: Common.h:74
EUsage
Usage enumeration.
Definition: Flags.h:24
Vertex format structure used to describe a single vertex for the input assembler.
Definition: VertexFormat.h:60