Commit graph

343 commits

Author SHA1 Message Date
Richard Davey
bdce1b255f Update index.js 2022-09-08 21:36:28 +01:00
Richard Davey
bc7e5f9c79
Merge pull request #6196 from samme/feature/texture-add-remove-key-events
Add texture add/remove key events
2022-08-24 21:20:13 +01:00
samme
7824876bd7 Add texture add/remove key events
- Phaser.Textures.Events.ADD_KEY
- Phaser.Textures.Events.REMOVE_KEY
2022-08-24 10:13:58 -07:00
samme
01735b5a5c Exclude __WHITE in getTextureKeys() 2022-08-23 10:38:51 -07:00
Richard Davey
0258714887 Update TextureManager.js 2022-08-19 16:44:55 +01:00
Richard Davey
7c4eff9251 The CanvasFeatures tests and the TextureManager _tempContext now specify the { willReadFrequently: true } hint to inform the browser the canvas is to be read from, not composited. 2022-08-18 18:01:28 +01:00
Richard Davey
59fbcc5ca3 Updated copyright year 2022-02-28 14:29:51 +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
07f0bd4184 The JSON Hash and Array Texture Parsers will now throw a console.warn if the JSON is invalid and contains identically named frames. 2021-11-03 13:49:24 +00:00
Richard Davey
615321582f Expose the parsers 2021-10-06 18:44:19 +01:00
Richard Davey
97be6a965d Textures.Parsers.PVRParser is a new parser for the PVR compression container format. 2021-10-06 18:44:13 +01:00
Richard Davey
94906435c2 Textures.Parsers.KTXParser is a new parser for the KTX compression container format. 2021-10-06 18:44:03 +01:00
Richard Davey
e4bbc4dec7 TextureManager#addCompressedTexture is a new method that will add a compressed texture, and optionally atlas data into the Texture Manager and return a Texture object than any Sprite can use. 2021-10-06 18:43:20 +01:00
Richard Davey
3a6219914e Now parses compressed textures and sets the algorithm property 2021-10-06 18:42:26 +01:00
Richard Davey
8752890c2c Create MipmapType.js 2021-10-06 17:47:21 +01:00
Richard Davey
f2d21f26fd Create CompressedTextureData.js 2021-10-06 17:47:16 +01:00
Richard Davey
a2428e1424 Create PVRParser.js 2021-10-05 18:30:24 +01:00
Richard Davey
6f9471f40d Create KTXParser.js 2021-10-05 18:30:21 +01:00
samme
c9cbace6f2 Add texture key to the missing frame warning 2021-09-02 10:41:16 -07:00
Sebastian Fast
df9f367b95 #5689 moved _pending to beginning of function 2021-05-13 10:52:06 +02:00
Richard Davey
8a6a4a7219 If TextureSource.destroy has a WebGL Texture it will tell the WebGL Renderer to reset the textures first, before deleting its texture. 2021-02-17 13:11:12 +00:00
Matt Jennings
d30c1682d2 check that renderer exists before accessing renderer.type (fixes #5558) 2021-02-11 15:43:16 -06:00
Richard Davey
b71bfcf7ba The error RENDER WARNING: there is no texture bound to the unit ... would be thrown when destroying a Text Game Object, or any Game Object that uses its own custom texture. Destroying such an object will now reset the WebGL Texture cache. Fix #5464 2021-01-04 15:51:14 +00:00
Richard Davey
abf90070ba Update TextureManager.js 2020-11-26 11:24:32 +00:00
Richard Davey
417f7684c3 More integer to number changes 2020-11-23 10:32:00 +00:00
Richard Davey
02c34cd64e Replace integer with number 2020-11-23 10:22:13 +00:00
Hexus
ef022cd3df Implemented reading WebGL texture dimensions automatically when adding them to the TextureManager 2020-11-18 00:49:19 +00:00
Richard Davey
b278916b3e No need to reset during destroy 2020-10-27 11:38:34 +00:00
Richard Davey
c8a99f00f2 Improved JSDocs 2020-10-03 10:15:19 +01:00
Richard Davey
e368c479a0 The TextureManager now generates a new texture with the key __WHITE durings its boot process. This is a pure white 4x4 texture used by the Graphics pipelines. 2020-09-14 14:54:58 +01:00
Richard Davey
80c571963c Textures.Parsers.JSONHash will now perform a hasOwnProperty check when iterating the frames, skipping anything that isn't a direct property. This should allow you to use generated atlas data that comes from JSON.parse. Fix #4768 2020-08-26 13:06:04 +01:00
Richard Davey
d98d305e2f Frame.setUVs is a new method that allows you to directly set the canvas and UV data for a frame. Use this if you need to override the values set automatically during frame creation. 2020-08-05 12:45:07 +01:00
Richard Davey
4baa0522b9 Bumping to 3.50 2020-07-31 13:41:29 +01:00
Richard Davey
556b5b05be Update TextureSource.js 2020-07-23 16:23:14 +01:00
Richard Davey
fd305591ec Added glIndex and glIndexCounter properties 2020-07-15 16:52:01 +01:00
samme
00d645e438 Print texture key in warning for zero frames 2020-05-08 10:31:20 -07:00
Richard Davey
19c53407e5 CanvasTexture.setSize forgot to update the width and height properties of the Texture itself. These now match the underlying canvas element. Fix #5054 2020-04-27 15:19:00 +01:00
Richard Davey
f4efebfb64
Merge pull request #5103 from samme/docs/misc-6
Docs corrections
2020-04-27 10:01:33 +01:00
Richard Davey
6c47e3d9e1 Formatting fixes 2020-04-27 09:59:40 +01:00
Ben Randall
c4e9860c4b Fixes to JSON texture parsers
Add support for anchors to JSON Hash
Accept pivot value from anchor property or pivot property.
2020-04-26 22:12:06 -07:00
samme
cfe501c338 Docs: correct type for CanvasTexture#getPixels 2020-04-21 11:05:16 -07:00
Richard Davey
3183f1e7de Finished JSDocs 2020-02-04 17:16:19 +00:00
Richard Davey
8f52fe59bb Completed JSDocs 2020-02-04 14:56:28 +00:00
Richard Davey
ff65e69cd1 Changed copyright date to 2020 2020-01-15 12:07:09 +00:00
J.C
8d259cd6c2 add missing parameters for addGLTexture method for TS def 2019-10-23 17:45:48 +08:00
J.C
d56deef62b undo brackets removal 2019-10-18 12:03:11 +08:00
J.C
87b54d2f4f fixed a bug: in case if the environment does not support HTMLVideoElement. 2019-10-16 13:39:52 +08:00
J.C
96dbb3e11a
check to see if the environmet has video element 2019-10-15 15:24:36 +08:00
Richard Davey
9659ec2f47 Added flipY property and setFlipY method. 2019-10-10 12:26:25 +01:00
Richard Davey
69346bb1d3 TextureManager.get can now accept either a string-based key, or a Texture instance, as its parameter. 2019-10-09 10:49:47 +01:00
Richard Davey
94e2ac4f79 Passes off creation to new videoToTexture method 2019-10-03 17:50:18 +01:00
Richard Davey
de1034091e TextureSource.isVideo is a new boolean property that is set when the Texture Source is backed by an HTML Video Element. 2019-10-03 02:28:47 +01:00
Richard Davey
342ad984ac TextureSource.setFilter will now set the scaleMode to the given filter. 2019-10-01 14:42:30 +01:00
Richard Davey
a0292b5685 TextureSource.isGLTexture now checks if the browser supports WebGLTexture before checking to see if source is an instance of one. This should fix issues with Phaser in HEADLESS mode running under node / jsdom, or where WebGLTexture isn't present. Fix #4711 2019-10-01 13:46:37 +01:00
Richard Davey
d5cd37a9ac Texture.remove is a new method that allows you to remove a Frame from a Texture based on its name. Fix #4460 2019-08-07 13:03:00 +01:00
Richard Davey
6c04d99039 Frame.destroy will now null the Frames reference to its parent texture, glTexture and clear the data and customData objects. 2019-08-07 12:59:23 +01:00
Richard Davey
87a685dccc Calling CanvasTexture.update will now automatically call refresh if running under WebGL. This happens for both draw and drawFrame, meaning you no longer need to remember to call refresh after drawing to a Canvas Texture in WebGL, keeping it consistent with the Canvas renderer. 2019-08-01 19:27:47 +01:00
Richard Davey
9e9d264973 getPixels defaults to 0x0 2019-07-21 16:18:21 +01:00
Richard Davey
7d2b34f8ed Warn if invalid texture source 2019-07-15 15:42:25 +01:00
Richard Davey
a737cf0de5 Corrected manager type. 2019-07-13 10:50:06 +01:00
Richard Davey
d432a64576 CanvasTexture has been added to the Textures namespace so it can be created without needing to import it. The correct way to create a CanvasTexture is via the Texture Manager, but you can now do it directly if required. Fix #4651 2019-07-13 10:49:05 +01:00
Richard Davey
4f87c7d441 Updated docs and frame source checks 2019-07-08 15:24:12 +01:00
Richard Davey
c33cf85456 Added isGLTexture property 2019-06-21 16:34:47 +01:00
Richard Davey
1e9ef314c9 Added addGLTexture method to save WebGL Textures directly into the Texture Manager. 2019-06-21 16:10:26 +01:00
Richard Davey
b0b5f202fe Fixed some jsdocs and added WebGLTexture support 2019-06-21 16:08:47 +01:00
Richard Davey
c91ed91ce3 License link update 2019-05-10 16:15:04 +01:00
Richard Davey
0d831ccf71 Texture Types 2019-05-09 12:38:45 +01:00
Richard Davey
f552dde229 Texture.add will no longer let you add a frame to a texture with the same name or index as one that already exists in the texture. Doing so will now return null instead of a Frame object, and the frameTotal will never be incremented. Fix #4459 2019-04-08 14:22:03 +01:00
Richard Davey
56babb5841
Merge pull request #4089 from Cirras/texture-add-base-texture-fix
Make Texture.add() firstFrame check more explicit (Fix issue #4088)
2019-04-08 12:03:17 +01:00
Richard Davey
8cb466b4e9 Clarified the important of the __BASE frame in a Texture #4285 2019-04-08 11:54:47 +01:00
Richard Davey
73dc7899b9 Removed commented logs 2019-04-08 10:19:22 +01:00
Richard Davey
36b40db7f0
Merge pull request #4351 from Cirras/spritesheet-from-atlas-base-texture
Add __BASE texture entry in SpriteSheetFromAtlas parser
2019-04-08 10:17:23 +01:00
Richard Davey
382fed3de7 Added TextureManager.removeKey method and invoke it from Texture.destroy. Fix #4461 2019-04-06 11:35:58 +01:00
Richard Davey
ccf677dfa6 Textures typedefs 2019-02-13 15:43:08 +00:00
Richard Davey
70a87a576d Some legacy instances of float moved to number. 2019-02-13 12:39:36 +00:00
Richard Davey
e7b1d086e7 Moving all of the typedefs to properly namespaced scopes, rather than globals
\o/ ~ "Someone, save me!"
2019-02-13 12:35:12 +00:00
Richard Davey
b50e1c78b5 Lots more jsdoc tweaks and improvements 2019-02-12 15:01:54 +00:00
Richard Davey
dc73993fe2 Added jsdoc version numbers 2019-02-12 12:22:25 +00:00
Richard Davey
ccaae460a4 Added jsdoc version numbers to each event 2019-02-12 11:37:58 +00:00
Cirras
9a38ddf7b8 Add __BASE texture entry to spritesheets created with SpriteSheetFromAtlas parser 2019-02-10 01:33:30 +11:00
Richard Davey
ac1b0d8d85 Added dirty rect arguments to putData method 2019-02-08 19:45:58 +00:00
Richard Davey
eb9ed3463f Lots of namespace and jsdoc fixes 2019-02-01 18:02:58 +00:00
Richard Davey
1eccff1e3b Fixed jsdoc links and markdown bullet lists 2019-01-18 15:20:56 +00:00
Richard Davey
bc962c25dc All listeners use the new Events 2019-01-18 13:41:43 +00:00
Richard Davey
25c1a5fe74 Added Texture Manager Events and moved 'ready' responsibility to it 2019-01-17 11:54:41 +00:00
Richard Davey
aa341854c7 Happy New Year 2019-01-15 16:20:22 +00:00
Richard Davey
d9f0483437 JSDoc update. 2019-01-07 23:13:07 +00:00
jestarray
5aef34884c
texture optional frame parameters
not specifying frame works on said methods
2018-12-21 08:25:42 -08:00
Richard Davey
a2723249a3 CanvasTexture.destroy is a new method that specifically handles the destruction of the CanvasTexture and all of its associated typed arrays. This prevents a memory leak when creating and destroying lots of RenderTextures (which are CanvasTexture backed). Fix #4239 2018-12-18 15:21:24 +00:00
Richard Davey
032c7bd405
Merge pull request #4227 from jcyuan/Branch_v3.15.1
TS definition improvements in doc for v3.15.1 release
2018-12-13 11:58:27 +00:00
J.C
b6c2934e65 doc improvement for typescript 2018-12-13 17:17:09 +08:00
J.C
a3d2ccf65c doc improvement for typescript 2018-12-13 17:17:02 +08:00
Richard Davey
caad527b29 Added getData and putData methods. 2018-12-13 00:30:13 +00:00
Richard Davey
62b489ee04 Merge branch 'master' of https://github.com/photonstorm/phaser 2018-12-11 23:22:04 +00:00
Richard Davey
69e6643800 Added setPixel method. 2018-12-11 23:22:00 +00:00
Richard Davey
d9f89fbde1 Fixed lint error, added docs. 2018-12-11 09:31:56 +00:00
Richard Davey
c239700528 Added getIndex and getPixels methods. 2018-12-11 02:37:00 +00:00
Richard Davey
84bf2e5e93 lint fix 2018-12-08 14:59:07 +00:00
Richard Davey
c3524b345f Added CanvasTexture.drawFrame method. 2018-12-08 13:10:55 +00:00
Richard Davey
7d34db2753 Added clear region arguments 2018-12-07 19:28:38 +00:00
Richard Davey
e9b22500c0
Merge pull request #4097 from Cirras/atlas-to-spritesheet-trimming
Improved trim handling for Spritesheets created from trimmed Texture Atlas Frames
2018-10-19 13:38:24 +01:00
Richard Davey
4c4421c47f Docjam merge 2018-10-19 12:32:43 +01:00
Richard Davey
9dc53d1e5a The WebGLRenderer method canvasToTexture has a new optional argument noRepeat which will stop it from using gl.REPEAT entirely. This is now used by the Text object to avoid it potentially switching between a REPEAT and CLAMP texture, causing texture black-outs 2018-10-12 15:08:53 +01:00
Richard Davey
4b1c762296 Updated @memberOf to @memberof 2018-10-10 10:49:13 +01:00
Richard Davey
a9063604dc Replace @readOnly with @readonly 2018-10-09 13:40:00 +01:00
Cirras
82da94bd46
Improved trim handling for Spritesheets created from trimmed Texture Atlases frames
Fixes issue #4096.
2018-10-06 18:37:37 +10:00
Cirras
0d7d828311
Make Texture.add() firstFrame check more explicit
Fixes issue #4088 where a SpriteSheet created from a trimmed texture atlas frame returns the second frame when the first frame is requested.
2018-10-05 04:29:17 +10:00
Richard Davey
3944e580cc Fixed an error in the batchSprite methods in the Canvas and WebGL Renderers that would incorrectly set the frame dimensions on Sprites with the crop component. This was particularly noticeable on Sprites with trimmed animation frames 2018-09-27 16:49:52 +01:00
Richard Davey
d8fcde46c3 When using CanvasTexture.refresh or Graphics.generateTexture it would throw WebGL warnings like 'bindTexture: Attempt to bind a deleted texture'. This was due to the Frames losing sync with the glTexture reference used by their TextureSource. Fix #4050 2018-09-27 14:16:22 +01:00
Richard Davey
a17b0c2e6c jsdoc fixes 2018-09-27 14:16:09 +01:00
Richard Davey
ab48c1c479 The Texture.getFramesFromTextureSource method has a new boolean argument includeBase, which defaults to false and allows you to set if the base frame should be returned into the array or not.
The `Texture.getFramesFromTextureSource` method was returning an array of Frame names by mistake, instead of Frame references. It now returns the Frames themselves.
2018-09-27 14:11:14 +01:00
Richard Davey
855fde1adb Rebind the source texture 2018-09-13 13:23:42 +01:00
Richard Davey
8ab3240656 Added jsdocs 2018-09-10 20:44:19 +01:00
Richard Davey
4ac490eac8 Added draw method 2018-09-08 01:19:25 +01:00
Richard Davey
9ec4b3433f Updated CanvasTexture class
Fixed jsdoc names.
Added getPixels, imageData, array buffer and other pixel reading properties.
2018-09-07 19:29:58 +01:00
Richard Davey
57758942d1 Account for trim in pixel perfect hit tests. Fix #3938 2018-08-22 17:11:20 +01:00
Richard Davey
2dfe321d67 The getPixelAlpha and getPixel methods in the Texture Manager would allow x/y coordinates from outside the cut area of a frame. It now tests to ensure they're within the frame. Fix #3937 2018-08-21 23:25:08 +01:00
Richard Davey
50baa268e3 addBase64 will return intance for chaining 2018-08-07 16:26:15 +01:00
Richard Davey
fbb67ac201 The CanvasRenderer.DrawImage function has been removed, as has the associated drawImage property from the Canvas Renderer as they're no longer used. 2018-08-06 15:24:51 +01:00
Richard Davey
177e47cb84 The Texture Manager has a new method called renameTexture which will let you rename a texture, changing the key to the new one given. All existing Game Objects will still maintain their reference, even after a rename. 2018-08-03 19:03:52 +01:00
Richard Davey
921cc738d9 Render Textures now use the frame source to store the glTexture in, not locally. 2018-08-03 18:51:07 +01:00
Richard Davey
217bfd2343 Sorting out frame access 2018-08-02 17:59:19 +01:00
Richard Davey
2a66e01577 Added source property so we can purge TSs based on origin 2018-08-02 16:16:46 +01:00
Richard Davey
7566236d9b Added isRenderTexture property. 2018-08-02 12:34:57 +01:00
Richard Davey
261cb79d0d Added addRenderTexture method. 2018-08-02 12:34:01 +01:00
Richard Davey
3efc800bf7 Use global string to cut down on size a little. 2018-08-02 12:33:48 +01:00
Richard Davey
73524df816 The Game boot event flow has changed slightly. The Game will now listen for a texturesready event, which is dispatched by the Texture Manager when the default textures have finished processing. Upon receiving this, the Game will emit the ready event, which all the other systems listen for and respond to. The difference is that the Renderer uses the texturesready event to ensure that it is the first thing to be activated, before any other system. 2018-08-01 13:18:28 +01:00
Richard Davey
08b7d00ce9 Fixed base64 method 2018-07-27 11:19:12 +01:00
Richard Davey
c1111753f0 Added getBase64 method 2018-07-27 09:43:12 +01:00
Edwin222
a137883628 Merge remote-tracking branch 'upstream/master' 2018-07-14 17:00:38 +09:00
Richard Davey
e388b7dae5 Tidy up 2018-07-11 16:23:57 +01:00
Richard Davey
1a7d726a4b jsdoc udpate 2018-07-11 12:33:40 +01:00
Andrew Groff
5c853c640f Fixing code style and making console warning more concise 2018-07-08 15:12:02 -07:00
Andrew Groff
cca6dd605c Adding console warning to notify users when their frame config does not create any frames 2018-07-08 03:22:04 -07:00
Richard Davey
6483cdacb5 Added canvas crop data 2018-07-06 15:34:12 +01:00
Richard Davey
dfebd940c2 Trim flip fixed and function tidied up 2018-07-06 12:33:39 +01:00
Richard Davey
4e1cbc01d8 Removed object creation 2018-07-06 12:22:05 +01:00
Richard Davey
cca6cd0b83 Fixed trimmed frame crop 2018-07-06 12:14:25 +01:00
Richard Davey
9ead9705c4 Preparing for trim crop support 2018-07-05 23:55:12 +01:00
Richard Davey
5063fe30e5 Fixed cropping when texture frame is flipped 2018-07-05 23:01:26 +01:00
Richard Davey
9bd8fb34a4 Changed canvasData to remove duplicate properties. 2018-07-04 17:01:29 +01:00
Richard Davey
43fc988034 Moved crop UV handler to the Frame method. Cleaner and easier. 2018-07-04 15:18:08 +01:00
Richard Davey
436d92831c Added getCropUVs method 2018-07-03 16:47:53 +01:00
Richard Davey
c82c09914e Updated UV values 2018-07-02 23:51:42 +01:00
Richard Davey
8a7ead03a8 Frame.glTexture is a new property that maps to the WebGL Texture for the Frames Texture Source image. It's used internally by the renderer to avoid expensive object look-ups and is set automatically in the Frame constructor. 2018-07-02 13:43:35 +01:00
Richard Davey
8c312090da Solidified use of pixelArt mode 2018-06-27 15:27:16 +01:00
Richard Davey
7a23378015 Unified use of roundPixels, antialias and pixelArt modes 2018-06-27 15:15:00 +01:00
Edwin222
57f159c64b Add description comments to TextureManager.js 2018-06-23 17:20:49 +09:00
Richard Davey
a49e770f89 Added getPixelAlpha method 2018-06-08 17:50:26 +01:00
Richard Davey
350cb037b7 All systems now register themselves with the new PluginCache 2018-05-15 12:51:50 +01:00