3
SceneTexture::~SceneTexture()
5
for(unsigned i = 0; i < 3; i++)
6
glDeleteTextures(1, &mTexture[i]);
9
int SceneTexture::load()
13
if(!model.load_3ds("data/models/cube.3ds"))
16
if(!load_texture("data/textures/crate-base.bmp", mTexture))
19
model.calculate_normals();
20
model.convert_to_mesh(&mCubeMesh);
21
mCubeMesh.build_list();
23
mRotationSpeed = Vector3f(36.0f, 36.0f, 36.0f);
28
mPartDuration = new double[mPartsQty];
29
mAverageFPS = new unsigned[mPartsQty];
30
mScoreScale = new float[mPartsQty];
32
mScoreScale[0] = 0.471f;
33
mScoreScale[1] = 0.533f;
34
mScoreScale[2] = 0.405f;
38
mPartDuration[0] = 10.0;
39
mPartDuration[1] = 10.0;
40
mPartDuration[2] = 10.0;
47
void SceneTexture::start()
49
GLfloat lightAmbient[] = {0.0f, 0.0f, 0.0f, 1.0f};
50
GLfloat lightDiffuse[] = {0.8f, 0.8f, 0.8f, 1.0f};
51
GLfloat lightPosition[] = {20.0f, 20.0f, 10.0f, 1.0f};
53
glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient);
54
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDiffuse);
55
glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
58
glEnable(GL_TEXTURE_2D);
62
mStartTime = SDL_GetTicks() / 1000.0;
63
mLastTime = mStartTime;
66
void SceneTexture::update()
68
mCurrentTime = SDL_GetTicks() / 1000.0;
69
mDt = mCurrentTime - mLastTime;
70
mLastTime = mCurrentTime;
72
mElapsedTime = mCurrentTime - mStartTime;
74
if(mElapsedTime >= mPartDuration[mCurrentPart])
76
mAverageFPS[mCurrentPart] = mCurrentFrame / mElapsedTime;
81
printf("Texture filtering\n");
82
printf(" Nearest FPS: %u\n", mAverageFPS[mCurrentPart]);
85
printf(" Linear FPS: %u\n", mAverageFPS[mCurrentPart]);
88
printf(" Mipmapped FPS: %u\n", mAverageFPS[mCurrentPart]);
91
mScore += mAverageFPS[mCurrentPart];
94
if(mCurrentPart >= mPartsQty)
98
mRotation += mRotationSpeed * mDt;
103
void SceneTexture::draw()
106
glColor3f(1.0f, 1.0f, 1.0f);
107
glTranslatef(0.0f, 0.0f, -4.0f);
109
glRotatef(mRotation.x, 1.0f, 0.0f, 0.0f);
110
glRotatef(mRotation.y, 0.0f, 1.0f, 0.0f);
111
glRotatef(mRotation.z, 0.0f, 0.0f, 1.0f);
116
glBindTexture(GL_TEXTURE_2D, mTexture[0]);
117
glCallList(mCubeMesh.mBuildList);
120
glBindTexture(GL_TEXTURE_2D, mTexture[1]);
121
glCallList(mCubeMesh.mBuildList);
123
glBindTexture(GL_TEXTURE_2D, mTexture[2]);
124
glCallList(mCubeMesh.mBuildList);