Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.bearengine.graphics.rendering;
- import org.bearengine.core.Game;
- import org.bearengine.debug.Debug;
- import org.bearengine.graphics.types.Mesh;
- import org.bearengine.graphics.types.RenderModel;
- import org.bearengine.objects.Camera;
- import org.bearengine.objects.GameObject;
- import org.bearengine.objects.Object;
- import org.bearengine.utils.GLError;
- import org.joml.Matrix4d;
- import java.util.HashMap;
- import java.util.Map;
- import static org.lwjgl.opengl.GL11.GL_TRIANGLES;
- import static org.lwjgl.opengl.GL11.GL_UNSIGNED_INT;
- import static org.lwjgl.opengl.GL11.glDrawElements;
- import static org.lwjgl.opengl.GL15.GL_ELEMENT_ARRAY_BUFFER;
- import static org.lwjgl.opengl.GL15.glBindBuffer;
- /**
- * Created by Stuart on 31/05/2016.
- */
- public class Renderer {
- private static Map<String, Mesh> RenderList = new HashMap<>();
- public static void Render(){
- for(Mesh mesh : RenderList.values()){
- mesh.material.GetTexture().Bind();
- mesh.material.shaderProgram.Bind();
- mesh.material.shaderProgram.setUniforms("projection", Camera.Main_Camera.GetProjection());
- mesh.material.shaderProgram.setUniforms("view", Camera.Main_Camera.GetViewMatrix());
- mesh.renderModel.PrepareRender();
- for(Object obj : mesh.renderModel.GetTransforms()) {
- Matrix4d transform = obj.GetTransformMatrix();
- mesh.material.shaderProgram.setUniforms("model", transform);
- GLError.Check("Renderer -> Render() -> One");
- glDrawElements(GL_TRIANGLES, mesh.IndicesCount, GL_UNSIGNED_INT, 0);
- GLError.Check("Renderer -> Render() -> Two");
- }
- }
- }
- public static void RegisterGameObject(GameObject obj){
- if(RenderList.containsKey(obj.getMesh().Mesh_Name)){
- RenderModel model = RenderList.get(obj.getMesh().Mesh_Name).renderModel;
- model.AddTransform(obj);
- }else{
- obj.getMesh().renderModel.AddTransform(obj);
- RenderList.put(obj.getMesh().Mesh_Name, obj.getMesh());
- }
- }
- public static void UnRegisterGameObject(GameObject obj){
- if(obj.getMesh() == null) return;
- if(RenderList.containsKey(obj.getMesh().Mesh_Name)){
- RenderModel model = RenderList.get(obj.getMesh().Mesh_Name).renderModel;
- model.RemoveTransform(obj);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement