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
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
Richard Davey
e18c7fe6c9
New shaders
2022-10-07 01:36:58 +01:00
Richard Davey
3f4ebf5dd7
Update WebGLRenderer.js
2022-10-06 18:35:04 +01:00
Richard Davey
f0d3588f7b
Use batch system to avoid bufferSubData spamming - massively improves performance!
2022-10-05 00:59:04 +01:00
Richard Davey
08ee414ad5
Inline array add to stop branching
2022-10-05 00:58:33 +01:00
Richard Davey
010db3f2a3
Updated jsdocs
2022-10-04 18:27:19 +01:00
Richard Davey
ba8d25909f
Update PipelineManager.js
2022-10-04 18:27:11 +01:00
Richard Davey
03f09e2c10
Added setDefaultPipeline method
2022-10-04 18:20:17 +01:00
Richard Davey
3d3b675ae8
Pass over the config values
2022-10-04 18:04:26 +01:00
Richard Davey
64972f8456
Added default pipeline and mobile swap
2022-10-04 18:04:18 +01:00
Richard Davey
20485e1aa2
Added MobilePipeline
2022-10-04 17:08:48 +01:00