Added configuration testing.

main
Joshua Sigona 3 years ago
parent 4b6c012c49
commit f4c07e505c
  1. 25
      src/sig/Panel.java
  2. 6
      src/sig/RenderKernel.java
  3. 27
      src/sig/SigKeeper.java

@ -22,7 +22,7 @@ public class Panel extends JPanel implements Runnable {
private Image imageBuffer; private Image imageBuffer;
private MemoryImageSource mImageProducer; private MemoryImageSource mImageProducer;
public int[] pixel; public int[] pixel;
public float[] triPoints; public static float[] triPoints;
RenderKernel renderer; RenderKernel renderer;
@ -39,7 +39,7 @@ public class Panel extends JPanel implements Runnable {
} }
public void init(){ public void init(){
triPoints = new float[120000000]; triPoints = new float[12*1000000];
cm = getCompatibleColorModel(); cm = getCompatibleColorModel();
width = getWidth(); width = getWidth();
height = getHeight(); height = getHeight();
@ -63,31 +63,16 @@ public class Panel extends JPanel implements Runnable {
} }
public /* abstract */ void render(){ public /* abstract */ void render(){
int[] p = pixel; // this avoid crash when resizing int[] p = pixel; // this avoid crash when resizing
if(p!=null && p.length != width * height) return; if(p==null || p.length != width * height) return;
for (int x=0;x<SigKeeper.SCREEN_WIDTH;x++) { for (int x=0;x<SigKeeper.SCREEN_WIDTH;x++) {
for (int y=0;y<SigKeeper.SCREEN_HEIGHT;y++) { for (int y=0;y<SigKeeper.SCREEN_HEIGHT;y++) {
pixel[y*SigKeeper.SCREEN_WIDTH+x]=0; pixel[y*SigKeeper.SCREEN_WIDTH+x]=0;
} }
} }
//a=h/w //a=h/w
for (int i=0;i<SigKeeper.tris.size();i++) {
Triangle t = SigKeeper.tris.get(i);
triPoints[i*12+0]=t.A.x;
triPoints[i*12+1]=t.A.y;
triPoints[i*12+2]=t.A.z;
triPoints[i*12+3]=t.A.w;
triPoints[i*12+4]=t.B.x;
triPoints[i*12+5]=t.B.y;
triPoints[i*12+6]=t.B.z;
triPoints[i*12+7]=t.B.w;
triPoints[i*12+8]=t.C.x;
triPoints[i*12+9]=t.C.y;
triPoints[i*12+10]=t.C.z;
triPoints[i*12+11]=t.C.w;
}
//renderer.put(triPoints); //renderer.put(triPoints);
if (renderer!=null) { if (renderer!=null&&SigKeeper.tris.size()>0) {
renderer.execute(Range.create(1000000)); renderer.execute(Range.create(SigKeeper.tris.size()));
} }
} }

@ -19,12 +19,6 @@ public class RenderKernel extends Kernel{
@Override @Override
public void run() { public void run() {
int id = getGlobalId(); int id = getGlobalId();
tris[id*12+0]+=1;
tris[id*12+1]+=1;
tris[id*12+4]-=1;
tris[id*12+5]+=1;
tris[id*12+8]+=1;
tris[id*12+9]-=1;
int x1=(int)tris[id*12+0]; int x1=(int)tris[id*12+0];
int y1=(int)tris[id*12+1]; int y1=(int)tris[id*12+1];
int x2=(int)tris[id*12+4]; int x2=(int)tris[id*12+4];

@ -54,11 +54,26 @@ public class SigKeeper implements WindowFocusListener,KeyListener,MouseListener,
frame.setVisible(true); frame.setVisible(true);
panel.init(); panel.init();
for (int i=0;i<1000000;i++) { for (int i=0;i<Panel.triPoints.length/12;i++) {
tris.add(new Triangle(new Vertex((float)Math.random()*SCREEN_WIDTH,(float)Math.random()*SCREEN_HEIGHT,(float)Math.random()*100), tris.add(new Triangle(new Vertex((float)Math.random()*SCREEN_WIDTH,(float)Math.random()*SCREEN_HEIGHT,(float)Math.random()*100),
new Vertex((float)Math.random()*SCREEN_WIDTH,(float)Math.random()*SCREEN_HEIGHT,(float)Math.random()*100), new Vertex((float)Math.random()*SCREEN_WIDTH,(float)Math.random()*SCREEN_HEIGHT,(float)Math.random()*100),
new Vertex((float)Math.random()*SCREEN_WIDTH,(float)Math.random()*SCREEN_HEIGHT,(float)Math.random()*100))); new Vertex((float)Math.random()*SCREEN_WIDTH,(float)Math.random()*SCREEN_HEIGHT,(float)Math.random()*100)));
} }
for (int i=0;i<SigKeeper.tris.size();i++) {
Triangle t = SigKeeper.tris.get(i);
Panel.triPoints[i*12+0]=t.A.x;
Panel.triPoints[i*12+1]=t.A.y;
Panel.triPoints[i*12+2]=t.A.z;
Panel.triPoints[i*12+3]=t.A.w;
Panel.triPoints[i*12+4]=t.B.x;
Panel.triPoints[i*12+5]=t.B.y;
Panel.triPoints[i*12+6]=t.B.z;
Panel.triPoints[i*12+7]=t.B.w;
Panel.triPoints[i*12+8]=t.C.x;
Panel.triPoints[i*12+9]=t.C.y;
Panel.triPoints[i*12+10]=t.C.z;
Panel.triPoints[i*12+11]=t.C.w;
}
new Thread() { new Thread() {
public void run(){ public void run(){
@ -114,8 +129,14 @@ public class SigKeeper implements WindowFocusListener,KeyListener,MouseListener,
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub for (int i=0;i<tris.size();i++) {
Panel.triPoints[i*12+0]+=1;
Panel.triPoints[i*12+1]+=1;
Panel.triPoints[i*12+4]-=1;
Panel.triPoints[i*12+5]+=1;
Panel.triPoints[i*12+8]+=1;
Panel.triPoints[i*12+9]-=1;
}
} }
@Override @Override

Loading…
Cancel
Save