Refactoring
This commit is contained in:
parent
1498f4e21e
commit
9b1b3a5c97
24 changed files with 124 additions and 13 deletions
|
@ -6,7 +6,7 @@
|
||||||
- Maths libraries (Vector 2,3 and 4, Quaternion, Transform and Matrix4f)
|
- Maths libraries (Vector 2,3 and 4, Quaternion, Transform and Matrix4f)
|
||||||
- Window manager
|
- Window manager
|
||||||
- Input manager with SDL_event
|
- Input manager with SDL_event
|
||||||
- Multiple renderer (VAO,VBO,DisplayList and Direct Rendering) [coming soon]
|
- Multiple renderer (VAO,VBO)
|
||||||
- Texture
|
- Texture
|
||||||
- Network TCP [coming soon]
|
- Network TCP [coming soon]
|
||||||
- Network UDP [coming soon]
|
- Network UDP [coming soon]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "window.h"
|
#include "display/window.h"
|
||||||
#include "audio.h"
|
#include "audio/audio.h"
|
||||||
#include "renderer.h"
|
#include "render/renderer.h"
|
||||||
|
|
||||||
void event(SDL_Event e){
|
void event(SDL_Event e){
|
||||||
switch( e.type ){
|
switch( e.type ){
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
#include "physics.h"
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#ifndef PHYSICS_H
|
|
||||||
#define PHYSICS_H
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,7 +1,8 @@
|
||||||
#ifndef RENDERER_H
|
#ifndef RENDERER_H
|
||||||
#define RENDERER_H
|
#define RENDERER_H
|
||||||
|
|
||||||
#include "math.h"
|
#include "../math/math.h"
|
||||||
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -25,6 +26,43 @@ bool fileExists(const std::string&);
|
||||||
class Shader;
|
class Shader;
|
||||||
class Texture;
|
class Texture;
|
||||||
class Image;
|
class Image;
|
||||||
|
class VBO;
|
||||||
|
class VAO;
|
||||||
|
|
||||||
|
|
||||||
|
class VAO{
|
||||||
|
public:
|
||||||
|
static const int VERTEX_DATA = 0,COLOR_DATA = 1,TEX_COORD_DATA = 2,NORMAL_DATA = 3;
|
||||||
|
std::vector<VBO*> data;
|
||||||
|
GLuint id;
|
||||||
|
GLuint typeRender;
|
||||||
|
|
||||||
|
VAO(GLuint);
|
||||||
|
~VAO();
|
||||||
|
void addData(int,float*,int);
|
||||||
|
void bufferData();
|
||||||
|
void render2D();
|
||||||
|
void render3D();
|
||||||
|
};
|
||||||
|
|
||||||
|
class VBO{
|
||||||
|
|
||||||
|
public:
|
||||||
|
GLuint id;
|
||||||
|
GLuint typeRender;
|
||||||
|
std::vector<float> data;
|
||||||
|
int size;
|
||||||
|
|
||||||
|
VBO();
|
||||||
|
VBO(GLuint);
|
||||||
|
~VBO();
|
||||||
|
void addData(float*,int);
|
||||||
|
void bufferData();
|
||||||
|
void render2D();
|
||||||
|
void render3D();
|
||||||
|
void bindBuffer();
|
||||||
|
void unBindBuffer();
|
||||||
|
};
|
||||||
|
|
||||||
class Image{
|
class Image{
|
||||||
public:
|
public:
|
34
src/render/vao.cpp
Normal file
34
src/render/vao.cpp
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#include "renderer.h"
|
||||||
|
|
||||||
|
VAO::VAO(GLuint typeRender){
|
||||||
|
this->typeRender = typeRender;
|
||||||
|
this->data.push_back(new VBO(typeRender));
|
||||||
|
this->data.push_back(new VBO(typeRender));
|
||||||
|
this->data.push_back(new VBO(typeRender));
|
||||||
|
this->data.push_back(new VBO(typeRender));
|
||||||
|
}
|
||||||
|
|
||||||
|
VAO::~VAO(){
|
||||||
|
for(int i = 0;i < 4;i++){
|
||||||
|
delete this->data[i];
|
||||||
|
}
|
||||||
|
this->data.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VAO::addData(int type,float* data,int size){
|
||||||
|
this->data[type]->addData(data,size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VAO::bufferData(){
|
||||||
|
for(int i = 0;i < 4;i++){
|
||||||
|
this->data[i]->bufferData();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void VAO::render2D(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void VAO::render3D(){
|
||||||
|
|
||||||
|
}
|
47
src/render/vbo.cpp
Normal file
47
src/render/vbo.cpp
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#include "renderer.h"
|
||||||
|
|
||||||
|
VBO::VBO(){
|
||||||
|
this->typeRender = GL_TRIANGLE_STRIP;
|
||||||
|
glGenBuffers(1,&this->id);
|
||||||
|
this->size = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
VBO::VBO(GLuint typeRender){
|
||||||
|
this->typeRender = typeRender;
|
||||||
|
glGenBuffers(1,&this->id);
|
||||||
|
this->size = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
VBO::~VBO(){
|
||||||
|
this->data.clear();
|
||||||
|
glDeleteBuffers(1,&this->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VBO::addData(float* data,int size){
|
||||||
|
for(int i = 0;i < size;i++){
|
||||||
|
this->data.push_back(data[i]);
|
||||||
|
}
|
||||||
|
this->size += size;
|
||||||
|
}
|
||||||
|
|
||||||
|
void VBO::bufferData(){
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER,this->id);
|
||||||
|
glBufferData(GL_ARRAY_BUFFER, this->size,&this->data[0], GL_STATIC_DRAW);
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VBO::bindBuffer(){
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER,this->id);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VBO::unBindBuffer(){
|
||||||
|
glBindBuffer(GL_ARRAY_BUFFER,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void VBO::render2D(){
|
||||||
|
// Plus tard pas besoin pour l instant
|
||||||
|
}
|
||||||
|
|
||||||
|
void VBO::render3D(){
|
||||||
|
// Plus tard pas besoin pour l instant
|
||||||
|
}
|
Reference in a new issue