Commit graph

12675 commits

Author SHA1 Message Date
Robert Kowalski
b27e4d3744
Merge pull request #6537 from jorbascrumps/feat-use-seeded-random-for-tilemap-weighted-randomize
Updates `Tilemaps.Components.WeightedRandomize` to use seeded random value
2024-01-30 18:45:20 -05:00
Ben Richards
9b8bb39e7c Fix texture uniform setting in Shader.
This call was crashing with the more explicit location wrappers,
as the location hadn't actually been created yet.
The call isn't necessary, as uniforms are set before rendering.
2024-01-31 11:55:31 +13:00
Ben Richards
b9deef7e61 Destroy location wrappers when they're unused. 2024-01-31 11:53:50 +13:00
Richard Davey
f7049fe831 Merge branch 'master' of https://github.com/phaserjs/phaser 2024-01-30 22:44:28 +00:00
Richard Davey
04b28e63f2 Fixed jsdoc 2024-01-30 22:44:25 +00:00
Ben Richards
e920b1a961 Create and use wrappers for WebGLUniformLocation and WebGLAttribLocation. 2024-01-30 22:13:51 +13:00
Robert Kowalski
be5223936a Update CHANGELOG-v3.80.md 2024-01-29 23:33:19 -05:00
Robert Kowalski
6c55aba8d9
Merge pull request #6714 from dhashvir/master
fix nineslice hit areas
2024-01-29 20:04:33 -05:00
Ben Richards
0f9fb3177d Fix incorrect WebGL calls. 2024-01-30 11:23:27 +13:00
Robert Kowalski
ddc43fcbee
Merge pull request #6694 from Byvire/master
Check for undefined to avoid a crash in the examples at phaser3-custo…
2024-01-29 15:27:08 -05:00
Robert Kowalski
e0e3de008a
Merge pull request #6722 from samme/feature/setTilesetImage-warnings
Improve the warnings in addTilesetImage()
2024-01-29 12:38:05 -05:00
samme
002fa6300a Improve the warnings in addTilesetImage() 2024-01-29 09:17:41 -08: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
Robert Kowalski
2e4b43be4e AnimationFrame duration is the duration of the frame if set, msPerFrame is not added 2024-01-26 13:19:54 -05:00
Robert Kowalski
1bfdcfe922 TileSprite textures are now stored in the TextureManager 2024-01-24 19:54:46 -05:00
Robert Kowalski
6ea40f8b32 Text textures are now stored in the TextureManager 2024-01-24 17:25:42 -05:00
Richard Davey
91b2b0c531 lint fix 2024-01-23 00:46:53 +00:00
Dhashvir Lalla
835d77cb85 fix nineslice hit areas 2024-01-15 05:16:56 +11:00
Richard Davey
95df650f71 The Time.Timeline class didn't show as extending the Event Emitter, or have config as an optional argument in the docs / TS defs. Fix #6673 2024-01-12 18:21:59 +00:00
Richard Davey
786a3933cd Factory.staticBody had the wrong return type in the docs/TS defs. Fix #6693 2024-01-12 18:18:06 +00:00
Richard Davey
2c4df2488b Update SCALE_MODE_CONST.js 2024-01-12 18:08:42 +00:00
Richard Davey
d6d4fc9705
Merge pull request #6703 from rexrainbow/expand-scale-mode
Add EXPAND scale mode
2024-01-12 18:05:39 +00:00
Richard Davey
d137a4782f
Merge pull request #6683 from paxperscientiam/patch-2
Update GetFirst.js
2024-01-12 18:03:57 +00:00
Richard Davey
9febc6b44a Update version number 2024-01-12 18:03:09 +00:00
Richard Davey
e91551b4c5
Merge pull request #6686 from samme/fix/container-destroy-child
Fix removing destroyed Container children
2024-01-12 17:57:57 +00:00
Richard Davey
8cae5a33e7 Update TextureManager.js 2024-01-12 17:56:30 +00:00
Richard Davey
08f340c438
Merge pull request #6670 from stevenwithaph/master
Added correct parameters for create
2024-01-12 17:55:22 +00:00
Richard Davey
9018430e30
Merge pull request #6666 from PresentCreativeLLC/typofix/NineSlice
Update NineSlice.js correcting a typo
2024-01-12 17:51:16 +00:00
Richard Davey
8287d44a04
Merge pull request #6679 from somechris/touch-move-coordinates-on-scrolled-down-page
Fix `InputManager.onTouchMove` to work on scrolled-down pages
2024-01-12 17:48:05 +00:00
Richard Davey
b6c7b51f3d
Merge pull request #6685 from samme/docs/dragend-dropped
Docs: add `dropped` argument in DRAG_END, GAMEOBJECT_DRAG_END
2024-01-12 17:46:38 +00:00
Richard Davey
74515f6437 The TweenChainBuilder was incorrectly setting the persist flag on the Chain to true, which goes against what the documentation says. It now correctly sets it to false. This means if you previously had a Tween Chain that was persisting, it will no longer do so, so add the property to regain the feature. 2024-01-12 17:43:51 +00:00
Rex
3b8d019b97 Add EXPAND scale mode 2023-12-31 17:11:38 +08:00
Oliver Kisielius
9ac03cd565 Check for undefined to avoid a crash in the examples at phaser3-custom-build. 2023-12-13 15:06:21 -05:00
samme
3b2ed4a4fe Exclude the renderers 2023-12-11 17:33:57 -08:00
samme
7b648c64d2 Docs: add dropped arg in DRAG_END 2023-12-04 14:57:45 -08:00
samme
5cd5cadf79 Fix removing destroyed Container child 2023-12-03 16:14:46 -08:00
Chris
c048c1bb54
Update GetFirst.js
Improve type accuracy for GetFirst
2023-12-02 15:38:05 -05:00
Christian Aistleitner
66901b32d3 Fix InputManager.onTouchMove to work on scrolled-down pages
`document.elementFromPoint` expects plain viewport coordinates [1],
while we used `page[XY]`, which are viewport coordinates with added
scroll offsets [2].

So on pages where no scrolling had yet occurred,
`InputManager.onTouchMove` worked as expected. But as soon as one
scrolled down/right on the page, the element detection was off by the
scroll offset.

We switch from `page[XY]` to `client[XY]` which are plain viewport
coordinates [3] and thereby make element detection work also on pages
that have been scrolled around.

[1] https://drafts.csswg.org/cssom-view/#dom-document-elementfrompoint
[2] https://w3c.github.io/touch-events/#dom-touch-pagex
[3] https://w3c.github.io/touch-events/#dom-touch-clientx
2023-11-24 14:12:20 +01:00
Steven Adams
6a28ccbee1 Added correct parameters for create 2023-11-14 08:38:05 -05:00
Alvaro Estrada
0b22354afd Update NineSlice.js
Fixed the horiztonal typo
2023-11-10 13:43:50 -06:00
Richard Davey
47d393ac29 Update NineSlice.js 2023-11-10 16:44:16 +00:00
Richard Davey
450c8fcae0 Removed generics that were breaking Layer in TypeScript 2023-11-10 15:27:07 +00:00
Richard Davey
131f73005b eslint fix 2023-11-10 15:04:06 +00:00
Richard Davey
0b32610e56 Updated version to 3.70 2023-11-10 15:04:01 +00:00
Richard Davey
b44b2eda5a Revert "Merged all of the Matter JS "Improved performance and reduced memory usage" changes from PR 1238"
This reverts commit bfd08db935.
2023-11-10 14:58:18 +00:00
Richard Davey
1cae6391b3 Revert "Testing sleep static fixes"
This reverts commit f0d5280cf8.
2023-11-10 14:58:02 +00:00
Richard Davey
988ca7d2bf Updated docs re: #6574 2023-11-10 14:49:36 +00:00
Richard Davey
f0d5280cf8 Testing sleep static fixes 2023-11-10 13:44:47 +00:00
Richard Davey
bd67ed38a5 Disable roundPixels when drawing lines 2023-11-09 22:30:53 +00:00
Richard Davey
bfd08db935 Merged all of the Matter JS "Improved performance and reduced memory usage" changes from PR 1238 2023-11-09 22:12:12 +00:00
Richard Davey
1b93e66cb1 Updates to support the new scale9 Frame data
* You can now create a `NineSlice` Game Object without specifying a width or height for it. If you do this, it will use the size of the texture frame instead.
* The `NineSlice` Game Object will now check to see if its associated Frame has any scale9 data set, and if so this is now used automatically to populate all of the border values.
* The `NineSlice.setSlices` method has a new optional boolean parameter `skipScale9` which will allow you to set the border values of the Nine Slice directly, even if its Frame has associated scale9 data
2023-11-09 18:26:37 +00:00
Richard Davey
dada2ad181 Now parses Texture Packer 7.1.0 scale9 data and stores it on the Frames 2023-11-09 18:23:44 +00:00
Richard Davey
921ff93ba0 Added setScale9 method and scale9 and is3Slice boolean properties
* `Frame.setScale9` is a new method that allows you to set the scale9 data associated with the given Frame. This is used internally by the Texture Packer parsers, but can also be called directly.
* `Frame.scale9` is a new read-only boolean property that returns `true` if the Frame has scale9 data associated with it.
* `Frame.is3Slice` is a new read-only boolean property that returns `true` if the Frame has scale9 data associated with it that is 3-slice instead of 9-slice.
2023-11-09 18:23:27 +00:00
Richard Davey
a7d7a7d526 The Game instance will now boot the new SYSTEM_READY event, which indicates that the internal Scene System has been created by the Scene Manager and is ready for use. The Texture Manager now listens for this event in order to create the stamp Image. This fixes an issue where the stamp would throw a run-time error if the game didn't feature a preload function. Fix #6616 2023-11-09 13:42:00 +00:00
Richard Davey
1afb2810bf Expose new system ready event 2023-11-09 13:40:45 +00:00
Richard Davey
4e19417657 Create SYSTEM_READY_EVENT.js 2023-11-09 13:40:39 +00:00
Richard Davey
6f801eeac7 The TextureSource.setFilter method will now check to see if renderer is defined before accessing its gl property. This avoids Phaser crashing if you're in headless mode and set anti-aliasing to false in the game config. Fix #6663 2023-11-08 18:48:36 +00:00
Richard Davey
cda0c04afd There was an issue when loading Normal Maps with Sprite Sheets. Often, if the normal map image completed loading before the sprite sheet, it would cause it to be incorrectly added to the Texture Manager, resulting in broken frames. Now, regardless of the load order, the sprite sheet is added with its normal map correctly together. Fix #6491 2023-11-08 18:40:08 +00:00
Richard Davey
f49a8ee897 The MultiAtlas File Loader didn't prepend the Loader.prefix if set. This now forms part of the key, leading to the correct keys used for the Texture Manager. Fix #6614 2023-11-08 18:05:15 +00:00
Richard Davey
3b190360f1 During Game.runDestroy it will now check for this.domContainer.parentNode before trying to remove it, preventing errors if the DOM Container has already been removed. Fix #6559 2023-11-08 16:49:39 +00:00
Richard Davey
f844e966bc The RandomDataGenerator#weightedPick method will no longer under-sample the first and last elements in the given array, leading to better distribution of results. Fix #6562 2023-11-08 16:44:27 +00:00
Richard Davey
494ea72108 The BaseSound.destroy method will now call BaseSound.stop which will reset the isPlaying and other flags. Fix #6645 2023-11-08 16:26:48 +00:00
Richard Davey
304275dc7d
Merge pull request #6570 from Trissolo/feature/GeomLine-SetFromVectors
Added a new method: Phaser.Geom.Line#setFromObjects()
2023-11-08 16:15:14 +00:00
Richard Davey
5079f8e010
Merge pull request #6577 from Trissolo/fix/intersects-GetLineToPoints
Fix Geom.Intersects#GetLineToPoints
2023-11-08 16:12:34 +00:00
Richard Davey
f17cd8b50b When creating a TimelineEvent you can now set a new optional callback: if. If set, this callback is invoked at the start of the TimelineEvent. If it returns true, then the rest of the event is processed (i.e. tweens started, sound played, etc) otherwise the event is skipped. This allows you to create conditional events within a Timeline. 2023-11-08 16:09:42 +00:00
Richard Davey
1d15ac9a73 Fixed namespace 2023-11-08 15:56:28 +00:00
Richard Davey
4baa9bb80d
Merge pull request #6596 from rexrainbow/timeline-improvement
Timeline improvement
2023-11-08 15:53:32 +00:00
Richard Davey
9480cdac29
Merge pull request #6612 from PresentCreativeLLC/PathGetPointsUpdate
Update Path.js
2023-11-08 15:50:49 +00:00
Richard Davey
e8bb5f700e Fixed errors from #6626 2023-11-08 15:47:56 +00:00
Richard Davey
cc7b6c4a08
Merge pull request #6626 from rexrainbow/layer-remove-removeall
[Layer] Update remove, removeAll, add methods
2023-11-08 15:45:50 +00:00
Richard Davey
c7c3066777
Merge pull request #6602 from johnhyde/patch-1
Update InputConfiguration.js: Clarify alphaTolerance
2023-11-08 15:42:16 +00:00
Richard Davey
a6e9e4a4aa
Merge pull request #6624 from PresentCreativeLLC/EdgeZoneConstructorCorrection
Constructor parameters correction
2023-11-08 15:40:38 +00:00
Richard Davey
c7785b0f12
Merge pull request #6610 from PresentCreativeLLC/EmitterOpRandomMinMaxConfigFix
EmitterOpRandomMinMaxConfig type correction
2023-11-08 15:40:09 +00:00
Richard Davey
ea98751d05
Merge pull request #6609 from PresentCreativeLLC/ParticleDataTypesUpdate
Created ParticleData description
2023-11-08 15:39:09 +00:00
Richard Davey
28a605def3
Merge pull request #6608 from PresentCreativeLLC/ParticleEmitterTypesUpdate
Added the use of Vector2Like
2023-11-08 15:38:31 +00:00
Richard Davey
e552becd33
Merge pull request #6620 from PresentCreativeLLC/EmitZoneDataCorrection
Type clarification for emit zone data
2023-11-08 15:37:16 +00:00
Richard Davey
392be38db3
Merge pull request #6619 from PresentCreativeLLC/EmitterOpOnEmitCallbackUpdate
EmitterOpOnEmitCallback update
2023-11-08 15:36:48 +00:00
Richard Davey
36472d491d
Merge pull request #6625 from PresentCreativeLLC/DeathZoneObjDescription
Updated the description of DeathZoneObj
2023-11-08 15:36:21 +00:00
Richard Davey
21338577b8
Merge pull request #6628 from PresentCreativeLLC/AddZonesFix
AddEmitZone and AddDeathZone parity
2023-11-08 15:34:12 +00:00
Richard Davey
23372fa6cb
Merge pull request #6636 from PresentCreativeLLC/EmitterColorOpDescriptionCorrection
Added to the description that EmitterColorOp is an extension
2023-11-08 15:31:50 +00:00
Richard Davey
065d3f4635
Merge pull request #6637 from PresentCreativeLLC/EmitterOpRandomStartEndConfigRemoval
Removed interface EmitterOpRandomStartEndConfig
2023-11-08 15:31:28 +00:00
Richard Davey
a8a894e9dc
Merge pull request #6639 from PresentCreativeLLC/EmitterOpPropertyValueTypeAddition
Added missing reference to EmitterOpOnUpdateType
2023-11-08 15:30:55 +00:00
Richard Davey
2d1c24cc3a
Merge pull request #6641 from rexrainbow/gameobject-tint-getter
Add getter of tint property
2023-11-08 15:29:29 +00:00
Richard Davey
070e42d64e
Merge pull request #6648 from samme/fix/PutTileAt-2
Fix TypeError in PutTileAt()
2023-11-08 15:28:12 +00:00
Richard Davey
315e3b757f
Merge pull request #6653 from PresentCreativeLLC/TextColorGradient
Extended color and stroke definitions
2023-11-08 15:27:23 +00:00
Richard Davey
d9f2891292
Merge pull request #6660 from neki-dev/master
Fixed jsdoc for GetRandom
2023-11-08 15:26:40 +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
cc931f869c Added disablePreFX and disablePostFX flags 2023-11-08 12:34:46 +00:00
Richard Davey
eea31c7be8 Structs.Map.setAll is a new method that allows you to pass an array of elements to be set into the Map. This is a chainable method. 2023-11-08 12:09:05 +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
ed5c44a65e Fixed an issue in the way the Tilemap WebGL Renderer would call batchTexture that meant if you applied a PostFX to a Tilemap it would apply the fx for every single tile in the layer, instead of just once per layer. In a simple map this fix has reduced draw calls from over 12,000 to just 52, making it useable. 2023-11-07 22:51:11 +00:00