-
Notifications
You must be signed in to change notification settings - Fork 0
/
RenderModule.hpp
145 lines (75 loc) · 2.22 KB
/
RenderModule.hpp
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#pragma once
#ifndef __RM_HPP__
#define __RM_HPP__
/*
#include "Asset.hpp"
*/
#include "Module.hpp"
#include "Window.hpp"
#include "Canvas.hpp"
#include "Texture.hpp"
#include "Material.hpp"
#include "Geometry.hpp"
#include "Mesh.hpp"
#include "RenderScene.hpp"
#include "MaterialManager.hpp"
//inline template<T> T* Cast<T>()
/*
class ModuleListener : public Listener {
public:
virtual void onStart() = 0;
virtual void onStop() = 0;
};
class Module : public Referenced {
virtual bool isLoading() const { return false; }
public:
static Module* LoadModule( const String& ) { return NULL; }
};
class ModuleManager111 : public Referenced {
public:
};
*/
/*
enum VERTEX_TYPE2 {
VERTEX_COMMON,
VERTEX_P3F_N3F_TCF2
};
*/
struct GeometryInfo {
unsigned flags;
//VERTEX_TYPE vertexType;
INDEX_TYPE indexType;
};
/*
class Geometry : public Referenced {
GeometryInfo info;
public:
};
*/
class RenderModule : public Module {
SharedPtr<Window> renderWindow;
public:
virtual void setWindow(Window*) = 0;
//virtual bool setVideoMode(const VideoMode&) = 0;
virtual void beginFrame() = 0;
virtual void endFrame() = 0;
virtual MaterialManager* getMaterialManager() const =0;
virtual TextureManager* getTextureManager() const =0;
//virtual MeshManager* getMeshManager() const =0;
//virtual RenderScene* createScene() = 0;
//virtual MaterialManager* getMaterialManager()=0;
/*
virtual Geometry* createGeometry(unsigned flags, VERTEX_TYPE vertexType, unsigned numVertices, INDEX_TYPE indexType = INDEX_NONE, unsigned numIndices = 0) = 0;
virtual Texture* createTexture(const TextureInfo&) = 0;
virtual Texture* createTexture(const AssetName&, bool reload=false) = 0;
virtual Material* createMaterial() = 0;
virtual Material* createMaterial(Material*) = 0;
virtual Material* createMaterial(const AssetName&) = 0;
virtual Font* createFont(const FontInfo&) = 0;
virtual Font* createFont(const AssetName) = 0;
virtual RenderScene* createScene() = 0;
virtual Canvas* createCanvas() { return NULL; }
*/
};
RenderModule* CreateRenderModule();
#endif