Browse Source

the GUI now has a maximum height. added functionality to scroll through effect-list if height is exceeded

master
Victor Giers 1 year ago
parent
commit
c5f346d32d
2 changed files with 88 additions and 47 deletions
  1. 1
    1
      effects.pde
  2. 87
    46
      secondapplet.pde

+ 1
- 1
effects.pde View File

float times = (totalnum/floor(totalnum/neww)); float times = (totalnum/floor(totalnum/neww));
float offx = (totalnum%neww)/times; float offx = (totalnum%neww)/times;
float ratiox = neww/buffer.width; float ratiox = neww/buffer.width;
println(ratiox);
//println(ratiox);


renderer.beginDraw(); renderer.beginDraw();
renderer.noStroke(); renderer.noStroke();

+ 87
- 46
secondapplet.pde View File

//contains the GUI (ie CP5) in the secondapplet. also contains 3 classes: shaderManager, Brick and Slider //contains the GUI (ie CP5) in the secondapplet. also contains 3 classes: shaderManager, Brick and Slider


PImage bin; PImage bin;
int maxSurfaceHeight = 500;




public class SecondApplet extends PApplet { public class SecondApplet extends PApplet {
shaderManager shaderManager = new shaderManager(); shaderManager shaderManager = new shaderManager();
ArrayList<Shader> shaderList = new ArrayList<Shader>(); ArrayList<Shader> shaderList = new ArrayList<Shader>();
ArrayList<Brick> bricks = new ArrayList<Brick>(); ArrayList<Brick> bricks = new ArrayList<Brick>();
ArrayList<Slider> slider = new ArrayList<Slider>(); //brick
ArrayList<Slider> slider = new ArrayList<Slider>(); //brick
int binX, binY, binS; int binX, binY, binS;
public void settings() { public void settings() {
size(275, 120); size(275, 120);
int totalBrickHeight; int totalBrickHeight;
public void draw() { public void draw() {
background(68, 68, 68); background(68, 68, 68);

pushMatrix();
if (heightOverLimit) {
translate(0, scrollAmount);
}
totalBrickHeight = 0;
for (int i = 0; i < shaderList.size(); i++) {
bricks.get(i).update();
bricks.get(i).display();
//bricks.get(i).y = totalBrickHeight; ????? what was that for
totalBrickHeight+= bricks.get(i).h;
}
popMatrix();
fill(68, 68, 68);
noStroke();
rect(0, height-120, width, 120);
image(bin, binX, binY, binS, binS); image(bin, binX, binY, binS, binS);
stroke(255); stroke(255);
strokeWeight(1); strokeWeight(1);
text(renderer.width + "x" + renderer.height, 100, height-18); text(renderer.width + "x" + renderer.height, 100, height-18);
textSize(10); textSize(10);
line(0, height-120, width, height-120); line(0, height-120, width, height-120);
totalBrickHeight = 0;
for (int i = 0; i < shaderList.size(); i++) {
bricks.get(i).update();
bricks.get(i).display();
bricks.get(i).y = totalBrickHeight;
totalBrickHeight+= bricks.get(i).h;
}

if (pressedBrick != -1) { if (pressedBrick != -1) {
fill(255); fill(255);
noStroke(); noStroke();
} }
} }


boolean heightOverLimit;


void refreshSurface(int mode) { void refreshSurface(int mode) {
int currentBrickHeight = 0;
if (shaderList.size() > 0) { if (shaderList.size() > 0) {
if (mode == 0) surface.setSize(width, height+bricks.get(shaderList.size()-1).h);
else if (mode == 1) surface.setSize(width, height-bricks.get(pressedBrick).h);
} else {
if (mode == 0) {
currentBrickHeight = totalBrickHeight + bricks.get(shaderList.size()-1).h;
surface.setSize(width, height+bricks.get(shaderList.size()-1).h);
} else if (mode == 1) {
currentBrickHeight = totalBrickHeight - bricks.get(pressedBrick).h;
if (heightOverLimit) {
surface.setSize(width, currentBrickHeight+120);
} else {
surface.setSize(width, height-bricks.get(pressedBrick).h);
}
}
} else {
surface.setSize(width, 120); surface.setSize(width, 120);
} }

if (currentBrickHeight + 120 > maxSurfaceHeight) {
surface.setSize(width, maxSurfaceHeight);
println("hi");
heightOverLimit = true;
} else {
heightOverLimit = false;
scrollAmount = 0;
}
cp5.setPosition(0, height-120); cp5.setPosition(0, height-120);
binY = height-87; binY = height-87;
} }
for (int i = pos1; i < pos2; i++) { for (int i = pos1; i < pos2; i++) {
swapShader(i, i+1); swapShader(i, i+1);
} }
} else {
} else {
for (int i = pos1; i > pos2; i--) { for (int i = pos1; i > pos2; i--) {
swapShader(i, i-1); swapShader(i, i-1);
} }
} }


void removeShader(int pos) { void removeShader(int pos) {
if (pos >= 0 && shaderList.size() > pos) {
if (pos >= 0 && shaderList.size() > pos) {
refreshSurface(1); refreshSurface(1);
shaderList.remove(pos); shaderList.remove(pos);
bricks.remove(pos); bricks.remove(pos);
for (int i = shaderList.size()-1; i > -1; i--) { for (int i = shaderList.size()-1; i > -1; i--) {
bricks.get(i).setPos(i);
bricks.get(i).setPos(i);
bricks.get(i).updateSliderPos(); bricks.get(i).updateSliderPos();
shaderList.get(i).pos = i; shaderList.get(i).pos = i;
} }
shaderList.get(i).getValuesFromGUI(); shaderList.get(i).getValuesFromGUI();
shaderList.get(i).apply(); shaderList.get(i).apply();
} }
}
}
catch(Exception e) { catch(Exception e) {
println("Warning: Brick not yet loaded"); println("Warning: Brick not yet loaded");
} }
if (paused && slider.get(i).animated) paused = false; if (paused && slider.get(i).animated) paused = false;
} }


if (mouseX > 10 && mouseX < 22 && mouseY > 4+totalBrickHeight && mouseY < 4+totalBrickHeight+13) {
if (mouseX > 10 && mouseX < 22 && mouseY > 4+totalBrickHeight+scrollAmount && mouseY < 4+totalBrickHeight+13+scrollAmount) {
hoverActiveButton = true; hoverActiveButton = true;
} else { } else {
hoverActiveButton = false; hoverActiveButton = false;
} }


if (mouseX > 25 && mouseX < 37 && mouseY > 4+totalBrickHeight && mouseY < 4+totalBrickHeight+13) {
if (mouseX > 25 && mouseX < 37 && mouseY > 4+totalBrickHeight+scrollAmount && mouseY < 4+totalBrickHeight+13+scrollAmount) {
hoverPauseButton = true; hoverPauseButton = true;
} else { } else {
hoverPauseButton = false; hoverPauseButton = false;
} }


if (mouseY > y-5 && mouseY < y+5 && pressedBrick != -1) {
if (mouseY > y-5+scrollAmount && mouseY < y+5+scrollAmount && pressedBrick != -1) {
hoveringLineAbove = true; hoveringLineAbove = true;
if (pos > 0) { if (pos > 0) {
bricks.get(pos-1).hovering = false; bricks.get(pos-1).hovering = false;
} }
} else if (pos == bricks.size()-1 && mouseY > y+h-5 && mouseY < y+h+5 && pressedBrick != -1) {
} else if (pos == bricks.size()-1 && mouseY > y+h-5+scrollAmount && mouseY < y+h+5+scrollAmount && pressedBrick != -1) {
hoveringLineBelow = true; hoveringLineBelow = true;
} else { } else {
hoveringLineBelow = false; hoveringLineBelow = false;
hoveringLineAbove = false; hoveringLineAbove = false;
if (mouseY > totalBrickHeight && mouseY < totalBrickHeight+h && !sliderHover && !hoverActiveButton && !hoverPauseButton) {
if (mouseY > totalBrickHeight+scrollAmount && mouseY < totalBrickHeight+h+scrollAmount && !sliderHover && !hoverActiveButton && !hoverPauseButton) {
hovering = true; hovering = true;
} else { } else {
hovering = false; hovering = false;
text(name, 40, 13+totalBrickHeight, 10); text(name, 40, 13+totalBrickHeight, 10);


stroke(255); stroke(255);
strokeWeight(1);
if (active) fill(185); if (active) fill(185);
else noFill(); else noFill();
rect(10, 4+totalBrickHeight, 10, 10); rect(10, 4+totalBrickHeight, 10, 10);
} }




if (mouseX >= x && mouseX <= x+w && mouseY >= y && mouseY <= y+h) {
if (mouseX >= x && mouseX <= x+w && mouseY >= y+scrollAmount && mouseY <= y+h+scrollAmount) {
hovering = true; hovering = true;
} else { } else {
hovering = false; hovering = false;
} }


if (mouseX >= x+w+5 && mouseX <= x+w+5+15 && mouseY >= y && mouseY <= y+h) {
if (mouseX >= x+w+5 && mouseX <= x+w+5+15 && mouseY >= y+scrollAmount && mouseY <= y+h+scrollAmount) {
hovering_anim_btn = true; hovering_anim_btn = true;
} else { } else {
hovering_anim_btn = false; hovering_anim_btn = false;
void CP5_listActions(int n) { void CP5_listActions(int n) {
if (shaderList.size() < maxFx) { if (shaderList.size() < maxFx) {
switch(n) { switch(n) {
case(0):
shaderManager.addShader(new ASDFPIXELSORT());
case(0):
shaderManager.addShader(new ASDFPIXELSORT());
break; break;
case(1):
shaderManager.addShader(new DISTORTER());
case(1):
shaderManager.addShader(new DISTORTER());
break; break;
case(2):
shaderManager.addShader(new FM());
case(2):
shaderManager.addShader(new FM());
break; break;
case(3): case(3):
shaderManager.addShader(new WZIP()); shaderManager.addShader(new WZIP());
break; break;
case(4):
shaderManager.addShader(new AUECHO());
case(4):
shaderManager.addShader(new AUECHO());
break; break;
case(5):
shaderManager.addShader(new SLITSCAN());
case(5):
shaderManager.addShader(new SLITSCAN());
break; break;
case(6):
shaderManager.addShader(new WAHWAH());
case(6):
shaderManager.addShader(new WAHWAH());
break; break;
case(7):
shaderManager.addShader(new PHASER());
case(7):
shaderManager.addShader(new PHASER());
break; break;
case(8):
shaderManager.addShader(new ECHO());
case(8):
shaderManager.addShader(new ECHO());
break; break;
case(9): case(9):
shaderManager.addShader(new DARKER()); shaderManager.addShader(new DARKER());
break; break;
/* /*
case(4):
shaderManager.addShader(new AUECHO());
case(4):
shaderManager.addShader(new AUECHO());
break; break;
*/ */
default: default:
pressedSlider = -1; pressedSlider = -1;
pressedBrick = -1; pressedBrick = -1;
} }
int scrollAmount;
void mouseWheel(MouseEvent event) { void mouseWheel(MouseEvent event) {

if (event.getCount() < 0) renderSize += 8;
else renderSize -= 8;
renderSize = constrain(renderSize, 8, 15000);
textSize(25);
if (mouseX > 100 && mouseX < textWidth(str(renderer.width) + "x" + str(renderer.height)) + 100 && mouseY > height - 40 && mouseY < height) {
if (event.getCount() < 0) renderSize += 8;
else renderSize -= 8;
renderSize = constrain(renderSize, 8, 15000);
}
if (heightOverLimit && mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height-120) {
for (int i = 0; i < bricks.size(); i++) {
scrollAmount -= event.getCount();
scrollAmount = constrain(scrollAmount, maxSurfaceHeight-120-totalBrickHeight, 0);
//bricks.get(i).y += event.getCount();
//bricks.get(i).updateSliderPos();
}
}
textSize(10);
} }
} }

Loading…
Cancel
Save