HorizontalBlur.java 941 B

123456789101112131415161718192021222324252627282930313233343536
  1. package eu.tankernn.gameEngine.postProcessing.gaussianBlur;
  2. import eu.tankernn.gameEngine.loader.textures.Texture;
  3. import eu.tankernn.gameEngine.postProcessing.IPostProcessingEffect;
  4. import eu.tankernn.gameEngine.postProcessing.ImageRenderer;
  5. public class HorizontalBlur implements IPostProcessingEffect {
  6. private ImageRenderer renderer;
  7. private HorizontalBlurShader shader;
  8. public HorizontalBlur(int targetFboWidth, int targetFboHeight){
  9. shader = new HorizontalBlurShader();
  10. shader.start();
  11. shader.targetWidth.loadFloat(targetFboWidth);
  12. shader.stop();
  13. renderer = new ImageRenderer(targetFboWidth, targetFboHeight);
  14. }
  15. public void render(Texture colorTexture, Texture texture){
  16. shader.start();
  17. texture.bindToUnit(0);
  18. renderer.renderQuad();
  19. shader.stop();
  20. }
  21. public Texture getOutputTexture(){
  22. return renderer.getOutputTexture();
  23. }
  24. public void cleanUp(){
  25. renderer.cleanUp();
  26. shader.cleanUp();
  27. }
  28. }