Commit graph

1136 commits

Author SHA1 Message Date
Richard Davey
f3028118d3 Debugging 2023-03-03 18:54:02 +00:00
Richard Davey
684a2ab35a setFramebuffer accepts texture and clear param 2023-03-03 18:53:36 +00:00
Richard Davey
b32286d198 Update PostFXPipeline.js 2023-03-03 18:53:36 +00:00
Richard Davey
4ce142c25b Working through fbo debugging 2023-03-03 13:41:57 +00:00
Richard Davey
fab1acd022 Debug logs 2023-03-02 18:46:23 +00:00
Richard Davey
4877efbe36 Added hasDepthBuffer property 2023-03-02 18:46:16 +00:00
Richard Davey
d1f2fb8dfc Reset current fbo instead of null 2023-03-02 18:46:04 +00:00
Richard Davey
8b493834dc Log can take any parameters 2023-03-02 18:45:42 +00:00
Richard Davey
4ae57fa593 Update jsdocs 2023-03-02 18:17:08 +00:00
Richard Davey
eaf6fa7f45 Added log method, depth buffer and missing parameter default 2023-03-02 18:16:59 +00:00
Richard Davey
aa3e1d17ce Updated documentation 2023-02-27 16:26:04 +00:00
Richard Davey
267f3160da PipelineManager.getPostPipeline now has an optional 3rd parameter, a config object that is passed to the pipeline instance in its constructor, which can be used by the pipeline during its set-up. 2023-02-27 15:12:40 +00:00
Richard Davey
88a59eb040 Post FX now supports custom quality and distance parameters. Fix #6393 2023-02-27 15:09:57 +00:00
Richard Davey
c58e0266c7 Use new Utils function 2023-02-27 13:48:40 +00:00
Richard Davey
6d48142f94 Use new consts to add mobile GPU speed-up 2023-02-27 13:47:55 +00:00
Richard Davey
7edc856154 Added setGlowQuality function 2023-02-27 13:47:33 +00:00
Richard Davey
e79f218472 Fix onFXCopy path. Fix #6403 2023-02-26 16:44:29 +00:00
Richard Davey
5ad4cbba7d Types fix 2023-02-17 17:25:11 +00:00
Richard Davey
0fe135cc8f Added documentation and method parameters 2023-02-17 17:07:22 +00:00
Richard Davey
5913f38b44 Update property name 2023-02-17 02:12:20 +00:00
Richard Davey
af3bb532b5 Use strings to retain correct mapping 2023-02-17 02:12:12 +00:00
Richard Davey
98c2fed09a controller not config 2023-02-17 01:10:36 +00:00
Richard Davey
7a1143731e Added getController method 2023-02-17 01:09:36 +00:00
Richard Davey
55cf81e46b All now use FX Controllers 2023-02-17 01:09:24 +00:00
Richard Davey
49c5c8bcec Remove log 2023-02-17 01:09:09 +00:00
Richard Davey
92152c16cf Add controller property 2023-02-16 23:50:01 +00:00
Richard Davey
b90c067112 Update path 2023-02-16 23:49:53 +00:00
Richard Davey
d6314de4db More default properties and exposing the FX consts 2023-02-16 23:06:53 +00:00
Richard Davey
cbf42feee1 Refactored so FX is a class sitting on a property, rather than a mixin. 2023-02-16 18:39:14 +00:00
Richard Davey
260f4db5a5 Use new shader array 2023-02-16 16:13:52 +00:00
Richard Davey
d9570b1b0b Shaders can be an array of strings 2023-02-16 16:13:37 +00:00
Richard Davey
a93425ef0d Bundle Shaders now produces an index.js 2023-02-16 16:13:22 +00:00
Richard Davey
dd2efb6e5c Added Bokeh and TiltShift FX 2023-02-16 15:04:37 +00:00
Richard Davey
9011d78fd4 Added Wipe FX 2023-02-16 12:53:31 +00:00
Richard Davey
e48d49d29f Added Displacement FX 2023-02-16 01:52:00 +00:00
Richard Davey
526a6489ba Added BarrelFX 2023-02-16 00:42:17 +00:00
Richard Davey
9aa58008bf Finished Circle shader and CircleFX Pipeline 2023-02-15 23:48:34 +00:00
Richard Davey
ffa50913f4 Shader update? 2023-02-15 18:50:59 +00:00
Richard Davey
5125d91509 Create FXCircle.frag 2023-02-15 18:50:47 +00:00
Richard Davey
720417c3dd Added ColorMatrix 2023-02-15 18:50:44 +00:00
Richard Davey
2d58ee2453 Create CircleFXPipeline.js 2023-02-15 18:50:12 +00:00
Richard Davey
3fb415b926 Create ColorMatrixFXPipeline.js 2023-02-15 18:50:07 +00:00
Richard Davey
4d273254e5 Testing ColorMatrix FX 2023-02-15 13:47:56 +00:00
Richard Davey
399241b9c4 vertShader is the default :) 2023-02-15 01:20:53 +00:00
Richard Davey
1cf3aa428a Exposed all the FX pipelines for easier access 2023-02-15 01:15:25 +00:00
Richard Davey
e1391445fe If you add #define SHADER_NAME to the start of your shader then it will be picked up as the WebGLShader name during the setShadersFromConfig process within WebGLPipeline. 2023-02-15 01:15:01 +00:00
Richard Davey
b40cc9b584 Tweaked alpha 2023-02-15 00:50:31 +00:00
Richard Davey
a93a6c75c3 Added working BloomFX 2023-02-15 00:50:26 +00:00
Richard Davey
b615e67a3b Rename LinearGradient to Gradient and use better shader 2023-02-15 00:05:33 +00:00
Richard Davey
03104d0a8c Optimize size of shaders by removing comments and blank lines 2023-02-15 00:05:16 +00:00
Richard Davey
58576252cb Fixed BlurFX and added LinearGradientFX 2023-02-14 23:45:44 +00:00
Richard Davey
65f3d340ec Working through Blur FX 2023-02-14 18:53:52 +00:00
Richard Davey
15f296824c Improved Vignette shader dramatically 2023-02-14 15:49:33 +00:00
Richard Davey
729f446e66 Added Shadow, Vignette, Pixelate and Shine FX 2023-02-14 13:33:07 +00:00
Richard Davey
765afecbea The WebGLPipeline.setTime method has a new optional parameter shader, which allows you to control the shader on which the time value is set. 2023-02-14 13:11:29 +00:00
Richard Davey
28f088184f Expose GlowFXPipeline 2023-02-14 01:30:57 +00:00
Richard Davey
9f53a0460a Added GlowFX by default (testing) 2023-02-14 01:30:47 +00:00
Richard Davey
13e2e15914 New and improved fx handling 2023-02-14 01:30:37 +00:00
Richard Davey
3f428c4295 jsdocs fix 2023-02-14 01:29:57 +00:00
Richard Davey
2589557f4d Don't resize if locked from resizing 2023-02-14 01:29:46 +00:00
Richard Davey
34c3468961 Create GlowFXPipeline.js 2023-02-14 01:29:05 +00:00
Richard Davey
ed1f79e57e Added Vignette and BaseFX class 2023-02-13 21:21:18 +00:00
Richard Davey
532d5a9375 Revised FX pipeline. Added Glow, Shadow and Pixelate. Tested against multi-pass. 2023-02-13 18:50:27 +00:00
Richard Davey
963ff647e6 Testing out a possible FX Pipeline 2023-02-13 01:30:22 +00:00
Richard Davey
cf6b0971cb Renaming SpriteFX to PreFX 2023-02-12 21:08:58 +00:00
Richard Davey
ed205f586b Bloom FX 2023-02-09 18:46:49 +00:00
Richard Davey
a493f51192 Set the Post Pipeline name into the instance correctly, so we can pass by reference to setPostPipeline 2023-02-03 18:26:56 +00:00
Richard Davey
6f678e0825 If mipmapFilter is not set on the config (now the default) it won't create them at all. 2023-01-23 20:59:02 +00:00
Richard Davey
61278d0812 Optionally pass ColorMatrix to ciopySprite method 2023-01-23 17:16:43 +00:00
Richard Davey
468bf7821d Updated copyright year 2023-01-02 17:36:27 +00:00
Richard Davey
7a5d138271 Testing deleting renderbuffer #6311 2022-12-07 18:29:11 +00:00
Richard Davey
a813f9c229 WebGLPipeline.vertexAvailable is a new method that returns the number of vertices that can be added to the current batch before it will trigger a flush. 2022-12-07 18:28:17 +00:00
Richard Davey
1e9bb686d3 When calling PipelineManager.clear and rebind it will now check if the vao extension is available, and if so, it'll bind a null vertex array. This helps clean-up from 3rd party libs that don't do this directly, such as ThreeJS. 2022-11-29 23:38:47 +00:00
Richard Davey
9357b8e609 The RenderTarget class will now create a Framebuffer that includes a Depth Stencil Buffer attachment by default. Previously, it didn't. By attaching a stencil buffer it allows things like Geometry Masks to work in combination with Post FX and other Pipelines. Fix #5802 2022-11-22 18:13:03 +00:00
Richard Davey
e608c2caf1 The CONTEXT_RESTORED Game Event has been removed and the WebGL Renderer no longer listens for the contextrestored DOM event, or has a contextRestoredHandler method. This never actually worked properly, in any version of Phaser 3 - although the WebGLRenderer would be restored, none of the shaders, pipelines or textures were correctly re-created. If a context is now lost, Phaser will display an error in the console and all rendering will halt. It will no longer try to re-create the context, leading to masses of WebGL errors in the console. Instead, it will die gracefully and require a page reload. 2022-11-17 18:04:51 +00:00
Richard Davey
c9d7a76998 The Light fragment shader will now use the outTintEffect attribute meaning the Light Pipeline will now correctly light both tinted and fill-tinted Game Objects. Fix #5452 2022-11-17 17:25:47 +00:00
Richard Davey
8c7c8ee2a4 The batchLine method in the Multi Pipeline will now check to see if the dxdy len is zero, and if so, it will abort drawing the line. This fixes issues on older Android devices, such as the Samsung Galaxy S6 or Kindle 7, where it would draw erroneous lines leading up to the top-left of the canvas under WebGL when rendering a stroked rounded rectangle. Fix #5429 2022-11-17 16:49:10 +00:00
Richard Davey
2f720246ab Reset the buffer and textures on rebind. 2022-11-15 21:54:43 +00:00
Richard Davey
064e8a3ec2 Fixed type issues 2022-11-10 16:05:20 +00:00
Richard Davey
b457e42a2f The Light Pipeline will now check to see if a Light2D enabled Game Object has a parent Container, or not, and factor the rotation and scale of this into the light calculation. Fix #6086 2022-11-09 18:18:35 +00:00
Richard Davey
d7a15e92a6 Added activeBuffer and activeTextures check to avoid gl ops 2022-11-03 22:05:18 +00:00
Richard Davey
2d81a4a50e Reverting to forloop shader 2022-11-03 22:04:58 +00:00
Richard Davey
528e32a18a Reverting to forloop approach 2022-11-03 22:04:44 +00:00
Richard Davey
7d594dd49a Clarify snapshot docs 2022-10-31 22:46:44 +00:00
Richard Davey
22eae26007 WebRenderer.snapshotFramebuffer and by extension, the snapshot methods in Dynamic Textures and Render Textures, has been updated to ensure that the width and height never exceed the framebuffer dimensions, or it'll cause a runtime error. The method snapshotArea has had this limitation removed as a result, allowing you to snapshot areas that are larger than the Canvas. Fix #5707 2022-10-31 22:17:27 +00:00
Richard Davey
ba6af3a920 Conditionally set DEBUG 2022-10-31 16:17:16 +00:00
Richard Davey
4f0029c03c Added captureFrame, captureNextFrame, getFps, startCapture and stopCapture methods 2022-10-28 18:23:24 +01:00
Richard Davey
bd1adbd67e Clear TEXTURE1. Fix #6248 2022-10-13 22:03:33 +01:00
Richard Davey
f3c804805f Update MultiPipeline.js 2022-10-10 17:43:53 +01:00
Richard Davey
a6a83ca592 Testing customSampler 2022-10-10 13:27:33 +01:00
Richard Davey
52f7ec621a Added destroy method back in again 2022-10-09 23:16:48 +01:00
Richard Davey
d0cc5f17d5 Extend the MultiPipeline and use new batch system 2022-10-09 23:16:38 +01:00
Richard Davey
5dd3a40342 Fixed data types 2022-10-09 18:11:00 +01:00
Richard Davey
01150a6efc Removed un-needed method 2022-10-09 17:49:21 +01:00
Richard Davey
6ff216d832 Create WebGLPipelineBatchEntry.js 2022-10-09 17:49:11 +01:00
Richard Davey
7600f2f6b6 Added all new jsdocs 2022-10-09 17:49:08 +01:00
Richard Davey
a2d5f25a55 Added new method 2022-10-09 17:30:36 +01:00
Richard Davey
3c54c852dc Don't forget to update the batch count 2022-10-09 17:30:27 +01:00
Richard Davey
70ef38c03c Fixed rendering 2022-10-09 17:29:37 +01:00
Richard Davey
e44a148882 Store actual WebGLTextures 2022-10-09 17:29:29 +01:00