Commit graph

1318 commits

Author SHA1 Message Date
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
Richard Davey
554ef91353 Correct docs 2022-10-04 14:49:26 +01:00
Richard Davey
e774987897 Removed unused code 2022-10-04 14:49:19 +01:00
Richard Davey
1316c09d1c Merge branch 'master' of https://github.com/photonstorm/phaser 2022-10-04 13:17:44 +01:00
Richard Davey
d9a30e6c52 Remove unused shaders 2022-10-04 13:17:33 +01:00
arbassic
58cf547d47 fix: use webgl 1 pattern to always use best precision available 2022-10-04 01:11:10 +02:00
Richard Davey
1a23b31947 Remove swap and rename method 2022-10-03 22:07:07 +01:00
Richard Davey
b52a730f9b Rename function 2022-10-03 22:06:58 +01:00
Richard Davey
416aa053da Swap to using RenderTarget, much cleaner 2022-10-03 21:09:15 +01:00
Richard Davey
eba9254e1a The BitmapMaskPipeline now hands over most control of the framebuffers to the WebGLRenderer. 2022-10-03 18:50:48 +01:00
Richard Davey
b327f39c5e Bitmap Mask updates
* The `WebGLRenderer` has 4 new properties: `maskTargetFramebuffer`, `maskSourceFramebuffer`, `maskTargetTexture` and `maskSourceTexture`. These are the new global locations of the mask framebuffers.
* `WebGLRenderer.createBitmapMask` is a new method that internally creates the Bitmap Mask framebuffers.
* `WebGLRenderer.clearBitmapMask` is a new method that internally clears the existing Bitmap Mask framebuffers, called as part of a resize event.
* `WebGLRenderer.enableBitmapMask` is a new method that starts the process of using the mask target framebuffer for drawing. This is called by the `BitmapMaskPipeline`.
* `WebGLRenderer.drawBitmapMask` is a new method that completes the process of rendering using the mask target framebuffer. This is called by the `BitmapMaskPipeline`.
2022-10-03 18:49:55 +01:00
Richard Davey
dcb1c8a9dd Allowing custom resolution for mask shader 2022-09-29 23:35:06 +01:00
Richard Davey
3abea4286f When rendering a Sprite with a Camera set to roundPixels it will now run Math.floor on the Matrix position, preventing you from noticing 'jitters' as much when Camera following sprites in heavily zoomed Camera systems. 2022-09-29 22:11:02 +01:00
Richard Davey
2e870a0a2c Previously, the Multi Tint methods batchSprite, batchTexture, batchTextureFrame and batchFillRect would all make heavy use of the TransformMatrix.getXRound and getYRound methods, which in turn called getX and getY and applied optional rounding to them. This is all now handled by one single function (setQuad) with no branching, meaning rendering one single sprite has cut down 16 function calls and 48 getters to just 1 function. 2022-09-29 17:17:24 +01:00
Richard Davey
ab04cb6c05 Lots of LightPipeline improvements
* The Light Pipeline no longer creates up to `maxLights` copies of the Light shader on boot. Previously it would then pick which shader to use, based on the number of visible lights in the Scene. Now, the number of lights is passed to the shader and branches accordingly. This means rather than compiling _n_ shaders on boot, it now only ever needs to create one.
* You can now have no lights in a Scene, but the Scene will still be impacted by the ambient light. Previously, you always needed at least 1 light to trigger ambient light (thanks jstnldrs)
* The `Light.frag` shader now uses a new `uLightCount` uniform to know when to stop iterating through the max lights.
* The `LightPipeline.LIGHT_COUNT` constant has been removed as it's not used internally.
* The `LightPipeline` previous created a global level temporary vec2 for calculations. This is now part of the class as the new `tempVec2` property.
2022-09-23 00:42:04 +01:00
Richard Davey
a135271f19 Use new uLightCount uniform 2022-09-23 00:41:47 +01:00
Richard Davey
b789742636 Update Utils.js 2022-09-22 14:55:29 +01:00
Richard Davey
9d43583a63 This shader is just better. More crappy iOS testing needed though. 2022-09-21 23:13:04 +01:00
Richard Davey
023343c789 All events have a type of string. Fix #6136 2022-09-21 22:01:03 +01:00
Richard Davey
a79cb668aa
Merge pull request #6202 from samme/fix/render-texture-snapshot-pixel-alpha
Fix wrong alpha in snapshot pixel
2022-09-05 18:34:03 +01:00
brendo
93eceb7d99 show error code 2022-08-30 07:42:14 +08:00
samme
bbd4840dbc Fix wrong alpha in snapshot pixel 2022-08-26 10:44:06 -07:00
Richard Davey
4c2d3e3cff setTextureZero will now set isTextureClean to false 2022-08-24 13:56:12 +01:00
Richard Davey
9bc8826684 Specify the canvas is for drawing, not reading 2022-08-18 18:01:45 +01:00
Richard Davey
f09ec762ee Removed Graphics Pipeline
The WebGL Graphics Pipeline has been removed. This pipeline wasn't used in v3.55, as all Graphics rendering is handled by the MultiTint pipeline, for better batching support. No Phaser Game Objects use the Graphics pipeline any longer, so to save space it has been removed and is no longer installed by the Pipeline Manager.
2022-07-12 13:39:51 +01:00
Jonah Jeleniewski
e8c8be0385
Let texture scaleMode override the antialias setting under CANVAS 2022-06-11 18:07:29 +10:00
Richard Davey
aa2dda09e2 UtilityPipeline.blitFrame has a new optional boolean parameter flipY which, if set, will invert the source Render Target while drawing it to the destination Render Target. 2022-05-30 18:25:21 +01:00
samme
54d12080eb
Docs: fix the mipmapFilter example code 2022-05-09 09:44:09 -07:00
Richard Davey
ed152b92d5 WebGLSnapshot and CanvasSnapshot will now Math.floor the width/height values to ensure no sub-pixel dimensions, which corrupts the resulting texture. Fix #6099 2022-05-06 14:45:36 +01:00
Richard Davey
59fbcc5ca3 Updated copyright year 2022-02-28 14:29:51 +00:00
Richard Davey
c8d3a20754 Updated Multi Pipeline shader so it no longer smacks Safari's arse. 2022-02-03 23:12:15 +00:00
Richard Davey
a4308cfa3a Skips Canvas drawImage calls if invalid frame sizes given. Fix #5951 2022-02-03 16:44:24 +00:00
Richard Davey
0603c3bf0f
Merge pull request #5948 from jcyuan/ie9fix
Ie9fix
2022-02-03 16:21:29 +00:00
Andy Mikulski
6108414b75
WebGLSnapshot: Support custom rendering contexts 2022-01-26 15:02:59 -07:00
J.C
7da6f4d747 in canvas mode, don't draw stuff with no size, it will throws error, and actually unnecessary. 2021-12-21 17:18:35 +08:00
Richard Davey
0e364321e6 Update BitmapMask-frag.js 2021-11-23 18:24:14 +00:00
Richard Davey
6c459eb3d5 Update Multi-frag.js 2021-11-23 18:19:05 +00:00
Richard Davey
8699e97f94 The BitmapMask shader has been recoded so it now works correctly if you mask a Game Object that has alpha set on it, or in its texture. Previously it would alpha the Game Object against black 2021-11-23 18:18:47 +00:00
Richard Davey
c37da11d36 pma is essential - to hell with Firefox! 2021-11-08 21:51:08 +00:00
Richard Davey
2efa08d3db Testing pma off 2021-11-08 18:49:48 +00:00
Richard Davey
fc1234e55b Added createProgram, setBoolean and the new src properties 2021-11-02 18:05:18 +00:00
Richard Davey
565dfc801a WebGLPipeline.setBoolean is a new method that allows you to set a boolean uniform on a shader. 2021-11-02 18:00:25 +00:00
Richard Davey
95d7dc71b2 Update SpriteFXPipeline.js 2021-11-02 17:05:23 +00:00
Richard Davey
c94719e0b8 Added alt swap frame 2021-10-28 01:19:52 +01:00
Richard Davey
03345ea60c Update WebGLPipeline.js 2021-10-27 17:21:59 +01:00
Richard Davey
9980c35c3e Update SpriteFXPipeline.js 2021-10-27 17:21:55 +01:00
Richard Davey
29ada646e0 Updated docs 2021-10-26 00:04:37 +01:00
Richard Davey
17c76c831c The Multi Tint fragment shader now uses the new getSampler function approach from Phaser 4 2021-10-26 00:00:35 +01:00
Richard Davey
4d18ad6ff8 Removed GenerateSrc, removed need for forloop declaration 2021-10-26 00:00:20 +01:00
Richard Davey
55ef37b6fb Removed spriteData, added destroy, tidied up docs 2021-10-21 18:38:15 +01:00
Richard Davey
0020f03ead Fixed Sprite FX targetBounds 2021-10-20 17:02:37 +01:00
Richard Davey
143d63dcb0 Debugging 2021-10-20 12:37:05 +01:00
Richard Davey
508630ad81 Added renderTargets, maxDimension, frameInc and targetIndex 2021-10-20 12:36:54 +01:00
Richard Davey
9e38e37d6f Removed RenderTargets (moved to PM) and flipped projection matrix 2021-10-19 22:48:02 +01:00
Richard Davey
5fb2604292 Removed flip verts 2021-10-19 22:47:34 +01:00
Richard Davey
d46f6e37f3 WebGLPipeline.flipProjectionMatrix is a new method that allows you to flip the y and bottom projection matrix values via a parameter. 2021-10-19 22:47:22 +01:00
Richard Davey
ef4d5d94bb New fsTarget copySubTex approach (faster) 2021-10-19 18:43:15 +01:00
Richard Davey
c6ac6125c9 Update MultiPipeline.js 2021-10-19 18:42:58 +01:00
Richard Davey
b434c3b4f8 Fixed jsdocs 2021-10-18 17:54:25 +01:00
Richard Davey
347b6db490 Added altFrame option and calculations + handy utility functions 2021-10-18 17:49:09 +01:00
Richard Davey
d4edcbd8ca Set default vert shader 2021-10-18 16:01:53 +01:00
Richard Davey
ba0a52e386 Update SpriteFXPipeline.js 2021-10-16 15:30:03 +01:00
Richard Davey
638fd113b5 Flip the Y on textures 2021-10-16 15:23:33 +01:00
Richard Davey
5e509bd72b Removed 'drawToFrame' (it's the only option) and added 'batchTexture' 2021-10-16 15:08:58 +01:00
Richard Davey
acc9f07e5c Fixed data and alpha value 2021-10-15 18:45:23 +01:00
Richard Davey
fd1ab765a3 Full JSDocs and tidied up all the methods 2021-10-15 18:39:10 +01:00
Richard Davey
efa8c8b5a5 Fixed verts and called onFX 2021-10-15 00:59:04 +01:00
Richard Davey
6c00b5cfc4 Added onPreCopy 2021-10-14 18:51:39 +01:00
Richard Davey
8a89700bf7 Fixed shader uniform issue and tidied up code 2021-10-14 18:45:59 +01:00
Richard Davey
bfecf9da5a RenderTarget will now automatically set the wrapping mode to clamp. 2021-10-14 18:45:41 +01:00
Richard Davey
c1c8e5d12b The WebGLRenderer.createTextureFromSource method has a new optional boolean parameter forceClamp that will for the clamp wrapping mode even if the texture is a power-of-two. 2021-10-14 18:45:28 +01:00
Richard Davey
d5a86d7b07 Update SpriteFXPipeline.js 2021-10-14 01:08:06 +01:00
Richard Davey
5d2749f5d6 Update SpriteFXPipeline.js 2021-10-14 00:55:27 +01:00
Richard Davey
219ff50b90 Fixed copyFrame handling 2021-10-13 23:38:04 +01:00
Richard Davey
c4c5453dfb Removed log 2021-10-13 23:35:29 +01:00
Richard Davey
fd54fa741c Update SpriteFXPipeline.js 2021-10-13 18:56:41 +01:00
Richard Davey
635e7283d5 Added buffer to setVertexBuffer and setShader 2021-10-13 18:56:31 +01:00
Richard Davey
0bf366a096 Update SpriteFXPipeline.js 2021-10-13 13:04:08 +01:00
Richard Davey
803d71469e Fixed the vert and uv handling 2021-10-12 21:47:48 +01:00
Richard Davey
4f454a5701 Update WebGLPipeline.js 2021-10-12 21:47:39 +01:00
Richard Davey
3afc8b1a8e Flip the verts 2021-10-12 21:47:33 +01:00
Richard Davey
2a473889dc Update SpriteFXPipeline.js 2021-10-12 18:54:06 +01:00
Richard Davey
85c6c4be44 Swap frame support added and drawSprite method 2021-10-12 18:00:50 +01:00
Richard Davey
68c3fc4171 Fixed resizing. Set RTs in boot. 2021-10-12 16:09:53 +01:00
Richard Davey
6fe88aeee7 Refactored to use existing functions where possible 2021-10-12 13:32:39 +01:00
Richard Davey
9e9c9298eb Much better renderTarget handling. Sprite now draws properly. Config handling done. Need to fix bindAndDraw 2021-10-12 01:03:45 +01:00
Richard Davey
53eb64b92b Added isSpriteFX property 2021-10-12 01:03:18 +01:00
Richard Davey
904ca9f7c4 Removed SpriteFX as you extend it, not instantiate it 2021-10-12 01:03:04 +01:00
Richard Davey
e9d85c57ee Update SpriteFXPipeline.js 2021-10-11 18:49:17 +01:00
Richard Davey
7af3693fb5 Add SpriteFX Pipeline to const and default array 2021-10-11 18:49:13 +01:00
Richard Davey
038ffa7b77 Create SpriteFXPipeline.js 2021-10-11 18:06:42 +01:00
Richard Davey
fa25b9e254 Removed temp function 2021-10-11 18:06:35 +01:00
Richard Davey
5c88dd8593 Only need to set the width 2021-10-11 17:56:26 +01:00
Richard Davey
784f722b90 Remove, we'll handle this elsewhere 2021-10-11 17:56:11 +01:00
Richard Davey
e26eb49769 Update RenderTargetConfig.js 2021-10-11 17:04:20 +01:00
Richard Davey
d32badabf5 When defining the renderTargets in a pipeline config, you can now set optional width and height properties, which will create a Render Target of that exact size, ignoring the scale value (if also given). 2021-10-11 17:02:36 +01:00
Richard Davey
c1430f41dc Testing FX padding 2021-10-11 15:10:57 +01:00
Richard Davey
bf02aaa7ee Update WebGLTextureCompression.js 2021-10-06 18:48:04 +01:00
Richard Davey
01beb898b3 The WebGLRenderer.createTextureFromSource method now accepts the CompressedTextureData data objects and creates WebGL textures from them. 2021-10-06 18:47:35 +01:00
Richard Davey
234ba03b35 Update WebGLRenderer.js 2021-10-05 18:36:50 +01:00
Richard Davey
f376958ca1 Added getCompressedTextureName method 2021-10-05 18:30:17 +01:00
Richard Davey
7bdb9d672f Added supportsCompressedTexture method 2021-10-05 17:04:44 +01:00
Richard Davey
5a941ed509 Expanded to support all formats 2021-10-05 16:48:51 +01:00
Richard Davey
573dd3a14d Added getCompressedTextures method 2021-10-05 16:48:42 +01:00
Richard Davey
b968e46ee2 The Multi Pipeline now uses highp float precision by default, instead of mediump. This fixes issues with strange blue 'spots' appearing under WebGL on some Android devices. Fix #5751 #5659 #5655 2021-09-28 15:56:54 +01:00
Richard Davey
6cd7d6ce79 The Camera will now emit PRE_RENDER and POST_RENDER events under the Canvas Renderer. Fix #5729 2021-09-28 15:39:47 +01:00
Richard Davey
47bbde0e4b With roundPixels set to true in the game or camera config, Sprites will no longer render at sub-pixel positions under CANVAS. Fix #5774 2021-09-28 15:34:46 +01:00
Richard Davey
0ab2534306 Update PipelineManager.js 2021-09-21 14:53:18 +01:00
samme
8c2b1a7e35 Fix snapshotCanvas
Fixes #5792
2021-07-28 10:29:15 -07:00
Richard Davey
78b9215e2f Added the missing WebGLPipelineUniformsConfig type def. Fix #5718 (thanks @PhaserEditor2D) 2021-05-26 15:38:51 +01:00
Richard Davey
3a6e82a042 The WebGLShader.set1fv, set2fv, set3fv, set4fv, set1iv, set2iv, set3iv, set4iv, setMatrix2fv, setMatrix3fv and setMatrix4fv methods no longer try to do array comparisons when setting the uniforms, but sets them directly. Fix #5670 2021-05-24 17:24:03 +01:00
Benjamin Magalhaes
562a05a642 Remove unused WebGLPipelineUniformsConfig 2021-05-13 15:21:35 +02:00
Benjamin Magalhaes
aa97541c3f Fix WebGLPipelineAttributeConfig documentation 2021-05-13 13:31:18 +02:00
Richard Davey
9879a1062e Merged the Graphics Pipeline functions into the MultiPipeline 2021-04-16 18:18:42 +01:00
Vladislav Forsh
670a66c697 Improve types for WebGL texture compression support
(cherry picked from commit 5626acffec17c6b4d66c78b8e0aa52e5cfcd8478)
2021-04-13 13:19:24 +03:00
Richard Davey
e954547cf7 The PipelineManager.rebind method will now flag all pipelines as glReset = true, so they know to fully rebind the next time they are invoked. 2021-03-01 17:50:40 +00:00
Richard Davey
8d7519b84d * WebGLPipeline.glReset is a new boolean property that keeps track of when the GL Context was last reset by the Pipeline Manager. It then redirects calls to bind to rebind instead to restore the pipeline state.
The `WebGLPipeline.rebind` method now accepts an optional parameter `currentShader`. If provided it will set the current shader to be this after the pipeline reset is complete.
2021-03-01 17:50:39 +00:00
Richard Davey
a95c34ce92 WebGLRenderer.deleteTexture will now run resetTextures(true) first, incase the requested texture to be deleted is currently bound. Previously, it would delete the texture and then reset them. 2021-02-17 13:10:10 +00:00
Richard Davey
3deb6672aa RenderTarget.resize will now Math.floor the scaled width and height as well as ensure they're not <= 0 which causes Framebuffer status: Incomplete Attachment errors. Fix #5563 2021-02-16 12:32:55 +00:00
Richard Davey
dff17f52e8 The LightPipeline now only calls batchSprite, batchTexture and batchTextureFrame if the Scene Lights Manager is active. Fix #5522 2021-02-04 16:38:09 +00:00
Richard Davey
5176fcfacd The Canvas Renderer will no longer run a fillRect if clearBeforeRender is false in the Game Config. 2021-02-04 16:06:47 +00:00
Richard Davey
c5cbb413d2 You can now set the boolean preserveDrawingBuffer in the Game Config (either directly, or in the Render Config). This is passed to the WebGL context during creation and controls if the buffers are automatically cleared each frame or not. The default is to clear them. Set to true to retain them. 2021-02-04 15:58:41 +00:00
Richard Davey
a765b7edfc WebGLRenderer.isTextureClean is a new boolean property that tracks of all of the multi-textures are in a clean 'default' state, to avoid lots of gl texture binds and activations during a Scene restart or destruction process. 2021-01-04 15:49:39 +00:00
Richard Davey
e7aff5d0dc Data type fix 2020-12-16 10:25:27 +00:00
Richard Davey
6912124780 Fixed docs 2020-12-15 16:05:34 +00:00
Richard Davey
67b3f812f8 JSDocs 2020-12-14 13:50:50 +00:00
Richard Davey
00ec07d67f JSDoc update 2020-12-14 13:36:51 +00:00
Richard Davey
cbe1a3219a JSDoc improvements 2020-12-14 13:33:42 +00:00
Richard Davey
675e83e539 Fix inverted RenderTexture snapshot. Fix #5445 2020-12-14 10:52:05 +00:00
Richard Davey
5a532da7bf Disable scissor before clearing. 2020-12-14 09:08:28 +00:00
Richard Davey
166c333d13 Should rebind shaders too 2020-12-11 12:41:48 +00:00
Richard Davey
519afd031b Fixed Camera Fade Effect check. Fix #5438 2020-12-11 11:29:16 +00:00
Richard Davey
69f4a6d8fb Added getAspectRatio method 2020-12-11 11:05:20 +00:00
Richard Davey
e4be6dbc90 Fixed JSDocs and removed unused method 2020-12-11 10:33:53 +00:00
Richard Davey
11990bccb4 Added global projection matrix back and removed events 2020-12-11 10:26:15 +00:00
Richard Davey
0d67548343 Compare projection matrix with renderer 2020-12-11 10:24:47 +00:00
Richard Davey
8839007e0f Update the projection matrix on bind 2020-12-11 10:24:27 +00:00
Richard Davey
dbae58368d Removed event as no longer required 2020-12-11 10:24:15 +00:00
Richard Davey
27da1dfa4b Clear just the color buffer 2020-12-11 10:24:05 +00:00
Richard Davey
7acbd816f3 Added new Projection Update event and respond to it 2020-12-10 18:07:25 +00:00
Richard Davey
4f5cedde03 Better method name. Reset once done. 2020-12-10 16:58:34 +00:00
Richard Davey
f1dbea4ead beginCapture can accept dimensions. Reset scissor enables even if same size. Always set drawing height. 2020-12-10 16:55:00 +00:00
Richard Davey
21b968363c Don't resize if already same size. Better binding handling. 2020-12-10 16:53:48 +00:00
Richard Davey
2be3b7aa59 Fixed typos 2020-12-10 16:53:26 +00:00
Richard Davey
197aa9df0f Update WebGLRenderer.js 2020-12-09 15:55:02 +00:00
Richard Davey
edbef4a04a Added eraseMode parameter 2020-12-09 15:54:56 +00:00
Richard Davey
16d4d11939 Final fixes to blitFrame 2020-12-09 15:20:09 +00:00
Richard Davey
1cb6d525be New blitFrame working. Now to adjust when src > target height. 2020-12-09 14:08:24 +00:00
Richard Davey
daadb7d5b6 Fixed way in which custom vertices are defined in the config 2020-12-09 12:18:16 +00:00
Richard Davey
54e306fe3e Added setProjectionMatrix and all of the new pipeline events 2020-12-08 17:38:19 +00:00
Richard Davey
5f279bf4a4 Added RenderTarget, begingCapture, endCapture, resetScissor and resetViewport 2020-12-08 17:37:59 +00:00
Richard Davey
f93c3ea05f Added Pipeline events 2020-12-08 16:15:46 +00:00
Richard Davey
c2bce98532 Added copyFrameRect method 2020-12-08 16:15:06 +00:00
Richard Davey
d6d5c09552 The Shader Game Object now supports being able to use a Render Texture as a sampler2D texture on the shader. Fix #5423 2020-12-07 12:19:42 +00:00
Richard Davey
15a6f50d2c Fixed functions not appearing in the namespace. Fix #5432 2020-12-07 10:11:47 +00:00
Richard Davey
0951a1d2ea Fixed tint property. Fix #5433 2020-12-07 09:42:21 +00:00
Richard Davey
402e6d23b1 Testing making the pipeline responsible for setting the buffer to cut down on potential points of failure 2020-12-04 18:06:16 +00:00
Richard Davey
c6489cf730 Remove un-used shader 2020-12-04 15:29:55 +00:00
Richard Davey
08b304372c Made the Render Events global, not WebGL specific and allowed Canvas Renderer to emit them too 2020-12-04 15:07:26 +00:00
Richard Davey
509fbcae44 Update PipelineManager.js 2020-12-04 13:40:32 +00:00
Richard Davey
e2ccfffd3b Split up the classes to avoid plugin issues. Fix #5420 2020-12-04 13:04:48 +00:00
Richard Davey
dab806e371 Can use same matrix 2020-12-04 12:00:23 +00:00
Richard Davey
82c1ea87da Reset the projection matrix to avoid cache by reference errors. Fix #5425 2020-12-03 14:31:45 +00:00
Richard Davey
3344fc12bf Added resetUniform method 2020-12-03 14:31:21 +00:00
Richard Davey
d2b8f0b7e4 Factor in Camera Zoom to radius 2020-12-03 12:52:12 +00:00
Richard Davey
4d7435f468 Update LightPipeline.js 2020-12-03 11:11:30 +00:00
Richard Davey
97d9cc6fb9 Create 1 shader per light count. Avoids all pointless iteration within the shaders 2020-12-03 10:16:00 +00:00
Richard Davey
8b6d03faaf Fixed JSDoc 2020-12-03 10:15:25 +00:00
Richard Davey
39d45258de Removed un-used properties and improved render function massively 2020-12-02 17:57:32 +00:00
Richard Davey
c10fb834e0 Fixed Tilemap Layer Light2D batch 2020-12-02 15:03:46 +00:00
Richard Davey
35146e72ed Removed Light Layer and moved Point Light to its own Game Object 2020-12-02 13:48:38 +00:00
Richard Davey
6b1fda19e1 Use onActive and reset textures, fixing all rendering issues 2020-12-02 13:15:16 +00:00
Richard Davey
2687be611a Added on onActive hook 2020-12-02 13:14:57 +00:00
Richard Davey
e41d5a0296 Tidying up the class 2020-12-02 11:45:38 +00:00
Richard Davey
e8a36a2477 Update WebGLPipelineUniformsConfig.js 2020-12-02 11:11:52 +00:00
Richard Davey
a694590945 Fixed for 3.50 Beta 12 2020-12-02 11:11:48 +00:00
Richard Davey
2d78642944 Pipelines now populate their own uniforms 2020-12-02 11:11:24 +00:00
Richard Davey
dd1757a288 Shaders will now automatically get all active uniforms and populate the uniforms object 2020-12-02 11:11:08 +00:00
Richard Davey
cbf15747c7 Set default size to 1 2020-12-01 17:24:16 +00:00
Richard Davey
079dbcc72f Back to Normal Map only pipeline 2020-12-01 17:24:04 +00:00
Richard Davey
ea6a7d0f05 Install Point Light Pipeline (build flag?) 2020-12-01 17:23:33 +00:00
Richard Davey
05e046eb0e Added Point Light Pipeline to the const 2020-12-01 17:23:18 +00:00
Richard Davey
496564e9d0 Create PointLightPipeline.js 2020-12-01 17:23:03 +00:00
Richard Davey
c8a8f59d69 New Point Light shader 2020-12-01 17:22:57 +00:00
Richard Davey
239e44b264 Improved docs 2020-11-30 16:13:03 +00:00
Richard Davey
23ad56862f Enable use of 'active' 2020-11-30 14:21:00 +00:00
Richard Davey
e020898134 Update LightPipeline.js 2020-11-30 09:46:28 +00:00
Richard Davey
3149bb5dfa JSDoc fix 2020-11-26 14:19:29 +00:00
Richard Davey
451656c54f Use getXRound and getYRound 2020-11-26 11:39:08 +00:00
Richard Davey
c8cdf9fde2 Fixed Render Texture crop 2020-11-26 11:28:25 +00:00
Richard Davey
a0a32f45e5 Using a Bitmap Mask and a Blend Mode in WebGL would reset the blend mode when the mask was rendered, causing the Game Object to have no blend mode. Fix #5409 2020-11-26 10:14:13 +00:00
Richard Davey
681797ec9d Fixed Canvas Renderer. Fix #5408 2020-11-26 10:04:51 +00:00
Richard Davey
0ee1338765 Better post pipeline call (less code) 2020-11-26 09:51:40 +00:00
Richard Davey
339b4fd3df Added setTime method 2020-11-25 22:44:06 +00:00
Richard Davey
d0da33689b Added bindTexture method 2020-11-24 16:01:25 +00:00
Richard Davey
9cc16720b8 Added bindRenderTarget method. 2020-11-24 15:34:25 +00:00