Commit graph

1123 commits

Author SHA1 Message Date
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
b267c607d2 Measure and Snap block freq read 2022-12-18 17:22:26 +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
3b50fa65d6 WebGLSnapshot will now flip the pixels in the created Image element if the source was a framebuffer. This means grabbing a snapshot from a Dynamic or Render Texture will now correctly invert the pixels on the y axis for an Image. Grabbing from the game renderer will skip this. 2022-10-31 22:47:14 +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
Richard Davey
57f2f7abd7 Broken for now 2022-10-07 18:03:16 +01:00
Richard Davey
5908eea4ce Use new methods 2022-10-07 16:24:07 +01:00
Richard Davey
496882fbd2 Inc count on batchVert 2022-10-07 16:23:57 +01:00
Richard Davey
c9e37ed373 Remove calls to resetTextures 2022-10-07 16:09:23 +01:00
Richard Davey
080242f928 Due to all of the changes with how WebGL texture batching works a lot of mostly internal methods and properties have been removed. This is the complete list
* The `WebGLRenderer.currentActiveTexture` property has been removed.
* The `WebGLRenderer.startActiveTexture` property has been removed.
* The `WebGLRenderer.tempTextures` property has been removed.
* The `WebGLRenderer.textureZero` property has been removed.
* The `WebGLRenderer.normalTexture` property has been removed.
* The `WebGLRenderer.textueFlush` property has been removed.
* The `WebGLRenderer.isTextureClean` property has been removed.
* The `WebGLRenderer.setBlankTexture` method has been removed.
* The `WebGLRenderer.setTextureSource` method has been removed.
* The `WebGLRenderer.isNewNormalMap` method has been removed.
* The `WebGLRenderer.setTextureZero` method has been removed.
* The `WebGLRenderer.clearTextureZero` method has been removed.
* The `WebGLRenderer.setNormalMap` method has been removed.
* The `WebGLRenderer.clearNormalMap` method has been removed.
* The `WebGLRenderer.unbindTextures` method has been removed.
* The `WebGLRenderer.resetTextures` method has been removed.
* The `WebGLRenderer.setTexture2D` method has been removed.
* The `WebGLRenderer.pushFramebuffer` method has had the `resetTextures` argument removed.
* The `WebGLRenderer.setFramebuffer` method has had the `resetTextures` argument removed.
* The `WebGLRenderer.popFramebuffer` method has had the `resetTextures` argument removed.
* The `WebGLRenderer.deleteTexture` method has had the `reset` argument removed.
2022-10-07 16:08:39 +01:00
Richard Davey
cbc0ac5a7a Create a batch if empty 2022-10-07 12:47:04 +01:00
Richard Davey
f4a248e575 Debugging while testing texture batching 2022-10-07 01:37:37 +01:00
Richard Davey
e2187086ce Merged batch code in 2022-10-07 01:37:17 +01:00