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
|
// triangle 1
Vertex[0] = CVector2(100.0f, 100.0f);
Vertex[1] = CVector2(100.0f, 200.0f);
Vertex[2] = CVector2(200.0f, 200.0f);
// triangle 2
Vertex[3] = CVector2(100.0f, 100.0f);
Vertex[4] = CVector2(200.0f, 200.0f);
Vertex[5] = CVector2(200.0f, 100.0f);
// texture trianngle 1
Texture[0] = CVector2(0.0f, 1.0f);
Texture[1] = CVector2(0.0f, 0.0f);
Texture[2] = CVector2(1.0f, 0.0f);
// texture trianngle 2
Texture[3] = CVector2(0.0f, 1.0f);
Texture[4] = CVector2(1.0f, 0.0f);
Texture[5] = CVector2(1.0f, 1.0f);
ShaderText.Use();
g_glErr = glGetError();
GL::glBindBuffer(GL_ARRAY_BUFFER, unBuffer);
g_glErr = glGetError();
GL::glBufferData(GL_ARRAY_BUFFER, sizeof(Vertex) + sizeof(Texture), NULL, GL_STATIC_DRAW);
g_glErr = glGetError();
GL::glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(Vertex), Vertex);
g_glErr = glGetError();
GL::glBufferSubData(GL_ARRAY_BUFFER, sizeof(Vertex), sizeof(Texture), Texture);
g_glErr = glGetError();
GL::glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*)0);
g_glErr = glGetError();
GL::glEnableVertexAttribArray(0);
g_glErr = glGetError();
GL::glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*)sizeof(Vertex));
g_glErr = glGetError();
GL::glEnableVertexAttribArray(1);
g_glErr = glGetError();
glPolygonMode(GL_FRONT_AND_BACK, nFillStyle);
glDrawArrays(GL_TRIANGLES, 0, 6);
g_glErr = glGetError();
|