e71c4d55cf
- Create cbt_opengl static library for OpenGL abstraction - Create cbt_scene static library for base scene class - Create scenes_cube static library for cube scene - Move scene base to cbt/ (utility), scenes to root scenes/ - Link libraries in dependency chain: cuber -> scenes -> cbt_scene -> cbt_opengl
35 lines
645 B
C++
35 lines
645 B
C++
#pragma once
|
|
|
|
#include "cbt/scene.hpp"
|
|
|
|
#include "cbt/opengl/shader.hpp"
|
|
#include "cbt/opengl/buffer.hpp"
|
|
#include "cbt/opengl/vao.hpp"
|
|
|
|
#include <glm/glm.hpp>
|
|
|
|
namespace cbt::scenes {
|
|
|
|
class cube final : public scene {
|
|
opengl::shader m_prog;
|
|
opengl::buffer m_vbo;
|
|
opengl::vao m_vao;
|
|
|
|
GLint m_loc_proj = -1;
|
|
GLint m_loc_view = -1;
|
|
GLint m_loc_model = -1;
|
|
|
|
std::chrono::steady_clock::time_point m_start;
|
|
|
|
auto build_mesh() -> void;
|
|
auto build_shader() -> bool;
|
|
|
|
public:
|
|
cube();
|
|
auto init() -> bool override;
|
|
auto update(float delta_time) -> void override;
|
|
auto render() -> void override;
|
|
};
|
|
|
|
}
|