Richard Davey
cd1854630e
Testing round pixels on shader
2023-10-05 14:39:21 +01:00
Richard Davey
fe05501e38
The PostFXPipeline
will now set autoResize
to true
on all of its RenderTarget
instances. This fixes an issue where the PostFXPipeline
would not resize the render targets when the game size changed, causing them to become out of sync with the game canvas. Fix #6503 #6527
2023-09-07 14:43:36 +01:00
Richard Davey
066bb9be18
Updated jsdocs
2023-09-07 14:07:44 +01:00
Richard Davey
e8e57b6b0c
The WebGLRenderer.deleteFramebuffer
method has been updated so it now tests for the exitennce of a COLOR and DEPTH_STENCIL attachments, and if found, removes the bindings and deletes the stencil buffer. The code that previously deelted the RENDERERBUFFER_BINDING
has also been removed to avoid side-effects.
2023-09-05 13:40:45 +01:00
Richard Davey
8e1809688c
The WebGLRenderer will now validate that the mipmapFilter
property in the Game Config is a valid mipmap before assigning it.
2023-08-01 13:44:58 +01:00
Richard Davey
002786e411
fx namespace fix
2023-07-21 18:41:30 +01:00
Richard Davey
3f9ce29962
The FXBlurLow
fragment shader didn't have the offset
uniform. This is now passed in and applued to the resulting blur, preventing it from creating 45 degree artifacts (thanks Wayfinder)
2023-07-21 15:41:42 +01:00
Richard Davey
86f71e876e
The BlurFXPipeline
didn't bind the quality of shader specified in the controller, meaning it always used the Low Blur shader, regardless of what the FX controller asked for.
2023-07-21 15:40:44 +01:00
Richard Davey
92fcfe02dc
Fixed typedef
2023-07-21 14:24:25 +01:00
Richard Davey
fb3c85888b
Typo fix
2023-06-11 22:37:06 +01:00
Richard Davey
96ee7679c4
Added Spector method docs
2023-04-12 03:45:19 +01:00
Richard Davey
b676f2613f
Update PreFXPipeline.js
2023-04-12 02:43:42 +01:00
Richard Davey
ac060e8355
Set maxDim within the loop
2023-03-31 15:49:23 +01:00
Richard Davey
6d49b94305
Reverted pixel rounding. Should address offset pixelArt issues on HighDPI displays. #6327
2023-03-31 15:12:34 +01:00
Richard Davey
e1e46f4b19
Merge branch 'master' of https://github.com/photonstorm/phaser
2023-03-27 23:16:37 +01:00
Richard Davey
15535914b8
Only destroy controller if set
2023-03-27 23:16:34 +01:00
Richard Davey
3e075bf018
Added forceClamp
parameter
2023-03-27 17:48:27 +01:00
Richard Davey
cd58dd5f3a
Fix doc types
2023-03-24 15:41:01 +00:00
Richard Davey
376107b25f
Finally finished all FX documentation
2023-03-21 18:04:34 +00:00
Richard Davey
ed6287e9a9
More FX documentation finished
2023-03-21 17:57:27 +00:00
Richard Davey
b89a10c99d
Lots more documentation finished
2023-03-21 17:21:45 +00:00
Richard Davey
f83cf124aa
Added destroy method
2023-03-20 18:28:58 +00:00
Richard Davey
42610c4fa6
Finished documentation and added destroy method
2023-03-20 18:28:42 +00:00
Richard Davey
1750caca18
Update PreFXPipeline.js
2023-03-20 15:20:22 +00:00
Richard Davey
4fbd7eec82
Rename zero method and remove logs
2023-03-16 21:56:55 +00:00
Richard Davey
27553a029b
Call clearStencilMask
2023-03-16 21:56:46 +00:00
Richard Davey
b093ece620
Debugging stencil stack
2023-03-16 18:49:43 +00:00
Richard Davey
d316bacedb
Update PreFXPipeline.js
2023-03-16 18:23:35 +00:00
Richard Davey
4c19106c63
Debugging fx stacks
2023-03-16 18:23:30 +00:00
Richard Davey
b3b12ae62c
Testing pre/post mix
2023-03-14 22:03:38 +00:00
Richard Davey
8b2a701dbd
Tidying up and restore stencil
2023-03-14 19:46:55 +00:00
Richard Davey
560dc8a783
Restore the stencil before draw
2023-03-14 19:46:41 +00:00
Richard Davey
38438954b8
Removed logs
2023-03-14 19:45:52 +00:00
Richard Davey
5b12080cef
Added methods zeroStencilMask and restoreStencilMask
2023-03-14 19:45:44 +00:00
Richard Davey
d28863c986
Removed the logs and now zero the stencil upon bind
2023-03-14 19:42:09 +00:00
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
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