9 :
Layer(COVER_FULL, Z_BACKGROUND)
11 , width(width_), height(height_)
15 for (
int i = 0; i < 128 * 128; ++i) {
16 buf[i] =
byte(rand());
18 glGenTextures(1, &noiseTextureId);
19 glBindTexture(GL_TEXTURE_2D, noiseTextureId);
20 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
21 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
22 glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE8, 128, 128, 0,
23 GL_LUMINANCE, GL_UNSIGNED_BYTE, buf);
29 glDeleteTextures(1, &noiseTextureId);
36 static const int coord[8][4][2] = {
37 { { 0, 0 }, { 1, 0 }, { 1, 1 }, { 0, 1 } },
38 { { 0, 1 }, { 1, 1 }, { 1, 0 }, { 0, 0 } },
39 { { 0, 1 }, { 0, 0 }, { 1, 0 }, { 1, 1 } },
40 { { 1, 1 }, { 1, 0 }, { 0, 0 }, { 0, 1 } },
41 { { 1, 1 }, { 0, 1 }, { 0, 0 }, { 1, 0 } },
42 { { 1, 0 }, { 0, 0 }, { 0, 1 }, { 1, 1 } },
43 { { 1, 0 }, { 1, 1 }, { 0, 1 }, { 0, 0 } },
44 { { 0, 0 }, { 0, 1 }, { 1, 1 }, { 1, 0 } }
46 static unsigned cnt = 0;
49 GLfloat x = GLfloat(rand()) / RAND_MAX;
50 GLfloat y = GLfloat(rand()) / RAND_MAX;
52 glEnable(GL_TEXTURE_2D);
53 glBindTexture(GL_TEXTURE_2D, noiseTextureId);
54 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
56 glTexCoord2f(0.0f + x, 2.0f + y);
57 glVertex2i(coord[cnt][0][0] * width, coord[cnt][0][1] * height);
58 glTexCoord2f(2.0f + x, 2.0f + y);
59 glVertex2i(coord[cnt][1][0] * width, coord[cnt][1][1] * height);
60 glTexCoord2f(2.0f + x, 0.0f + y);
61 glVertex2i(coord[cnt][2][0] * width, coord[cnt][2][1] * height);
62 glTexCoord2f(0.0f + x, 0.0f + y);
63 glVertex2i(coord[cnt][3][0] * width, coord[cnt][3][1] * height);
65 glDisable(GL_TEXTURE_2D);