Ben Richards
a4e96855fc
Correct documentation of LightPipeline.currentNormalMap
.
2024-02-05 14:30:24 +13:00
Richard Davey
604c34c13b
Stop tsgen from crashing!
2024-02-02 13:56:24 +00:00
Richard Davey
e00d12195d
Fixed incorrect jsdocs
2024-02-02 13:03:38 +00:00
Richard Davey
7bac75a2f4
Fixed some jsdoc name references and minor lint errors
2024-02-02 13:01:03 +00:00
Ben Richards
49e9d45435
Emit LOSE_WEBGL event.
...
Also rearrange RESTORE_WEBGL event code.
2024-02-02 21:57:28 +13:00
Ben Richards
d57b46e690
Tidy up wrappers on WebGLRenderer destroy.
2024-02-02 20:55:09 +13:00
Ben Richards
4fd8fc94c3
Fix WebGLShader recovery from WebGL context loss.
2024-02-02 20:50:39 +13:00
Ben Richards
ade7b57e3d
Restore WebGL extensions.
2024-02-02 16:29:24 +13:00
Ben Richards
b66028ec8e
Handle more invalidated state on WebGL context restore.
2024-02-02 15:53:03 +13:00
Ben Richards
4c849cb2f7
Tidy up WebGL Wrappers.
...
Dispose of all references on destroy.
Properly name WebGLProgramWrapper#initialize.
Remove renderer dependence in WebGLFramebufferWrapper.
2024-02-02 15:30:38 +13:00
Ben Richards
24d739ed72
Emit RESTORE_WEBGL event.
2024-02-02 11:33:27 +13:00
Ben Richards
a0f066c543
Restore WebGL context.
...
All textures and shaders should automatically recover from WebGL
context loss.
Dynamic textures will lose their contents, unfortunately, as the texture
was stored on the GPU.
Frame buffers still have some bugs to work out.
2024-02-01 16:59:00 +13:00
Ben Richards
587b6e7bcd
Merge branch 'master' into webgl-wrappers
2024-02-01 11:00:08 +13:00
Richard Davey
51074c4567
The PostFXPipeline.postBatch
method will now skip onDraw
is the pipeline hasn't booted, introducing an artificial frame skip. This should potentially fix glitch errors on mobile devices where Post FX would appear corrupted for a single frame. Fix #6681
2024-01-31 20:23:43 +00:00
Richard Davey
c6c7fd60a6
The BloomFX
and BlurFX
and any custom pipeline that relies on using the UtilityPipeline
full or half frame targets will now correctly draw even after the renderer size changes. Fix #6677
2024-01-31 19:35:10 +00:00
Richard Davey
92065facf0
You can now specify an autoResize
boolean in the RenderTargetConfig
which is passed to the Render Targets when they are created by a pipeline.
2024-01-31 19:15:21 +00:00
Ben Richards
8906e22aeb
Add PipelineManager#restoreContext
method for restoring uniforms.
...
Also add `WebGLShader#syncUniforms` and other code necessary to retain
and reapply uniform state on the GPU.
2024-01-31 16:46:41 +13:00
Ben Richards
b9deef7e61
Destroy location wrappers when they're unused.
2024-01-31 11:53:50 +13:00
Ben Richards
e920b1a961
Create and use wrappers for WebGLUniformLocation and WebGLAttribLocation.
2024-01-30 22:13:51 +13:00
Ben Richards
0f9fb3177d
Fix incorrect WebGL calls.
2024-01-30 11:23:27 +13:00
Ben Richards
2382f7c1eb
Create and use WebGLProgramWrapper.
...
This handles shader programs.
Also tweak the documentation in WebGLBufferWrapper and
WebGLFramebufferWrapper to better reflect purpose.
2024-01-29 17:35:57 +13:00
Ben Richards
377221de35
Create and use WebGLBufferWrapper.
...
This mostly handles VertexBuffers, but there's an IndexBuffer which
is not internally used that uses the same wrapper.
2024-01-29 16:40:18 +13:00
Ben Richards
842d666ebf
Use and document WebGLFramebufferWrapper.
...
Also tweak WebGLTextureWrapper to have more standard destroyers
in itself and WebGLRenderer.
2024-01-29 14:53:23 +13:00
Ben Richards
68671f0d8a
Create WebGLFramebufferWrapper to encapsulate state.
2024-01-29 14:48:28 +13:00
Ben Richards
b591c3674a
Document usage of WebGLTextureWrapper
in place of WebGLTexture
.
2024-01-29 11:47:39 +13:00
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