skunkworks/com/danitheskunk/skunkworks/backends/gl/RenderContext3D.java

42 lines
1.2 KiB
Java

package com.danitheskunk.skunkworks.backends.gl;
import com.danitheskunk.skunkworks.Vec3f;
import com.danitheskunk.skunkworks.gfx.threedee.BaseRenderContext3D;
import com.danitheskunk.skunkworks.gfx.threedee.Mesh;
import static org.lwjgl.opengl.GL46.*;
public class RenderContext3D extends BaseRenderContext3D {
@Override
public void renderTriangle(Vec3f p1, Vec3f p2, Vec3f p3) {
glBegin(GL_TRIANGLES);
glVertex3d(p1.getX(), p1.getY(), p1.getZ());
glVertex3d(p2.getX(), p2.getY(), p2.getZ());
glVertex3d(p3.getX(), p3.getY(), p3.getZ());
/*
glVertex3f((float) p1.getX(), (float) p1.getY(), (float) p1.getZ());
glVertex3f((float) p2.getX(), (float) p2.getY(), (float) p2.getZ());
glVertex3f((float) p3.getX(), (float) p3.getY(), (float) p3.getZ());
*/
glEnd();
}
@Override
public void renderMesh(Mesh mesh) {
glBegin(GL_TRIANGLES);
for(int i = 0; i < mesh.getTriangleCount(); ++i) {
var tri = mesh.getTriangle(i);
var p1 = mesh.getVertex(tri.getX());
var p2 = mesh.getVertex(tri.getY());
var p3 = mesh.getVertex(tri.getZ());
glVertex3d(p1.getX(), p1.getY(), p1.getZ());
glVertex3d(p2.getX(), p2.getY(), p2.getZ());
glVertex3d(p3.getX(), p3.getY(), p3.getZ());
}
glEnd();
}
}