/src/away3d/filters/Filter3DBase.as

http://github.com/away3d/away3d-core-fp11 · ActionScript · 84 lines · 67 code · 16 blank · 1 comment · 3 complexity · 4a1fc77ab4250f755fa913fc4e73d6f6 MD5 · raw file

  1. package away3d.filters
  2. {
  3. import away3d.cameras.Camera3D;
  4. import away3d.core.managers.Stage3DProxy;
  5. import away3d.filters.tasks.Filter3DTaskBase;
  6. import flash.display3D.textures.Texture;
  7. public class Filter3DBase
  8. {
  9. private var _tasks:Vector.<Filter3DTaskBase>;
  10. private var _requireDepthRender:Boolean;
  11. private var _textureWidth:int;
  12. private var _textureHeight:int;
  13. public function Filter3DBase()
  14. {
  15. _tasks = new Vector.<Filter3DTaskBase>();
  16. }
  17. public function get requireDepthRender():Boolean
  18. {
  19. return _requireDepthRender;
  20. }
  21. protected function addTask(filter:Filter3DTaskBase):void
  22. {
  23. _tasks.push(filter);
  24. _requireDepthRender ||= filter.requireDepthRender;
  25. }
  26. public function get tasks():Vector.<Filter3DTaskBase>
  27. {
  28. return _tasks;
  29. }
  30. public function getMainInputTexture(stage3DProxy:Stage3DProxy):Texture
  31. {
  32. return _tasks[0].getMainInputTexture(stage3DProxy);
  33. }
  34. public function get textureWidth():int
  35. {
  36. return _textureWidth;
  37. }
  38. public function set textureWidth(value:int):void
  39. {
  40. _textureWidth = value;
  41. for (var i:int = 0; i < _tasks.length; ++i)
  42. _tasks[i].textureWidth = value;
  43. }
  44. public function get textureHeight():int
  45. {
  46. return _textureHeight;
  47. }
  48. public function set textureHeight(value:int):void
  49. {
  50. _textureHeight = value;
  51. for (var i:int = 0; i < _tasks.length; ++i)
  52. _tasks[i].textureHeight = value;
  53. }
  54. // link up the filters correctly with the next filter
  55. public function setRenderTargets(mainTarget:Texture, stage3DProxy:Stage3DProxy):void
  56. {
  57. _tasks[_tasks.length - 1].target = mainTarget;
  58. }
  59. public function dispose():void
  60. {
  61. for (var i:int = 0; i < _tasks.length; ++i)
  62. _tasks[i].dispose();
  63. }
  64. public function update(stage:Stage3DProxy, camera:Camera3D):void
  65. {
  66. }
  67. }
  68. }