-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathRenderContext.h
More file actions
39 lines (31 loc) · 848 Bytes
/
RenderContext.h
File metadata and controls
39 lines (31 loc) · 848 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//
// RenderContext.h
//
#pragma once
namespace cb
{
struct RenderContext
{
typedef void(*function_t)(const void* command, cb::RenderContext* rc);
RenderContext(void* contextData);
template <class ContextClass>
ContextClass& data();
template <class ContextClass>
const ContextClass& data() const;
private:
void* m_contextData;
};
inline RenderContext::RenderContext(void* contextData)
: m_contextData(contextData)
{}
template <class ContextClass>
inline ContextClass& RenderContext::data()
{
return *reinterpret_cast<ContextClass*>(m_contextData);
}
template <class ContextClass>
inline const ContextClass& RenderContext::data() const
{
return *reinterpret_cast<const ContextClass*>(m_contextData);
}
}