skunkworks/com/danitheskunk/skunkworks/GLRenderContext.java

67 lines
1.6 KiB
Java

package com.danitheskunk.skunkworks;
import static org.lwjgl.opengl.GL11.*;
public class GLRenderContext implements IRenderContext{
@Override
public void drawRectangle(Recti rect, Color color) {
var tl = rect.getTopLeft();
var tr = rect.getTopRight();
var bl = rect.getBottomLeft();
var br = rect.getBottomRight();
//todo: make work with enabled textures
glColor4f(
color.getR() / 255.0f,
color.getG() / 255.0f,
color.getB() / 255.0f,
color.getA() / 255.0f
);
//counter clockwise triangles
glVertex2i(bl.getX(), bl.getY());
glVertex2i(tr.getX(), tr.getY());
glVertex2i(tl.getX(), tl.getY());
glVertex2i(tr.getX(), tr.getY());
glVertex2i(bl.getX(), bl.getY());
glVertex2i(br.getX(), bl.getY());
}
@Override
public void drawTextureRectangle(Recti rect, ITexture texture) {
drawTextureRectangle(rect, texture, Color.WHITE);
}
@Override
public void drawTextureRectangle(Recti rect, ITexture texture, Color color) {
var tl = rect.getTopLeft();
var tr = rect.getTopRight();
var bl = rect.getBottomLeft();
var br = rect.getBottomRight();
glColor4f(
color.getR() / 255.0f,
color.getG() / 255.0f,
color.getB() / 255.0f,
color.getA() / 255.0f
);
//counter clockwise triangles
glTexCoord2f(0.0f, 1.0f);
glVertex2i(bl.getX(), bl.getY());
glTexCoord2f(1.0f, 0.0f);
glVertex2i(tr.getX(), tr.getY());
glTexCoord2f(0.0f, 0.0f);
glVertex2i(tl.getX(), tl.getY());
glTexCoord2f(1.0f, 0.0f);
glVertex2i(tr.getX(), tr.getY());
glTexCoord2f(0.0f, 1.0f);
glVertex2i(bl.getX(), bl.getY());
glTexCoord2f(1.0f, 1.0f);
glVertex2i(br.getX(), bl.getY());
}
}