OpenGL Test
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

100 lines
2.2 KiB

#include <cstdio> // printf
#include <glm/glm.hpp>
#include "cube.h"
#include "cubecolor.h"
#include "state/maingame.h"
#include "text.h"
void MainGame::initialize() {
printf("MainGame::initialize\n");
glm::vec3 cubeColors[CUBE_SIZE] = {
// Textured cube
glm::vec3( 0.6f, 0.2f, 0.2f),
glm::vec3( 0.2f, 0.6f, 0.2f),
glm::vec3( 0.2f, 0.2f, 0.6f),
glm::vec3( 1.0f, 1.0f, 1.0f),
glm::vec3( 1.0f, 1.0f, 1.0f),
glm::vec3( 1.0f, 1.0f, 1.0f),
// Colored cube
glm::vec3( 0.6f, 0.2f, 0.2f),
glm::vec3( 0.2f, 0.6f, 0.2f),
glm::vec3( 0.2f, 0.2f, 0.6f),
glm::vec3( 0.6f, 0.2f, 0.2f),
glm::vec3( 0.2f, 0.6f, 0.2f),
glm::vec3( 0.2f, 0.2f, 0.6f),
glm::vec3( 1.0f, 1.0f, 1.0f),
glm::vec3( 1.0f, 1.0f, 1.0f),
glm::vec3( 1.0f, 1.0f, 1.0f),
};
glm::vec3 cubePositions[CUBE_SIZE] = {
// Textured cube
glm::vec3( 0.0f, 0.0f, 0.0f),
glm::vec3( 2.0f, 0.0f, 0.0f),
glm::vec3( 4.0f, 0.0f, 0.0f),
glm::vec3( 0.0f, 2.0f, 0.0f),
glm::vec3( 2.0f, 2.0f, 0.0f),
glm::vec3( 4.0f, 2.0f, 0.0f),
// Colored cube
glm::vec3( 0.0f, 0.0f, 6.0f),
glm::vec3( 2.0f, 0.0f, 6.0f),
glm::vec3( 4.0f, 0.0f, 6.0f),
glm::vec3( 0.0f, 2.0f, 6.0f),
glm::vec3( 2.0f, 2.0f, 6.0f),
glm::vec3( 4.0f, 2.0f, 6.0f),
glm::vec3( 0.0f, 4.0f, 6.0f),
glm::vec3( 2.0f, 4.0f, 6.0f),
glm::vec3( 4.0f, 4.0f, 6.0f),
};
bool cubeLine[CUBE_SIZE] = {
// Colored cube
false,
false,
false,
true,
true,
true,
true,
};
for(int i = 0; i < CUBE; i++) {
m_object[i] = new Cube(cubeColors[i].x, cubeColors[i].y, cubeColors[i].z);
m_object[i]->setPosition(cubePositions[i]);
}
for(int i = CUBE; i < CUBE_SIZE; i++) {
m_object[i] = new CubeColor(cubeColors[i].x, cubeColors[i].y, cubeColors[i].z,
cubeLine[i - CUBE]);
m_object[i]->setPosition(cubePositions[i]);
}
m_text = new Text();
m_text->setText("Test");
}
void MainGame::update() {
for(int i = 0; i < CUBE_SIZE; i++) {
m_object[i]->update();
}
m_text->update();
}
void MainGame::render() {
for(int i = 0; i < CUBE_SIZE; i++) {
m_object[i]->render();
}
m_text->render();
}
void MainGame::destroy() {
for(int i = 0; i < CUBE_SIZE; i++) {
m_object[i]->destroy();
}
m_text->destroy();
}