From 5a86179376ba753c7b3938b7bf484b1ed0f6784f Mon Sep 17 00:00:00 2001 From: Nic0Nic0Nii Date: Wed, 24 Nov 2021 04:54:45 +0000 Subject: [PATCH] Setup Texture ID system. Co-authored-by: sigonasr2 --- src/sig/Panel.java | 17 +-- src/sig/RenderKernel.java | 45 +++---- src/sig/SigKeeper.java | 57 ++++---- src/sig/TextureType.java | 269 ++++++++++++++++++++++++++++++++++++++ src/sig/Triangle.java | 6 +- 5 files changed, 327 insertions(+), 67 deletions(-) create mode 100644 src/sig/TextureType.java diff --git a/src/sig/Panel.java b/src/sig/Panel.java index ecd05a8..f008565 100644 --- a/src/sig/Panel.java +++ b/src/sig/Panel.java @@ -12,11 +12,10 @@ import java.awt.Image; import java.awt.image.MemoryImageSource; import java.awt.Toolkit; -public class Panel extends JPanel implements Runnable { +public class Panel extends JPanel{ long startTime = System.nanoTime(); long endTime = System.nanoTime(); private ColorModel cm; - private Thread thread; public int width=SigKeeper.SCREEN_WIDTH; public int height=SigKeeper.SCREEN_HEIGHT; private Image imageBuffer; @@ -29,7 +28,6 @@ public class Panel extends JPanel implements Runnable { public Panel() { super(true); - thread = new Thread(this, "Panel Thread"); } protected static ColorModel getCompatibleColorModel(){ @@ -40,7 +38,7 @@ public class Panel extends JPanel implements Runnable { } public void init(){ - triPoints = new float[21*SigKeeper.MAX_TRIANGLE_COUNT]; + triPoints = new float[22*SigKeeper.MAX_TRIANGLE_COUNT]; cm = getCompatibleColorModel(); width = getWidth(); height = getHeight(); @@ -57,9 +55,6 @@ public class Panel extends JPanel implements Runnable { renderer = new RenderKernel(pixel,triPoints,SigKeeper.texData,SigKeeper.SCREEN_WIDTH,SigKeeper.SCREEN_HEIGHT,256,256,depthBuffer); renderer.setExplicit(true); imageBuffer = Toolkit.getDefaultToolkit().createImage(mImageProducer); - if(thread.isInterrupted() || !thread.isAlive()){ - thread.start(); - } //renderer.setExplicit(true); //renderer.put(pixel); } @@ -105,12 +100,4 @@ public class Panel extends JPanel implements Runnable { public boolean imageUpdate(Image image, int a, int b, int c, int d, int e) { return true; } - @Override - public void run() { - while (true) { - // request a JPanel re-drawing - repaint(); - try {Thread.sleep(5);} catch (InterruptedException e) {} - } - } } \ No newline at end of file diff --git a/src/sig/RenderKernel.java b/src/sig/RenderKernel.java index 5bec47e..9f99d13 100644 --- a/src/sig/RenderKernel.java +++ b/src/sig/RenderKernel.java @@ -30,32 +30,33 @@ public class RenderKernel extends Kernel{ transformedTris[i]=tris[i]; } int id = getGlobalId(); - float x1=transformedTris[id*21+0]; - float y1=transformedTris[id*21+1]; - float z1=transformedTris[id*21+2]; - float w1=transformedTris[id*21+3]; - float x2=transformedTris[id*21+4]; - float y2=transformedTris[id*21+5]; - float z2=transformedTris[id*21+6]; - float w2=transformedTris[id*21+7]; - float x3=transformedTris[id*21+8]; - float y3=transformedTris[id*21+9]; - float z3=transformedTris[id*21+10]; - float w3=transformedTris[id*21+11]; - float Tu=transformedTris[id*21+12]; - float Tv=transformedTris[id*21+13]; - float Tw=transformedTris[id*21+14]; - float Uu=transformedTris[id*21+15]; - float Uv=transformedTris[id*21+16]; - float Uw=transformedTris[id*21+17]; - float Vu=transformedTris[id*21+18]; - float Vv=transformedTris[id*21+19]; - float Vw=transformedTris[id*21+20]; + float x1=transformedTris[id*22+0]; + float y1=transformedTris[id*22+1]; + float z1=transformedTris[id*22+2]; + float w1=transformedTris[id*22+3]; + float x2=transformedTris[id*22+4]; + float y2=transformedTris[id*22+5]; + float z2=transformedTris[id*22+6]; + float w2=transformedTris[id*22+7]; + float x3=transformedTris[id*22+8]; + float y3=transformedTris[id*22+9]; + float z3=transformedTris[id*22+10]; + float w3=transformedTris[id*22+11]; + float Tu=transformedTris[id*22+12]; + float Tv=transformedTris[id*22+13]; + float Tw=transformedTris[id*22+14]; + float Uu=transformedTris[id*22+15]; + float Uv=transformedTris[id*22+16]; + float Uw=transformedTris[id*22+17]; + float Vu=transformedTris[id*22+18]; + float Vv=transformedTris[id*22+19]; + float Vw=transformedTris[id*22+20]; + int tex=(int)transformedTris[id*22+21]; TexturedTriangle( (int)x1,(int)y1,Tu,Tv,Tw, (int)x2,(int)y2,Uu,Uv,Uw, (int)x3,(int)y3,Vu,Vv,Vw, - getGlobalId()%256,1f); + tex,1f); } int getTextureColor(int tex_id,float u,float v,float colorMult) { diff --git a/src/sig/SigKeeper.java b/src/sig/SigKeeper.java index c6bab3a..887083c 100644 --- a/src/sig/SigKeeper.java +++ b/src/sig/SigKeeper.java @@ -75,7 +75,7 @@ public class SigKeeper implements WindowFocusListener,KeyListener,MouseListener, frame.setVisible(true); panel.init(); - for (int i=0;i