Pioneer
Loading...
Searching...
No Matches
src
graphics
UniformBuffer.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/BufferCommon.h
"
7
#include "
graphics/Types.h
"
8
9
namespace
Graphics
{
10
11
class
UniformBuffer
:
public
Mappable
{
12
public
:
13
UniformBuffer
(uint32_t size,
BufferUsage
usage) :
14
Mappable
(size),
15
m_usage
(usage)
16
{}
17
virtual
~UniformBuffer
(){};
18
19
template
<
typename
T>
20
ScopedMapping<T>
Map
(
BufferMapMode
mode)
21
{
22
return
ScopedMapping<T>
(
reinterpret_cast<
T *
>
(
MapInternal
(mode)),
this
);
23
}
24
25
virtual
void
Unmap
() = 0;
26
27
// copies the contents of the passed object into the buffer
28
template
<
typename
T>
29
void
BufferData
(
const
T &obj)
30
{
31
return
BufferData
(
sizeof
(T), (
void
*)&obj);
32
}
33
34
// change the buffer data without mapping
35
virtual
void
BufferData
(
const
size_t
,
void
*) = 0;
36
37
BufferBinding<UniformBuffer>
GetBufferBinding
() {
return
{
this
, 0,
m_size
}; }
38
39
protected
:
40
virtual
void
*
MapInternal
(
BufferMapMode
mode) = 0;
41
BufferUsage
m_usage
;
42
};
43
44
}
// namespace Graphics
BufferCommon.h
Types.h
Graphics::Mappable
Definition
BufferCommon.h:16
Graphics::Mappable::m_size
uint32_t m_size
Definition
BufferCommon.h:32
Graphics::UniformBuffer
Definition
UniformBuffer.h:11
Graphics::UniformBuffer::Map
ScopedMapping< T > Map(BufferMapMode mode)
Definition
UniformBuffer.h:20
Graphics::UniformBuffer::~UniformBuffer
virtual ~UniformBuffer()
Definition
UniformBuffer.h:17
Graphics::UniformBuffer::BufferData
void BufferData(const T &obj)
Definition
UniformBuffer.h:29
Graphics::UniformBuffer::Unmap
virtual void Unmap()=0
Graphics::UniformBuffer::BufferData
virtual void BufferData(const size_t, void *)=0
Graphics::UniformBuffer::MapInternal
virtual void * MapInternal(BufferMapMode mode)=0
Graphics::UniformBuffer::GetBufferBinding
BufferBinding< UniformBuffer > GetBufferBinding()
Definition
UniformBuffer.h:37
Graphics::UniformBuffer::m_usage
BufferUsage m_usage
Definition
UniformBuffer.h:41
Graphics::UniformBuffer::UniformBuffer
UniformBuffer(uint32_t size, BufferUsage usage)
Definition
UniformBuffer.h:13
Graphics
Definition
Background.h:14
Graphics::BufferUsage
BufferUsage
Definition
Types.h:65
Graphics::BufferMapMode
BufferMapMode
Definition
Types.h:70
Graphics::BufferBinding
Definition
BufferCommon.h:63
Graphics::ScopedMapping
Definition
BufferCommon.h:38
Generated by
1.9.7