Ben Richards
216b7564f6
Update systems to use WebGLTextureWrapper
and Uint8Array
textures.
...
This is mostly hooking up gl calls to look inside the wrapper.
A few other things have changed.
Spector metadata is set the new way.
`Frame` changed `glTexture` to a getter, simplifying bookkeeping.
`LightPipeline` and `Plane` use standard methods to create textures.
`WebGLRenderer` maintains a list of wrappers, and automatically
manages it through `createTexture2D` and `deleteTexture`. The update
methods `updateCanvasTexture` and `updateVideoTexture` have been
delegated to the wrapper.
2024-01-29 11:45:12 +13:00
Ben Richards
a8dff1f990
Add Uint8Array texture creation methods.
2024-01-29 11:30:54 +13:00
Ben Richards
3b2aeaf18b
Create WebGLTextureWrapper to encapsulate texture state.
2024-01-29 11:08:16 +13:00
samme
3b2ed4a4fe
Exclude the renderers
2023-12-11 17:33:57 -08:00
Richard Davey
0b32610e56
Updated version to 3.70
2023-11-10 15:04:01 +00:00
Richard Davey
bd67ed38a5
Disable roundPixels when drawing lines
2023-11-09 22:30:53 +00:00
Richard Davey
2c8b70e4f7
Respect the disable fx flags and only create the pipelines and render targets as needed
2023-11-08 12:35:19 +00:00
Richard Davey
ec5a695a5c
PostFXPipeline.bootFX
is a new method, which is the previous boot
method but renamed. This is no longer called from the constructor, but instead when the Post FX Pipeline is activated by the Pipeline Manager. This means that the resources the Post FX requires, such as creating Render Targets and shaders, is delayed until the FX is actually used, saving on memory.
2023-11-07 23:42:04 +00:00
Richard Davey
d3050a05fc
The MultiPipeline.batchTexture
method has a new optional boolean parameter skipPrePost
that will force the call to ignore calling the preBatch
and postBatch
Pipeline Manager methods for the Game Object. This allows you to skip the overhead of calling them if you know you don't need them.
2023-11-07 22:53:14 +00:00
Richard Davey
52619b26f9
Set missing uniforms to get FX working again :)
2023-11-07 22:51:38 +00:00
Richard Davey
94c810fd39
Remove false param to setQuad
2023-11-07 18:53:51 +00:00
Richard Davey
0431796d94
false is the default now
2023-11-07 18:52:46 +00:00
Richard Davey
f96b557f4c
The MultiPipeline.batchSprite
method (which is also used by the Single Pipeline and Mobile Pipeline) will no longer use roundPixels
when calculating the quad vertex data. It also won't apply it to any of the sprite values. This is all now handled in the shader directly.
2023-11-07 18:37:34 +00:00
Richard Davey
df846bdab3
CanvasRenderer.batchSprite
has been updated to correctly use the Camera roundPixels
property and apply it to the drawImage
call.
2023-11-07 18:30:02 +00:00
Richard Davey
a26f827650
Optimized setTextureFilter
2023-11-07 18:28:27 +00:00
Richard Davey
b0c2dcf463
Remove the gx/gy rounding (un-needed) and pass the roundPixels value to setQuad
2023-11-07 15:26:58 +00:00
Richard Davey
1b12993898
Updated jsdocs
2023-11-07 15:26:07 +00:00
Richard Davey
e36d43533c
Updated shaders to use 'round' glsl instead of 'floor'
2023-11-07 15:23:57 +00:00
Richard Davey
5aa409e8f3
RenderTarget.willResize
is a new method that will return true
if the Render Target will be resized as a result of the new given width and height values.
2023-11-03 19:02:20 +00:00
Richard Davey
b28ad7f3d3
The BitmapMask
wouldn't correctly set the gl viewport when binding, which caused the mask to distort in games where the canvas resizes from its default. Fix #6527
2023-10-13 17:53:55 +01:00
Richard Davey
bae26a5205
When a framebuffer is deleted, it now sets its renderTexture
property to undefined
to ensure the reference is cleared.
2023-10-13 17:15:21 +01:00
Richard Davey
d74e767050
Delete color attachment
2023-10-12 18:49:06 +01:00
Richard Davey
1935119141
Array Remove and unbind before deleting the framebuffer
2023-10-12 15:22:26 +01:00
Richard Davey
758db68d1a
Remove event handler first
2023-10-12 15:22:26 +01:00
Richard Davey
0e145756bb
Added new uniforms and handle rounding in the shader
2023-10-10 18:50:17 +01:00
Richard Davey
4bb2807627
Added uRoundPixels and uResolution to the core shaders
2023-10-10 18:49:49 +01:00
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
c8acb16fa7
Added { willReadFrequently }
to every canvas context, no matter where it comes from
2023-03-09 17:30:04 +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