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
|
GLuint LoadTexture(sf::Image *Image)
{
GLuint TextureID;
glGenTextures(1, &TextureID);
glBindTexture(GL_TEXTURE_2D, TextureID);
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RGB,
Image->getSize().x, Image->getSize().y,
0,
GL_RGB,
GL_UNSIGNED_BYTE,
Image->getPixelsPtr());
return TextureID;
}
GLuint _textureId;
void InitRendering()
{
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_NORMALIZE);
//glShadeModel(GL_SMOOTH);
sf::Image* Image = new sf::Image();
if(!Image->loadFromFile("texture.png"))
exit(0);
_textureId = LoadTexture(Image);
delete Image;
}
void DrawScene()
{
//Das Übliche :3
//////
//Cube
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _textureId);
glRotatef(_angle, 1.f, 1.f, 0.f);
glColor3f(1.f, 1.f, 1.f);
glBegin(GL_QUADS);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
//Front
glNormal3f(0.f, 0.f, 1.f);
glTexCoord2f(0.f, 0.f);
glVertex3f(-1.5f, -1.f, 1.5f);
glTexCoord2f(1.f, 0.f);
glVertex3f(1.5f, -1.f, 1.5f);
glTexCoord2f(1.f, 1.f);
glVertex3f(1.5f, 1.f, 1.5f);
glTexCoord2f(0.f, 1.f);
glVertex3f(-1.5f, 1.f, 1.5f);
glDisable(GL_TEXTURE_2D);
//Right
glNormal3f(1.f, 0.f, 0.f);
glVertex3f(1.5f, -1.f, -1.5f);
glVertex3f(1.5f, 1.f, -1.5f);
glVertex3f(1.5f, 1.f, 1.5f);
glVertex3f(1.5f, -1.f, 1.5f);
//Back
//...
//...
glEnd();
glutSwapBuffers(); //Send the Scene to screen. :3
}
|