writing a bunch of boiler plate so i can like draw stuff to the screen

This commit is contained in:
0x01fe committed 2024-09-22 23:05:18 -05:00
1 parent b295c1f57e
commit b154776905
4 files changed
+94 -19

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
package org.example;
import com.mokiat.data.front.parser.IOBJParser;
import com.mokiat.data.front.parser.OBJModel;
import com.mokiat.data.front.parser.OBJParser;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.Scanner;
public class Entity
{
OBJModel model;
ShaderProgram shader;
public Entity(String object_file_path, String fragment_shader_path, String vertex_shader_path)
{
// Load Object
try (InputStream in = this.getClass().getResourceAsStream(object_file_path)) {
// Create an OBJParser and parse the resource
final IOBJParser parser = new OBJParser();
this.model = parser.parse(in);
// Use the model representation to get some basic info
System.out.println(MessageFormat.format(
"OBJ model has {0} vertices, {1} normals, {2} texture coordinates, and {3} objects.",
model.getVertices().size(),
model.getNormals().size(),
model.getTexCoords().size(),
model.getObjects().size()));
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
// Load Shaders
try {
this.shader = new ShaderProgram();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
try {
String vertex_shader_code = new Scanner(new File(vertex_shader_path)).useDelimiter("\\Z").next();
this.shader.createVertexShader(vertex_shader_code);
} catch (Exception e) {
System.out.println("ERROR Initializing the vertex shader");
e.printStackTrace();
}
try {
String fragment_shader_code = new Scanner(new File(fragment_shader_path)).useDelimiter("\\Z").next();
this.shader.createFragmentShader(fragment_shader_code);
} catch (Exception e)
{
System.out.println("ERROR Initializing the fragment shader");
e.printStackTrace();
}
}
}
+8 -19
View File
@@ -88,32 +88,21 @@ public class Game
// Make the window visible
glfwShowWindow(window);
// Load Objects
try (InputStream in = this.getClass().getResourceAsStream("/objs/cube.obj")) {
// Create an OBJParser and parse the resource
final IOBJParser parser = new OBJParser();
final OBJModel model = parser.parse(in);
// Use the model representation to get some basic info
System.out.println(MessageFormat.format(
"OBJ model has {0} vertices, {1} normals, {2} texture coordinates, and {3} objects.",
model.getVertices().size(),
model.getNormals().size(),
model.getTexCoords().size(),
model.getObjects().size()));
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
private void loop()
{
GL.createCapabilities();
// Setup world
World world = new World();
// Add stuff to world
world.addEntity(new Entity("/obs/cube.obj", "/shaders/shader.fraq", "/shaders/shader.vert"));
// Do open gl stuff
GL.createCapabilities();
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
// Main loop or something
while ( !glfwWindowShouldClose(window) )
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -77,4 +77,7 @@ public class ShaderProgram {
glDeleteProgram(programId);
}
}
// Set stuff
}
+19
View File
@@ -0,0 +1,19 @@
package org.example;
import java.util.ArrayList;
public class World
{
ArrayList<Entity> entities;
public World()
{
this.entities = new ArrayList<>();
}
public void addEntity(Entity e)
{
this.entities.add(e);
}
}