Added a prepare step to the renderer , removed transform object and GPUBucket object, Added a mesh to the Render3DComponent
The renderer prepare uploads the necessary vertex data to the GPU
This commit is contained in:
@ -12,9 +12,7 @@
|
||||
* Define globals
|
||||
*/
|
||||
Scene scene;
|
||||
VertexArray va = VertexArray();
|
||||
GpuBuffer vertexBuffer = GpuBuffer();
|
||||
GpuBuffer elementBuffer = GpuBuffer();
|
||||
|
||||
BarinkEngine::Renderable* renderable;
|
||||
BarinkEngine::SceneObject* object;
|
||||
Entity cube;
|
||||
@ -28,35 +26,12 @@ void Start() {
|
||||
auto& render3DComponent = cube.AddComponent<BarinkEngine::Render3DComponent>();
|
||||
auto importer = BarinkEngine::ModelImporter();
|
||||
|
||||
va.Create();
|
||||
va.Bind();
|
||||
|
||||
object = importer.Import("build/Debug/Models/Cube.obj");
|
||||
renderable = object->renderable;
|
||||
render3DComponent.ElementCount = static_cast<unsigned int>(renderable->mesh->elements.size());
|
||||
|
||||
vertexBuffer.createBuffer();
|
||||
vertexBuffer.Bind(false);
|
||||
vertexBuffer.setBufferData((void*)&renderable->mesh->vertices[0], renderable->mesh->vertices.size() * sizeof(BarinkEngine::Vertex), false);
|
||||
|
||||
elementBuffer.createBuffer();
|
||||
elementBuffer.Bind(true);
|
||||
elementBuffer.setBufferData((void*)&renderable->mesh->elements[0], renderable->mesh->elements.size() * sizeof(unsigned int), true);
|
||||
render3DComponent.mesh = *renderable->mesh;
|
||||
|
||||
va.AttachAttribute(0, 3, sizeof(BarinkEngine::Vertex));
|
||||
|
||||
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(BarinkEngine::Vertex), (void*)0);
|
||||
glEnableVertexAttribArray(0);
|
||||
glEnableVertexAttribArray(1);
|
||||
|
||||
va.Unbind();
|
||||
vertexBuffer.Unbind(false);
|
||||
elementBuffer.Unbind(true);
|
||||
|
||||
render3DComponent.VAO = va.getID();
|
||||
render3DComponent.IBO = elementBuffer.getBufferID();
|
||||
render3DComponent.color = glm::vec3(1.0f, 0.0f, 0.0f);
|
||||
std::cout << render3DComponent.ElementCount << std::endl;
|
||||
renderer.Prepare(scene);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user