Feature/filters (#4687)
* Done
- filters working
- nested filters working
- Less GPU calls than v4
- Now passing destination and source frames to shader to calculate verbs
- ONLY Color Matrix Filter working
- Filter Area is now transformed (like hit area, much more useful!)
- Less code :D

Todo
- Apply Filter no complete
- Multiple filters not. Complete
- Refactor other filters

Optimisations
- need to pool the FilterStates

* Smarter check to eliminate needles enabling of stencil

* - Quad draws with triangle strip
- multiple filters now working

* Fixed up resolution

Not only does resolution now work - but any texture pass can be ANY
resolution and it works like a champ!

* Moved docs removed a needless comment

* More optimisations

- Added caching layer to viewport
- renamed getRenderTarget -> getFilterTexture
- added active state to filter for easy access
- fixed and optimised blur filter at least 66% less gpu calls required
now :)

* Fix up alpha filter

* Fixed up all bundled filters!

* Filter clamp added to Displacement filter

* Fixed lint fail

* Fixed up use of ba instead of zw in shader

Also added defaultFilter vert

* Added doc to state in filter

* space..

* Added pooling and a few docs bits

* more tweaks

fixed blur Y filter bug
Fixed default filter frag bug
Set default padding to 0

* Removed the slice from filters #3639

* Added auto fit back in

We now Loop through filters to find appropriate padding / autoFit /
resolution rather than just checking first filter.

Also clamped blur in vertex shader so that it does not bleed
transparency around its edges

* Update eslint package

this seemed to fix it last time..
1 parent f718968 commit 3b303d15b0aa08f274d0a4d17020f2bcdafa2de7
@Mat Groves Mat Groves authored on 23 Feb 2018
GitHub committed on 23 Feb 2018
Showing 31 changed files
View
package.json
View
packages/core/src/renderers/Renderer.js
View
packages/core/src/renderers/filters/Filter.js
View
packages/core/src/renderers/systems/FilterSystem.js 100644 → 0
View
packages/core/src/renderers/systems/FramebufferSystem.js
View
packages/core/src/renderers/systems/ProjectionSystem.js
View
packages/core/src/renderers/systems/RenderTextureSystem.js
View
packages/core/src/renderers/systems/StencilSystem.js
View
packages/core/src/renderers/systems/filter/FilterSystem.js 0 → 100644
View
packages/core/src/renderers/utils/Quad.js
View
packages/core/src/shader/generateUniformsSync.js
View
packages/core/src/textures/BaseRenderTexture.js
View
packages/display/src/Container.js
View
packages/display/src/DisplayObject.js
View
packages/filters/filter-alpha/src/AlphaFilter.js
View
packages/filters/filter-blur/src/BlurFilter.js
View
packages/filters/filter-blur/src/BlurXFilter.js
View
packages/filters/filter-blur/src/BlurYFilter.js
View
packages/filters/filter-blur/src/generateBlurVertSource.js
View
packages/filters/filter-color-matrix/src/ColorMatrixFilter.js
View
packages/filters/filter-displacement/src/DisplacementFilter.js
View
packages/filters/filter-displacement/src/displacement.frag
View
packages/filters/filter-displacement/src/displacement.vert
View
packages/filters/filter-fxaa/src/fxaa.frag
View
packages/filters/filter-fxaa/src/fxaa.vert
View
packages/filters/filter-noise/src/NoiseFilter.js
View
packages/fragments/src/defaultFilter.vert 0 → 100644
View
packages/fragments/src/index.js
View
packages/graphics/src/GraphicsRenderer.js
View
packages/math/src/shapes/Rectangle.js
View
packages/mixin-cache-as-bitmap/src/index.js