Commit graph

1295 commits

Author SHA1 Message Date
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