clean up
This commit is contained in:
parent
a0a40f1d04
commit
5d96d6905f
16 changed files with 19 additions and 18 deletions
|
|
@ -8,11 +8,11 @@ set(BINDINGS_LIBS glfw Imgui)
|
|||
file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp")
|
||||
file(GLOB HEADERS "./public/*.hpp" "./public/*/*.hpp")
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})
|
||||
add_library(${PROJECT_NAME} INTERFACE ${HEADERS})
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC ./public/ ${BINDINGS_INCLUDE} ./ext/)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC Graphics Connection Widgets Math RasterRender 3DScene)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${BINDINGS_LIBS})
|
||||
target_include_directories(${PROJECT_NAME} INTERFACE ./public/ ${BINDINGS_INCLUDE} ./ext/)
|
||||
target_link_libraries(${PROJECT_NAME} INTERFACE Graphics Connection Widgets Math RasterRender)
|
||||
target_link_libraries(${PROJECT_NAME} INTERFACE ${BINDINGS_LIBS})
|
||||
|
||||
### -------------------------- Applications -------------------------- ###
|
||||
file(GLOB APP_SOURCES "./applications/*.cpp")
|
||||
|
|
|
|||
|
|
@ -1,61 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include "Scene.hpp"
|
||||
#include "GraphicsApi.hpp"
|
||||
|
||||
namespace tp {
|
||||
|
||||
class ObjectBuffers : public GPUBuffers {
|
||||
public:
|
||||
ObjectBuffers(Object* object) {
|
||||
mObject = (object);
|
||||
|
||||
auto& buff = mObject->mTopology.Points;
|
||||
auto& indices = mObject->mTopology.Indexes;
|
||||
|
||||
glGenVertexArrays(1, &VAO);
|
||||
glGenBuffers(1, &VBO);
|
||||
glGenBuffers(1, &EBO);
|
||||
|
||||
glBindVertexArray(VAO);
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(Vec3F) * buff.size(), buff.getBuff(), GL_STATIC_DRAW);
|
||||
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(Vec3<uhalni>) * indices.size(), indices.getBuff(), GL_STATIC_DRAW);
|
||||
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), nullptr);
|
||||
glEnableVertexAttribArray(0);
|
||||
|
||||
// glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
glBindVertexArray(0);
|
||||
}
|
||||
|
||||
Object* mObject = nullptr;
|
||||
|
||||
GLuint VAO = 0;
|
||||
GLuint VBO = 0;
|
||||
GLuint EBO = 0;
|
||||
|
||||
void drawCall() override {
|
||||
auto& indices = mObject->mTopology.Indexes;
|
||||
|
||||
glBindVertexArray(VAO);
|
||||
|
||||
// glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||
glDrawElements(GL_TRIANGLES, indices.size() * 3, GL_UNSIGNED_INT, nullptr);
|
||||
|
||||
// glDrawArrays(GL_TRIANGLES, 0, sizeof(buffer) / (2 * sizeof(float)));
|
||||
|
||||
// glBindVertexArray(0);
|
||||
}
|
||||
|
||||
~ObjectBuffers() {
|
||||
glDeleteBuffers(1, &VBO);
|
||||
glDeleteVertexArrays(1, &VAO);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
#include "Render.hpp"
|
||||
#include "GPUBuffers.hpp"
|
||||
|
||||
using namespace tp;
|
||||
|
||||
Render::Render(Vec2F renderResolution) :
|
||||
mRenderBuffer(renderResolution) {
|
||||
|
||||
mDefaultShader.load("rsc/shaders/default.vert", nullptr, "rsc/shaders/default.frag", true);
|
||||
}
|
||||
|
||||
Render::~Render() {}
|
||||
|
||||
uint4 Render::getRenderBufferID() { return mRenderBuffer.texId(); }
|
||||
|
||||
Vec2F Render::getBufferSize() { return mRenderBuffer.getSize(); }
|
||||
|
||||
void Render::render(const Scene& geometry, Vec2F size) {
|
||||
|
||||
for (auto object : geometry.mObjects) {
|
||||
if (!object->mGUPBuffers) {
|
||||
object->mGUPBuffers = new ObjectBuffers(&object.data());
|
||||
}
|
||||
}
|
||||
|
||||
mRenderBuffer.mClearCol = { 0.0f, 0.0f, 0.0f, 1.f };
|
||||
|
||||
mRenderBuffer.beginDraw();
|
||||
mRenderBuffer.clear();
|
||||
|
||||
mDefaultShader.bind();
|
||||
|
||||
Mat4F cameraMat = geometry.mCamera.calculateTransformationMatrix();
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
for (auto object : geometry.mObjects) {
|
||||
|
||||
static auto origin = (GLint) mDefaultShader.getu("Origin");
|
||||
static auto basis = (GLint) mDefaultShader.getu("Basis");
|
||||
static auto camera = (GLint) mDefaultShader.getu("Camera");
|
||||
|
||||
Mat4F basisMat;
|
||||
Vec4F originPoint;
|
||||
|
||||
glUniform4fv(origin, 1, &originPoint[0]);
|
||||
glUniformMatrix4fv(basis, 1, false, &basisMat[0][0]);
|
||||
glUniformMatrix4fv(camera, 1, true, &cameraMat[0][0]);
|
||||
|
||||
object->mGUPBuffers->drawCall();
|
||||
}
|
||||
|
||||
mDefaultShader.unbind();
|
||||
|
||||
mRenderBuffer.endDraw();
|
||||
}
|
||||
|
||||
RenderBuffer* Render::getRenderBuffer() { return &mRenderBuffer; }
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#include "Widgets.hpp"
|
||||
#include "Render.hpp"
|
||||
#include "RasterRender.hpp"
|
||||
|
||||
namespace tp {
|
||||
|
||||
|
|
@ -28,8 +28,9 @@ namespace tp {
|
|||
}
|
||||
|
||||
public:
|
||||
Render mRender;
|
||||
RasterRender mRender;
|
||||
Scene* mScene = nullptr;
|
||||
|
||||
Canvas* mCanvas = nullptr;
|
||||
Canvas::ImageHandle mImage;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include "Scene.hpp"
|
||||
#include "Rect.hpp"
|
||||
|
||||
#include "FrameBuffer.hpp"
|
||||
#include "Shader.hpp"
|
||||
|
||||
namespace tp {
|
||||
class Render {
|
||||
public:
|
||||
explicit Render(Vec2F renderResolution);
|
||||
~Render();
|
||||
|
||||
void render(const Scene& geometry, Vec2F size);
|
||||
uint4 getRenderBufferID();
|
||||
RenderBuffer* getRenderBuffer();
|
||||
Vec2F getBufferSize();
|
||||
|
||||
private:
|
||||
RenderBuffer mRenderBuffer;
|
||||
RenderShader mDefaultShader;
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue