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