/src/away3d/filters/BlurFilter3D.as

http://github.com/away3d/away3d-core-fp11 · ActionScript · 68 lines · 48 code · 10 blank · 10 comment · 0 complexity · 9d4f5c064ae6d7fd460021107b536be8 MD5 · raw file

  1. package away3d.filters
  2. {
  3. import away3d.core.managers.Stage3DProxy;
  4. import away3d.filters.tasks.Filter3DHBlurTask;
  5. import away3d.filters.tasks.Filter3DVBlurTask;
  6. import flash.display3D.textures.Texture;
  7. public class BlurFilter3D extends Filter3DBase
  8. {
  9. private var _hBlurTask:Filter3DHBlurTask;
  10. private var _vBlurTask:Filter3DVBlurTask;
  11. /**
  12. * Creates a new BlurFilter3D object
  13. * @param blurX The amount of horizontal blur to apply
  14. * @param blurY The amount of vertical blur to apply
  15. * @param stepSize The distance between samples. Set to -1 to autodetect with acceptable quality.
  16. */
  17. public function BlurFilter3D(blurX:uint = 3, blurY:uint = 3, stepSize:int = -1)
  18. {
  19. super();
  20. addTask(_hBlurTask = new Filter3DHBlurTask(blurX, stepSize));
  21. addTask(_vBlurTask = new Filter3DVBlurTask(blurY, stepSize));
  22. }
  23. public function get blurX():uint
  24. {
  25. return _hBlurTask.amount;
  26. }
  27. public function set blurX(value:uint):void
  28. {
  29. _hBlurTask.amount = value;
  30. }
  31. public function get blurY():uint
  32. {
  33. return _vBlurTask.amount;
  34. }
  35. public function set blurY(value:uint):void
  36. {
  37. _vBlurTask.amount = value;
  38. }
  39. /**
  40. * The distance between two blur samples. Set to -1 to autodetect with acceptable quality (default value).
  41. * Higher values provide better performance at the cost of reduces quality.
  42. */
  43. public function get stepSize():int
  44. {
  45. return _hBlurTask.stepSize;
  46. }
  47. public function set stepSize(value:int):void
  48. {
  49. _hBlurTask.stepSize = value;
  50. _vBlurTask.stepSize = value;
  51. }
  52. override public function setRenderTargets(mainTarget:Texture, stage3DProxy:Stage3DProxy):void
  53. {
  54. _hBlurTask.target = _vBlurTask.getMainInputTexture(stage3DProxy);
  55. super.setRenderTargets(mainTarget, stage3DProxy);
  56. }
  57. }
  58. }