Add a basic entity class
This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -14,7 +14,7 @@
|
|||||||
"stopAtEntry": false,
|
"stopAtEntry": false,
|
||||||
"cwd": "${workspaceFolder}",
|
"cwd": "${workspaceFolder}",
|
||||||
"environment": [],
|
"environment": [],
|
||||||
"externalConsole": false,
|
"externalConsole": true,
|
||||||
"MIMode": "gdb",
|
"MIMode": "gdb",
|
||||||
"preLaunchTask": "Build",
|
"preLaunchTask": "Build",
|
||||||
"setupCommands": [
|
"setupCommands": [
|
||||||
|
|||||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -72,6 +72,7 @@
|
|||||||
"cfenv": "cpp",
|
"cfenv": "cpp",
|
||||||
"typeindex": "cpp",
|
"typeindex": "cpp",
|
||||||
"valarray": "cpp",
|
"valarray": "cpp",
|
||||||
"variant": "cpp"
|
"variant": "cpp",
|
||||||
|
"forward_list": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 3.10)
|
|||||||
|
|
||||||
project(Fall-Fever)
|
project(Fall-Fever)
|
||||||
|
|
||||||
#if(WIN32)
|
if(WIN32)
|
||||||
set(GLFW3_ROOT "${PROJECT_SOURCE_DIR}/glfw")
|
set(GLFW3_ROOT "${PROJECT_SOURCE_DIR}/glfw")
|
||||||
#endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
|
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
@@ -21,3 +21,5 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
|
|||||||
|
|
||||||
add_subdirectory(${PROJECT_SOURCE_DIR}/lib)
|
add_subdirectory(${PROJECT_SOURCE_DIR}/lib)
|
||||||
add_subdirectory(${PROJECT_SOURCE_DIR}/src)
|
add_subdirectory(${PROJECT_SOURCE_DIR}/src)
|
||||||
|
|
||||||
|
add_subdirectory(${PROJECT_SOURCE_DIR}/tools)
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#version 330 core
|
#version 330 core
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 f_color;
|
||||||
|
|
||||||
struct Material {
|
struct Material {
|
||||||
sampler2D u_texture_diffuse0;
|
sampler2D u_texture_diffuse0;
|
||||||
sampler2D u_texture_diffuse1;
|
sampler2D u_texture_diffuse1;
|
||||||
@@ -7,18 +9,19 @@ struct Material {
|
|||||||
sampler2D u_texture_specular1;
|
sampler2D u_texture_specular1;
|
||||||
};
|
};
|
||||||
|
|
||||||
layout(location = 0) out vec4 f_color;
|
|
||||||
|
|
||||||
in vec4 v_color;
|
in vec4 v_color;
|
||||||
in vec2 v_texCoord;
|
in vec2 v_texCoord;
|
||||||
|
|
||||||
|
uniform vec3 v_objectColor;
|
||||||
|
uniform vec3 v_lightColor;
|
||||||
|
|
||||||
uniform Material material;
|
uniform Material material;
|
||||||
|
|
||||||
uniform float mix_val;
|
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
//f_color = v_color;
|
//f_color = v_color;
|
||||||
vec4 texColor1 = texture(material.u_texture_diffuse0, v_texCoord);
|
vec4 texColor1 = texture(material.u_texture_diffuse0, v_texCoord);
|
||||||
vec4 texColor2 = texture(material.u_texture_diffuse1, v_texCoord);
|
//vec4 texColor2 = texture(material.u_texture_diffuse1, v_texCoord);
|
||||||
f_color = mix(texColor1, texColor2, mix_val);
|
//f_color = vec4(v_objectColor * v_lightColor, 1.0f);
|
||||||
|
f_color = texColor1;
|
||||||
}
|
}
|
||||||
|
|||||||
7
res/shaders/light.fs
Normal file
7
res/shaders/light.fs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#version 330 core
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 f_color;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
f_color = vec4(1.0f);
|
||||||
|
}
|
||||||
16
res/shaders/light.vs
Normal file
16
res/shaders/light.vs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#version 330 core
|
||||||
|
|
||||||
|
layout(location = 0) in vec3 a_position;
|
||||||
|
layout(location = 1) in vec2 a_texCoord;
|
||||||
|
layout(location = 2) in vec4 a_color;
|
||||||
|
|
||||||
|
out vec4 v_color;
|
||||||
|
out vec2 v_texCoord;
|
||||||
|
|
||||||
|
uniform mat4 u_modelViewProj;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
gl_Position = u_modelViewProj * vec4(a_position, 1.0f);
|
||||||
|
v_texCoord = a_texCoord;
|
||||||
|
v_color = a_color;
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ add_executable(Fall-Fever
|
|||||||
Camera.cpp
|
Camera.cpp
|
||||||
Mesh.cpp
|
Mesh.cpp
|
||||||
Model.cpp
|
Model.cpp
|
||||||
|
Entity.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
#include "eventActions.h"
|
#include "eventActions.h"
|
||||||
|
|
||||||
|
#include <glm/gtc/matrix_transform.hpp>
|
||||||
|
#include <glm/ext/matrix_transform.hpp>
|
||||||
|
|
||||||
Camera::Camera(float fov, int width, int height) {
|
Camera::Camera(float fov, int width, int height) {
|
||||||
this->fov = fov;
|
this->fov = fov;
|
||||||
viewMatrix = glm::mat4(1.0f);
|
viewMatrix = glm::mat4(1.0f);
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <glm/glm.hpp>
|
#include <glm/glm.hpp>
|
||||||
#include <glm/gtc/matrix_transform.hpp>
|
|
||||||
#include <glm/ext/matrix_transform.hpp>
|
|
||||||
|
|
||||||
class Camera {
|
class Camera {
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include "Controller.h"
|
#include "Controller.h"
|
||||||
#include "Texture.h"
|
#include "Texture.h"
|
||||||
#include "Model.h"
|
#include "Model.h"
|
||||||
|
#include "Entity.h"
|
||||||
|
|
||||||
Controller::Controller() {
|
Controller::Controller() {
|
||||||
if(!glfwInit()) exit(-1);
|
if(!glfwInit()) exit(-1);
|
||||||
@@ -24,9 +25,8 @@ Controller::Controller() {
|
|||||||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE);
|
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE);
|
||||||
#endif
|
|
||||||
|
|
||||||
glfwSetErrorCallback(error_callback);
|
glfwSetErrorCallback(error_callback);
|
||||||
|
#endif
|
||||||
|
|
||||||
gameWindow = new Window();
|
gameWindow = new Window();
|
||||||
gameEventHandler = new EventHandler(gameWindow->getGLFWwindow());
|
gameEventHandler = new EventHandler(gameWindow->getGLFWwindow());
|
||||||
@@ -36,6 +36,7 @@ Controller::Controller() {
|
|||||||
Controller::~Controller() {
|
Controller::~Controller() {
|
||||||
delete gameWindow;
|
delete gameWindow;
|
||||||
delete gameEventHandler;
|
delete gameEventHandler;
|
||||||
|
delete camera;
|
||||||
glfwTerminate();
|
glfwTerminate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,56 +44,22 @@ void Controller::run() {
|
|||||||
glClearColor(0.15f, 0.15f, 0.15f, 1.0f);
|
glClearColor(0.15f, 0.15f, 0.15f, 1.0f);
|
||||||
|
|
||||||
ShaderProgram shaderProgram("res/shaders/basic.vs", "res/shaders/basic.fs");
|
ShaderProgram shaderProgram("res/shaders/basic.vs", "res/shaders/basic.fs");
|
||||||
shaderProgram.bind();
|
|
||||||
|
|
||||||
std::vector<Vertex> vertices {
|
ShaderProgram lightProgram("res/shaders/light.vs", "res/shaders/light.fs");
|
||||||
Vertex{
|
|
||||||
glm::vec3(-0.5f, -0.5f, 0.0f),
|
|
||||||
glm::vec2(0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec4(1.0f, 0.0f, 0.0f, 1.0f)},
|
|
||||||
Vertex{
|
|
||||||
glm::vec3(0.5f, -0.5f, 0.0f),
|
|
||||||
glm::vec2(1.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec4(0.0f, 1.0f, 0.0f, 1.0f)},
|
|
||||||
Vertex{
|
|
||||||
glm::vec3(-0.5f, 0.5f, 0.0f),
|
|
||||||
glm::vec2(0.0f, 1.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec4(0.0f, 0.0f, 1.0f, 1.0f)},
|
|
||||||
Vertex{
|
|
||||||
glm::vec3(0.5f, 0.5f, 0.0f),
|
|
||||||
glm::vec2(1.0f, 1.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec3(0.0f, 0.0f, 0.0f),
|
|
||||||
glm::vec4(0.0f, 0.0f, 1.0f, 1.0f)}
|
|
||||||
};
|
|
||||||
|
|
||||||
std::vector<uint32_t> indices {
|
std::vector<Entity> scene;
|
||||||
0, 1, 2,
|
|
||||||
1, 2, 3
|
|
||||||
};
|
|
||||||
|
|
||||||
std::vector<Texture*> textures {
|
//Model model_backpack("res/models/backpack.obj");
|
||||||
new Texture("res/textures/tex2.png", texture_diffuse),
|
Model model_cube("res/models/cube.obj");
|
||||||
new Texture("res/textures/tex1.png", texture_diffuse)
|
|
||||||
};
|
|
||||||
|
|
||||||
Model model1("res/models/cube.obj");
|
//Entity backpack1(&model_backpack, &shaderProgram);
|
||||||
|
Entity cube(&model_cube, &shaderProgram);
|
||||||
|
Entity lightSource(&model_cube, &lightProgram);
|
||||||
|
|
||||||
//Mesh mesh1(vertices, indices, textures);
|
//scene.push_back(backpack1);
|
||||||
|
scene.push_back(cube);
|
||||||
glm::mat4 model = glm::mat4(1.0f);
|
|
||||||
|
|
||||||
camera->translate(glm::vec3(0.0f, 0.0f, 2.5f));
|
camera->translate(glm::vec3(0.0f, 0.0f, 7.5f));
|
||||||
|
|
||||||
// This is the game loop
|
// This is the game loop
|
||||||
while(!glfwWindowShouldClose(gameWindow->getGLFWwindow())) {
|
while(!glfwWindowShouldClose(gameWindow->getGLFWwindow())) {
|
||||||
@@ -109,23 +76,15 @@ void Controller::run() {
|
|||||||
|
|
||||||
// Update game
|
// Update game
|
||||||
// ...
|
// ...
|
||||||
shaderProgram.setUniform("mix_val", (float) (sin(glfwGetTime()*0.25)*sin(glfwGetTime()*0.25)));
|
|
||||||
|
|
||||||
camera->lookForward();
|
|
||||||
camera->updateVPM();
|
|
||||||
glm::mat4 modelViewProj = camera->getViewProj() * model;
|
|
||||||
shaderProgram.setUniform("u_modelViewProj", modelViewProj);
|
|
||||||
|
|
||||||
// Render and buffer swap
|
// Render and buffer swap
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
camera->lookForward();
|
||||||
|
camera->updateVPM();
|
||||||
|
|
||||||
for(int i=0;i<20;i++) {
|
//backpack1.draw(camera->getViewProj());
|
||||||
//mesh1.draw(&shaderProgram);
|
cube.draw(camera->getViewProj());
|
||||||
model1.draw(&shaderProgram);
|
|
||||||
camera->updateVPM();
|
|
||||||
glm::mat4 modelViewProj = camera->getViewProj() * model;
|
|
||||||
shaderProgram.setUniform("u_modelViewProj", modelViewProj);
|
|
||||||
}
|
|
||||||
|
|
||||||
glfwSwapBuffers(gameWindow->getGLFWwindow());
|
glfwSwapBuffers(gameWindow->getGLFWwindow());
|
||||||
|
|
||||||
|
|||||||
26
src/Entity.cpp
Normal file
26
src/Entity.cpp
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#include "Entity.h"
|
||||||
|
|
||||||
|
#include <glm/gtc/matrix_transform.hpp>
|
||||||
|
#include <glm/ext/matrix_transform.hpp>
|
||||||
|
|
||||||
|
Entity::Entity(Model *model, ShaderProgram *shaderProgram)
|
||||||
|
: model(model), shaderProgram(shaderProgram) {
|
||||||
|
|
||||||
|
// Empty...
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Entity::draw(glm::mat4 viewProjMatrix) {
|
||||||
|
glm::mat4 modelViewProj = viewProjMatrix * modelMatrix;
|
||||||
|
shaderProgram->setUniform("u_modelViewProj", modelViewProj);
|
||||||
|
model->draw(shaderProgram);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Entity::translate(glm::vec3 vector) {
|
||||||
|
position += vector;
|
||||||
|
modelMatrix = glm::translate(modelMatrix, vector);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Entity::rotate(glm::vec3 axis, float radians) {
|
||||||
|
modelMatrix = glm::rotate(modelMatrix, radians, axis);
|
||||||
|
}
|
||||||
36
src/Entity.h
Normal file
36
src/Entity.h
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Model.h"
|
||||||
|
#include "ShaderProgram.h"
|
||||||
|
#include <glm/glm.hpp>
|
||||||
|
|
||||||
|
class Entity {
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
Entity(Model *model, ShaderProgram *shaderProgram);
|
||||||
|
~Entity() = default;
|
||||||
|
|
||||||
|
void draw(glm::mat4 viewProjMatrix);
|
||||||
|
|
||||||
|
void translate(glm::vec3 vector);
|
||||||
|
void rotate(glm::vec3 axis, float radians);
|
||||||
|
|
||||||
|
glm::mat4 getModelMatrix() { return modelMatrix; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
// May be used later...
|
||||||
|
uint32_t id;
|
||||||
|
|
||||||
|
glm::vec3 position = glm::vec3(0.0f, 0.0f, 0.0f);
|
||||||
|
glm::vec3 orientation = glm::vec3(0.0f, 1.0f, 0.0f);
|
||||||
|
glm::vec3 velocity = glm::vec3(0.0f, 0.0f, 0.0f);
|
||||||
|
|
||||||
|
Model *model;
|
||||||
|
|
||||||
|
glm::mat4 modelMatrix = glm::mat4(1.0f);
|
||||||
|
|
||||||
|
ShaderProgram* shaderProgram;
|
||||||
|
|
||||||
|
};
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
#include "Mesh.h"
|
#include "Mesh.h"
|
||||||
|
|
||||||
Mesh::Mesh(std::vector<Vertex> vertices, std::vector<uint32_t> indices, std::vector<Texture*> textures)
|
Mesh::Mesh(std::vector<Vertex> vertices, std::vector<uint32_t> indices, std::vector<Texture*> textures)
|
||||||
: vertices(vertices),
|
: numElements(indices.size()),
|
||||||
indices(indices),
|
|
||||||
textures(textures),
|
textures(textures),
|
||||||
vertexBuffer(static_cast<void*>(vertices.data()), static_cast<void*>(indices.data()), vertices.size(), indices.size()) {
|
vertexBuffer(static_cast<void*>(vertices.data()), static_cast<void*>(indices.data()), vertices.size(), indices.size()) {
|
||||||
|
|
||||||
|
// Empty...
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mesh::draw(ShaderProgram *shaderProgram) {
|
void Mesh::draw(ShaderProgram *shaderProgram) {
|
||||||
|
|
||||||
uint8_t typeNumberCount[TEXTURE_TYPE_NUM_ITEMS] {0};
|
uint8_t typeNumberCount[TEXTURE_TYPE_NUM_ITEMS] {0};
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
// Bind all textures in order to its texture unit
|
// Bind all textures in order to its texture unit
|
||||||
for(auto it = textures.begin(); it != textures.end(); it++) {
|
for(auto it = textures.begin(); it != textures.end(); it++) {
|
||||||
int i = it - textures.begin();
|
int i = it - textures.begin();
|
||||||
@@ -26,7 +26,7 @@ void Mesh::draw(ShaderProgram *shaderProgram) {
|
|||||||
|
|
||||||
// Draw elements
|
// Draw elements
|
||||||
vertexBuffer.bind();
|
vertexBuffer.bind();
|
||||||
glDrawElements(GL_TRIANGLES, indices.size(), GL_UNSIGNED_INT, 0);
|
glDrawElements(GL_TRIANGLES, numElements, GL_UNSIGNED_INT, 0);
|
||||||
vertexBuffer.unbind();
|
vertexBuffer.unbind();
|
||||||
|
|
||||||
// Unbind all textures
|
// Unbind all textures
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::vector<Vertex> vertices;
|
uint32_t numElements;
|
||||||
std::vector<uint32_t> indices;
|
|
||||||
std::vector<Texture*> textures;
|
std::vector<Texture*> textures;
|
||||||
|
|
||||||
VertexBuffer vertexBuffer;
|
VertexBuffer vertexBuffer;
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
Model::Model(const char* pathToModel) {
|
Model::Model(const char* pathToModel) {
|
||||||
|
// Todo: check if model isn't already loaded --> will boost startup time drastically
|
||||||
|
// actually all models should be loaded at startup and only a handle should be given to the entites...
|
||||||
loadModel(pathToModel);
|
loadModel(pathToModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,7 +130,7 @@ std::vector<Texture*> Model::loadMaterialTextures(aiMaterial *mat, aiTextureType
|
|||||||
Texture *texture = new Texture(currentPath.c_str(), textureType);
|
Texture *texture = new Texture(currentPath.c_str(), textureType);
|
||||||
loadedTextures.push_back(texture);
|
loadedTextures.push_back(texture);
|
||||||
|
|
||||||
// Add newest texture pointer to the mesh's texture vector
|
// Add newest texture pointer to the mesh's texture-pointer vector
|
||||||
Texture *new_tex = loadedTextures.back();
|
Texture *new_tex = loadedTextures.back();
|
||||||
textures.push_back(new_tex);
|
textures.push_back(new_tex);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,11 @@ void ShaderProgram::setUniform(const char *name, float value) const {
|
|||||||
glUniform1f(location, value);
|
glUniform1f(location, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ShaderProgram::setUniform(const char *name, glm::vec3 vector) const {
|
||||||
|
GLint location = glGetUniformLocation(shaderProgramId, name);
|
||||||
|
glUniform3f(location, vector.x, vector.y, vector.z);
|
||||||
|
}
|
||||||
|
|
||||||
void ShaderProgram::setUniform(const char *name, glm::mat4 matrix) const {
|
void ShaderProgram::setUniform(const char *name, glm::mat4 matrix) const {
|
||||||
GLint location = glGetUniformLocation(shaderProgramId, name);
|
GLint location = glGetUniformLocation(shaderProgramId, name);
|
||||||
glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(matrix));
|
glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(matrix));
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public:
|
|||||||
void setUniform(const char *name, bool value) const;
|
void setUniform(const char *name, bool value) const;
|
||||||
void setUniform(const char *name, int value) const;
|
void setUniform(const char *name, int value) const;
|
||||||
void setUniform(const char *name, float value) const;
|
void setUniform(const char *name, float value) const;
|
||||||
|
void setUniform(const char *name, glm::vec3 vector) const;
|
||||||
void setUniform(const char *name, glm::mat4 matrix) const;
|
void setUniform(const char *name, glm::mat4 matrix) const;
|
||||||
|
|
||||||
GLuint getShaderProgramId() { return shaderProgramId; }
|
GLuint getShaderProgramId() { return shaderProgramId; }
|
||||||
|
|||||||
@@ -28,7 +28,9 @@ Window::Window() {
|
|||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
// Disable mouse cursor
|
// Disable mouse cursor
|
||||||
|
#ifndef _DEBUG
|
||||||
setGrabbedCursor(1);
|
setGrabbedCursor(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
std::cout << "OpenGL version: " << glGetString(GL_VERSION) << std::endl;
|
std::cout << "OpenGL version: " << glGetString(GL_VERSION) << std::endl;
|
||||||
|
|||||||
5
tools/CMakeLists.txt
Normal file
5
tools/CMakeLists.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
project(obj-converter)
|
||||||
|
|
||||||
|
add_executable(obj-converter main.cpp)
|
||||||
|
|
||||||
|
target_link_libraries(obj-converter assimp)
|
||||||
7
tools/main.cpp
Normal file
7
tools/main.cpp
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#include <assimp/Importer.hpp>
|
||||||
|
#include <assimp/scene.h>
|
||||||
|
#include <assimp/postprocess.h>
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user