added image functions
This commit is contained in:
parent
4583d24c86
commit
46a94c2b92
|
@ -1,10 +1,14 @@
|
||||||
import com.danitheskunk.skunkworks.Engine;
|
import com.danitheskunk.skunkworks.Engine;
|
||||||
import com.danitheskunk.skunkworks.GLWindow;
|
import com.danitheskunk.skunkworks.GLWindow;
|
||||||
|
import com.danitheskunk.skunkworks.Vec2f;
|
||||||
|
import com.danitheskunk.skunkworks.Vec2i;
|
||||||
|
|
||||||
public class Test {
|
public class Test {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
var engine = new Engine();
|
var engine = new Engine();
|
||||||
var window = engine.openWindow(1280, 720, "Skunkworks");
|
var window = engine.openWindow(1280, 720, "Skunkworks");
|
||||||
|
var img = engine.loadImage("C:\\Users\\dani\\Videos\\Screenshot 2022-06-25 17-00-59.png");
|
||||||
|
System.out.println(img.getPixel(new Vec2i(0, 0)));
|
||||||
|
|
||||||
while(!window.shouldClose()) {
|
while(!window.shouldClose()) {
|
||||||
window.tick();
|
window.tick();
|
||||||
|
|
|
@ -1,35 +1,35 @@
|
||||||
package com.danitheskunk.skunkworks;
|
package com.danitheskunk.skunkworks;
|
||||||
|
|
||||||
public final class Color {
|
public final class Color {
|
||||||
final int r, g, b, a;
|
final byte r, g, b, a;
|
||||||
|
|
||||||
public Color(int r, int g, int b) {
|
public Color(byte r, byte g, byte b) {
|
||||||
this.r = r;
|
this.r = r;
|
||||||
this.g = g;
|
this.g = g;
|
||||||
this.b = b;
|
this.b = b;
|
||||||
this.a = 0xff;
|
this.a = (byte)0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Color(int r, int g, int b, int a) {
|
public Color(byte r, byte g, byte b, byte a) {
|
||||||
this.r = r;
|
this.r = r;
|
||||||
this.g = g;
|
this.g = g;
|
||||||
this.b = b;
|
this.b = b;
|
||||||
this.a = a;
|
this.a = a;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getR() {
|
public byte getR() {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getG() {
|
public byte getG() {
|
||||||
return g;
|
return g;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getB() {
|
public byte getB() {
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getA() {
|
public byte getA() {
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,13 +5,35 @@ import org.lwjgl.stb.STBImage;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
public class Image {
|
public class Image {
|
||||||
ByteBuffer data;
|
byte[] data;
|
||||||
int width, height;
|
int width, height;
|
||||||
Image(ByteBuffer buffer) {
|
Image(ByteBuffer buffer) {
|
||||||
//todo: resorce system
|
//todo: resorce system
|
||||||
int[] x = {0}, y = {0}, n = {0};
|
int[] x = {0}, y = {0}, n = {0};
|
||||||
data = STBImage.stbi_load(buffer, x, y, n, 4);
|
data = STBImage.stbi_load(buffer, x, y, n, 4).array();
|
||||||
width = x[0];
|
width = x[0];
|
||||||
height = y[0];
|
height = y[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public byte[] getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Color getPixel(Vec2i pos) {
|
||||||
|
int i = pos.getX() * 4 + pos.getY() * 4 * width;
|
||||||
|
return new Color(
|
||||||
|
data[i + 0],
|
||||||
|
data[i + 1],
|
||||||
|
data[i + 2],
|
||||||
|
data[i + 3]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPixel(Vec2i pos, Color col) {
|
||||||
|
int i = pos.getX() * 4 + pos.getY() * 4 * width;
|
||||||
|
data[i + 0] = col.r;
|
||||||
|
data[i + 1] = col.g;
|
||||||
|
data[i + 2] = col.b;
|
||||||
|
data[i + 3] = col.a;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue