Repository navigation
Expand file tree
/
Copy pathtexture.h
More file actions
90 lines (84 loc) · 1.59 KB
/
Copy pathtexture.h
File metadata and controls
90 lines (84 loc) · 1.59 KB
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
#pragma once
#include<GL/glew.h>
#include<GLFW/glfw3.h>
#include<memory>
#include<string>
#include<map>
#include<vector>
enum TextureUnit {
#ifdef GL_TEXTURE0
TEXTURE0 = GL_TEXTURE0,
#endif
#ifdef GL_TEXTURE1
TEXTURE1 = GL_TEXTURE1,
#endif
#ifdef GL_TEXTURE2
TEXTURE2 = GL_TEXTURE2,
#endif
#ifdef GL_TEXTURE3
TEXTURE3 = GL_TEXTURE3,
#endif
#ifdef GL_TEXTURE4
TEXTURE4 = GL_TEXTURE4,
#endif
#ifdef GL_TEXTURE5
TEXTURE5 = GL_TEXTURE5,
#endif
#ifdef GL_TEXTURE6
TEXTURE6 = GL_TEXTURE6,
#endif
#ifdef GL_TEXTURE7
TEXTURE7 = GL_TEXTURE7,
#endif
#ifdef GL_TEXTURE8
TEXTURE8 = GL_TEXTURE8,
#endif
#ifdef GL_TEXTURE9
TEXTURE9 = GL_TEXTURE9,
#endif
#ifdef GL_TEXTURE10
TEXTURE10 = GL_TEXTURE10,
#endif
#ifdef GL_TEXTURE11
TEXTURE11 = GL_TEXTURE11,
#endif
#ifdef GL_TEXTURE12
TEXTURE12 = GL_TEXTURE12,
#endif
#ifdef GL_TEXTURE13
TEXTURE13 = GL_TEXTURE13,
#endif
#ifdef GL_TEXTURE14
TEXTURE14 = GL_TEXTURE14,
#endif
#ifdef GL_TEXTURE15
TEXTURE15 = GL_TEXTURE15,
#endif
};
class CTexture;
typedef std::shared_ptr<CTexture> Texture;
class CTexture
{
GLuint name=-1;
GLuint binding = 0;
public:
GLuint GetName();
void Bind(GLuint unit);
GLuint Bind();
GLuint GetBinding();
CTexture();
~CTexture();
static Texture Create(int width, int height);
static Texture CreateDepth(int width, int height);
static Texture Create(std::string fname);
};
//class CTextureBinding
//{
// std::map<Texture, TextureUnit> unit;
//public:
// CTextureBinding();
// ~CTextureBinding();
//
// TextureUnit operator [](Texture texture);
//
//};