66 lines
1.5 KiB
C++
66 lines
1.5 KiB
C++
// This only works with opengl!!!!
|
|
|
|
|
|
#include "Archimedes.h"
|
|
|
|
|
|
#include "modules/WindowModule/WindowModule.h"
|
|
|
|
#define GLEW_STATIC
|
|
#include <GL/glew.h>
|
|
|
|
|
|
class TestTriangle : public Archimedes::Module {
|
|
|
|
public:
|
|
TestTriangle(Archimedes::App*, void*);
|
|
|
|
TestTriangle() { name = "TestTriangle"; }
|
|
|
|
~TestTriangle();
|
|
|
|
void onLoad() override;
|
|
|
|
void run() override;
|
|
|
|
bool onEvent(const Archimedes::Event& e) override;
|
|
|
|
private:
|
|
|
|
Archimedes::Window* window;
|
|
|
|
const char *vertexShaderSource = "#version 330 core\n"
|
|
"layout (location = 0) in vec3 aPos;\n"
|
|
"void main()\n"
|
|
"{\n"
|
|
" gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
|
|
"}\0";
|
|
const char *fragmentShaderSource = "#version 330 core\n"
|
|
"out vec4 FragColor;\n"
|
|
"void main()\n"
|
|
"{\n"
|
|
" FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n"
|
|
"}\n\0";
|
|
|
|
Archimedes::RenderTarget* rt;
|
|
|
|
float vertices[9] = {
|
|
-0.5f, -0.5f, 0.0f, // left
|
|
0.5f, -0.5f, 0.0f, // right
|
|
0.0f, 0.5f, 0.0f // top
|
|
};
|
|
|
|
unsigned int indices[3] = {
|
|
0, // left
|
|
1, // right
|
|
2 // top
|
|
};
|
|
|
|
unsigned int vao, vbo, ibo, shaderProgram;
|
|
};
|
|
|
|
#ifdef TESTTRIANGLE_DYNAMIC
|
|
typedef TestTriangle mtype;
|
|
#include "endModule.h"
|
|
#endif
|