* WIP change
This commit is contained in:
parent
63dc5ae6b7
commit
d24d5357b8
8 changed files with 133 additions and 0 deletions
35
KKK/game/include/glclasses.h
Normal file
35
KKK/game/include/glclasses.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#pragma once
|
||||
|
||||
#include <epoxy/gl.h>
|
||||
#include <epoxy/glx.h>
|
||||
|
||||
template <GLenum T> class BufferObject {
|
||||
private:
|
||||
GLuint m_name;
|
||||
GLvoid* m_mappointer;
|
||||
protected:
|
||||
public:
|
||||
BufferObject();
|
||||
~BufferObject();
|
||||
void bind();
|
||||
void bind(GLuint index, GLintptr offset = 0, GLsizeiptr size = 0);
|
||||
void fill(GLenum usage, GLsizei size = 0, GLvoid* data = NULL);
|
||||
void subfill(GLintptr offset, GLsizei size, const GLvoid* data);
|
||||
void map(GLenum access);
|
||||
void unmap();
|
||||
};
|
||||
|
||||
typedef BufferObject<GL_ARRAY_BUFFER> VBO;
|
||||
typedef BufferObject<GL_ELEMENT_ARRAY_BUFFER> IBO;
|
||||
|
||||
class VAO {
|
||||
private:
|
||||
int[3] foo;
|
||||
|
||||
protected:
|
||||
public:
|
||||
VAO();
|
||||
~VAO();
|
||||
bind();
|
||||
fill(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride = 0, const GLvoid* pointer = NULL);
|
||||
}
|
||||
12
KKK/game/include/renderer.h
Normal file
12
KKK/game/include/renderer.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#pragma once
|
||||
|
||||
#include <epoxy/gl.h>
|
||||
#include <epoxy/glx.h>
|
||||
|
||||
class Renderer {
|
||||
private:
|
||||
protected:
|
||||
public:
|
||||
Renderer();
|
||||
~Renderer();
|
||||
};
|
||||
|
|
@ -1,10 +1,20 @@
|
|||
#pragma once
|
||||
|
||||
#include <math.h>
|
||||
|
||||
struct Vec2d
|
||||
{
|
||||
double x;
|
||||
double y;
|
||||
|
||||
double length() {
|
||||
return sqrt(x*x + y*y);
|
||||
}
|
||||
double distance(Vec2d other) {
|
||||
Vec2d tmp = (*this - other);
|
||||
return tmp.length();
|
||||
}
|
||||
|
||||
Vec2d & operator+=(const Vec2d& rhs) {
|
||||
x+=rhs.x;
|
||||
y+=rhs.y;
|
||||
|
|
@ -49,3 +59,31 @@ struct Vec2d
|
|||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
struct Mat4d {
|
||||
std::array<double, 16> data;
|
||||
|
||||
const Mat4d operator*(const Mat4d& rhs) const {
|
||||
Mat4d result;
|
||||
result[0] = result[0]*rhs[0] + result[1]*result[5] + result[2]*result[9] + result[3]*result[13];
|
||||
result[1] = result[0]*rhs[1] + result[1]*result[6] + result[2]*result[10] + result[3]*result[14];
|
||||
result[2] = result[0]*rhs[2] + result[1]*result[7] + result[2]*result[11] + result[3]*result[15];
|
||||
result[3] = result[0]*rhs[3] + result[1]*result[8] + result[2]*result[12] + result[3]*result[16];
|
||||
|
||||
result[4] = result[4]*rhs[0] + result[5]*result[5] + result[6]*result[9] + result[7]*result[13];
|
||||
result[5] = result[4]*rhs[1] + result[5]*result[6] + result[6]*result[10] + result[7]*result[14];
|
||||
result[6] = result[4]*rhs[2] + result[5]*result[7] + result[6]*result[11] + result[7]*result[15];
|
||||
result[7] = result[4]*rhs[3] + result[5]*result[8] + result[6]*result[12] + result[7]*result[16];
|
||||
|
||||
result[8] = result[8]*rhs[0] + result[9]*result[5] + result[10]*result[9] + result[11]*result[13];
|
||||
result[9] = result[8]*rhs[1] + result[9]*result[6] + result[10]*result[10] + result[11]*result[14];
|
||||
result[10] = result[8]*rhs[2] + result[9]*result[7] + result[10]*result[11] + result[11]*result[15];
|
||||
result[11] = result[8]*rhs[3] + result[9]*result[8] + result[10]*result[12] + result[11]*result[16];
|
||||
|
||||
result[12] = result[12]*rhs[0] + result[13]*result[5] + result[14]*result[9] + result[15]*result[13];
|
||||
result[13] = result[12]*rhs[1] + result[13]*result[6] + result[14]*result[10] + result[15]*result[14];
|
||||
result[14] = result[12]*rhs[2] + result[13]*result[7] + result[14]*result[11] + result[15]*result[15];
|
||||
result[15] = result[12]*rhs[3] + result[13]*result[8] + result[14]*result[12] + result[15]*result[16];
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue