Commit graph

245 commits

Author SHA1 Message Date
Richard Davey
8d25510b61 GameObjects.GetCalcMatrix is a new function that is used to calculate the transformed Game Object matrix, based on the given Game Object, Camera and Parent. This function is now used by the following Game Objects: BitmapText (Static and Dynamic), Graphics, Mesh, Rope, Shader, Arc, Curve, Ellipse, Grid, IsoBox, IsoTriangle, Line, Polygon, Rectangle, Star and Triangle. This dramatically reduces the amount of duplicate code across the API. 2020-09-14 15:01:40 +01:00
Richard Davey
e5ce83aebd New direct tint value 2020-09-14 11:06:16 +01:00
Richard Davey
4ade25fc79 No longer read private values for tint
The `Multi Pipeline`, `Bitmap Text`, `Render Texture`, `Text`, `TileSprite` and `Camera` now all read the tint values from the public properties instead of the private `_tintTL` etc ones. They also now set the `tintEffect` value directly from the `tintFill` property, removing another conditional check.
2020-09-14 11:05:09 +01:00
Richard Davey
d198818d80 Game Objects now call the new Pipeline Manager methods directly 2020-09-09 13:05:18 +01:00
Richard Davey
4ea080e8a8 JSDoc fix 2020-09-09 13:05:17 +01:00
Richard Davey
7e572c3577 Improves JSDocs 2020-08-25 09:54:09 +01:00
Richard Davey
e77639561b Use charIndex, not i 2020-08-06 17:06:10 +01:00
Richard Davey
6aaf54e8a7 Don't add frame if empty 2020-08-05 14:15:01 +01:00
Richard Davey
96a64eae4e ParseXMLBitmapFont has a new optional parameter texture. If defined, this Texture is populated with Frame data, one frame per glyph. This happens automatically when loading Bitmap Text data in Phaser. 2020-08-05 12:46:28 +01:00
Richard Davey
a2c9c3cef6 Fix char right adjustment 2020-08-05 11:48:25 +01:00
Richard Davey
00e5c5fe0f Update BitmapTextSize.js 2020-08-04 11:25:10 +01:00
Richard Davey
ee01d36918 Update BitmapTextCharacter.js 2020-08-04 11:25:07 +01:00
Richard Davey
1db3ba72f8 Cache shadow values 2020-08-04 11:25:03 +01:00
Richard Davey
50dcc624df Get Character using char top, right and bottom 2020-08-04 11:24:56 +01:00
Richard Davey
1ae0cfc619 Include char top, right and bottom values 2020-08-04 11:24:43 +01:00
Richard Davey
47a62cd30c If you apply setSize to the Dynamic BitmapText the scissor is now calculated based on the parent transforms, not just the local ones, meaning you can crop Bitmap Text objects that exist within Containers. Fix #4653 2020-08-03 11:33:41 +01:00
Richard Davey
2f574070d5 Setting the color value in the DynamicBitmapText.setDisplayCallback would inverse the red and blue channels if the color was not properly encoded for WebGL. It is now encoded automatically, meaning you can pass normal hex values as the colors in the display callback. Fix #5225 2020-08-03 10:53:27 +01:00
Richard Davey
ec845ce015 Use GetColorFromValue 2020-08-03 10:49:05 +01:00
Richard Davey
42d6456993 Encode dropshadow color 2020-08-01 11:24:26 +01:00
Richard Davey
959645d1f0 Always render drop shadow behind text 2020-08-01 11:24:15 +01:00
Richard Davey
22e8d22e3f BitmapText.setWordTint is a new method that allows you to set a tint color (either additive, or fill) on all matching words within a static Bitmap Text. You can specify the word by string, or numeric offset, and the number of replacements to tint. 2020-07-31 18:36:27 +01:00
Richard Davey
b9407967e3 If you give an invalid Bitmap Font key, the Bitmap Text object will now issue a console.warn. 2020-07-31 18:00:31 +01:00
Richard Davey
79e985dd93 Updated docs 2020-07-31 17:09:40 +01:00
Richard Davey
c0109c1ec9 BatchChar is a new internal private function for batching a single character of a Bitmap Text to the pipeline. 2020-07-31 16:54:29 +01:00
Richard Davey
2e378b68d1 Apply the dropShadow 2020-07-31 16:39:21 +01:00
Richard Davey
c228dd596a BitmapText.setDropShadow is a new method that allows you to apply a drop shadow effect to a Bitmap Text object. You can set the horizontal and vertical offset of the shadow, as well as the color and alpha levels. Call this method with no parameters to clear a shadow. 2020-07-31 16:39:05 +01:00
Richard Davey
aac2276692 BitmapText.preDestroy is a new method that will tidy-up all of the BitmapText data during object destruction. 2020-07-31 16:22:53 +01:00
Richard Davey
7ce39b991c Removed un-used properties 2020-07-31 16:17:36 +01:00
Richard Davey
9419606f12 BitmapText.setCharacterTint is a new method that allows you to set a tint color (either additive, or fill) on a specific range of characters within a static Bitmap Text. You can specify the start and length offsets and a per-corner tint color. 2020-07-31 16:17:23 +01:00
Richard Davey
fc6e7ef759 Removed un-used properties 2020-07-31 15:46:05 +01:00
Richard Davey
4baa0522b9 Bumping to 3.50 2020-07-31 13:41:29 +01:00
Richard Davey
d16d8dc9ce BitmapTextWebGLRenderer has been rewritten from scratch to make use of the new pre-cached WebGL uv texture and character location data generated by GetBitmapTextSize. This has reduced the number of calculations made in the function dramatically, as it no longer has work out glyph advancing or offsets during render, but only when the text content updates. 2020-07-31 13:39:49 +01:00
Richard Davey
49682e744d Update BitmapText.js 2020-07-31 13:34:50 +01:00
Richard Davey
72654e04d3 Fixed bounds sizes 2020-07-31 13:34:28 +01:00
Richard Davey
c166976fcc Update BitmapTextCharacter.js 2020-07-31 12:06:57 +01:00
Richard Davey
a4577e2135 The GetBitmapTextSize function has a new boolean parameter updateOrigin, which will adjust the origin of the parent BitmapText if set, based on the new bounds calculations. 2020-07-31 12:06:45 +01:00
Richard Davey
a682b83b7c BitmapText.getCharacterAt is a new method that will return the character data from the BitmapText at the given x and y corodinates. The character data includes the code, position, dimensions and glyph information. 2020-07-31 11:36:48 +01:00
Richard Davey
e195aac919 ParseXMLBitmapFont will now calculate the WebGL uv data for the glyphs during parsing. This avoids it having to be done during rendering, saving CPU cycles on an operation that never changes. 2020-07-31 11:32:37 +01:00
Richard Davey
214b383fcd Use correct scale and added start of getCharacterAt method 2020-07-30 23:59:06 +01:00
Richard Davey
a39bcfe69a Always return chars 2020-07-30 22:38:06 +01:00
Richard Davey
a678f723c6 Always calculate includeChars 2020-07-30 22:37:34 +01:00
Richard Davey
1579069c50 Pixel accurate character data 2020-07-30 18:24:04 +01:00
Richard Davey
eef67b6c11 Update BitmapTextWebGLRenderer.js 2020-07-30 18:23:50 +01:00
Richard Davey
77feb773fd Fixed descriptions 2020-07-30 18:23:45 +01:00
Richard Davey
b108cd03f0 Fix call to GetBitmapTextSize 2020-07-30 15:43:43 +01:00
Richard Davey
408a545aac BitmapTextWord, BitmapTextCharacter and BitmapTextLines are three new type defs that are now part of the BitmapTextSize config object, as returned by getTextBounds. This improves the TypeScript defs and JS Docs for this object. 2020-07-30 15:24:49 +01:00
Richard Davey
286be7df49 The GetBitmapTextSize and BitmapText.getTextBounds functions have a new boolean parameter includeChars. When set to true it will include a characters array in the returned bounds object that contains the scaled position coordinates of each character in the BitmapText, which you could use for tasks such as determining which character of the object was clicked. 2020-07-30 15:14:25 +01:00
Richard Davey
cc3d3f7da3 The GetBitmapTextSize function used Math.round on the values, if the round parameter was true, which didn't create integers. It now uses Math.ceil instead to give integer results. 2020-07-30 14:47:31 +01:00
Richard Davey
841389628e The BitmapText.getTextBounds method was being called every frame, even if the bounds didn't change, potentially costing a lot of CPU depending on the text length and quantity of them. It now only updates the bounds if they change. 2020-07-30 14:46:32 +01:00
Richard Davey
6c9a5f62a6 Uses setGameObject to support Light2D 2020-07-16 15:15:48 +01:00
Richard Davey
a21641e19b The Dynamic Bitmap Text Game Object WebGL Renderer function has been updated to support multi-texture units. 2020-07-15 16:54:04 +01:00
Richard Davey
50f10b3d4b The Bitmap Text Game Object WebGL Renderer function has been updated to support multi-texture units. 2020-07-15 16:53:48 +01:00
Richard Davey
dc13060042 Fixed namespace 2020-07-14 09:45:37 +01:00
Richard Davey
40929a57e3 Calling getTextBounds on a BitmapText object would return the incorrect values if the origin had been changed, but the text itself had not, as it was using out of date dimensions. Changing the origin now automatically triggers BitmapText to be dirty, forcing the bounds to be refreshed. Fix #5121 2020-07-13 14:06:06 +01:00
Jason Kwok
401cb81590 Fixed this return type for Phaser.GameObjects.DynamicBitmapText 2020-01-26 20:16:18 +08:00
Richard Davey
ff65e69cd1 Changed copyright date to 2020 2020-01-15 12:07:09 +00:00
Javier García Álvarez
9d418eae73 Fixed jsdoc types to get TS definition intellisense. 2019-12-18 12:25:14 +01:00
Javier García Álvarez
e1d288a834 Add optional params to ParseFromAtlas doc 2019-12-18 12:22:30 +01:00
Richard Davey
7650c5535f BitmapText with a maxWidth set wouldn't update the text correctly if it was modified post-creation. You can now update the text and/or width independantly and it'll update correctly. Fix #4881 2019-11-26 14:31:27 +00:00
Richard Davey
4a33c7b5c8 Don't reset text 2019-11-22 16:43:13 +00:00
Richard Davey
a7b3cd585d Tidying up 2019-11-22 16:42:53 +00:00
Richard Davey
0d46c7107a Fixed issue with carriage-returns not reflowing text 2019-11-22 16:42:43 +00:00
Richard Davey
4435791cc1 Updated to use current null approach 2019-11-22 13:54:07 +00:00
Richard Davey
28982fb7fc Fixed word wrapping 2019-11-22 13:48:10 +00:00
Richard Davey
b297950875 Added wordWrapCharCode 2019-11-22 13:48:01 +00:00
Richard Davey
5b1401153c Working through BitmapText wrapping 2019-11-21 17:11:43 +00:00
Richard Davey
c60530eedd Removed commented-out code 2019-10-11 18:35:27 +01:00
Richard Davey
be02c80be9 Origin and canvas renderer work again now. Fix #4108 2019-10-01 17:43:47 +01:00
Richard Davey
c91ed91ce3 License link update 2019-05-10 16:15:04 +01:00
Richard Davey
b09ddc9048 GameObject Types 2019-05-09 12:01:00 +01:00
Richard Davey
a51a81791f Bitmap Text Types 2019-05-09 11:54:43 +01:00
J.C
b6047df1b5
flag which version has this method 2019-04-30 23:29:28 +08:00
J.C
8c3de0897e expose ParseXMLBitmapFont for combined XML font file 2019-04-30 19:31:47 +08:00
Richard Davey
e017691c68 The ScaleMode Component has been removed from every Game Object, and along with it the scaleMode property and setScaleMode method. These did nothing anyway as they were not hooked to the render pipeline and scale mode should be set on the texture, not the Game Object. Fix #4413 2019-03-24 23:07:27 +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
4e817497d4 Namespace fixes 2019-02-12 12:48:41 +00:00
J.C
cb0f3e079c add doc for the static method. BTW: have to admit that Phaser is absolutely well considered, even for such case that user probably make all BMFont atlas combined into one. 2019-01-25 11:02:38 +08:00
Richard Davey
aa341854c7 Happy New Year 2019-01-15 16:20:22 +00:00
Richard Davey
5c6d1cbe17
Merge pull request #4214 from matosummer/master
Add link to bitmaptext
2018-12-12 11:27:00 +00:00
Richard Davey
4b27b37a0c Added texture and unit arguments to batchQuad and batchTri, fixing the y2k bug. 2018-12-12 11:08:52 +00:00
Mato
87be97aaf0
Add link to bitmaptext 2018-12-05 16:29:18 +07:00
Richard Davey
6f8759c186 Whenever Camera.roundPixels was enabled it would use a bitwise operation to truncate the float (x |= 0) - this has been replaced across all files that used it, with a call to Math.round instead. This gives far better results when zooming cameras both in and out of a Scene, stopping thin gaps appearing between closely packed Game Objects. 2018-11-30 10:27:25 +00:00
Richard Davey
b0df6892b5 The Canvas SetTransform method would save the context state, but it wasn't restored at the end in the following Game Objects: Dynamic Bitmap Text, Graphics, Arc, Curve, Ellipse, Grid, IsoBox, IsoTriangle, Line, Polygon, Rectangle, Star and Triangle. These now all restore the context, meaning if you're using non-canvas sized cameras in Canvas mode, it will now render beyond just the first custom camera. 2018-11-27 13:54:59 +00:00
Richard Davey
7441ff90ae The Dynamic Bitmap Text Canvas Renderer was creating a new data object every frame for the callback. It now uses the callbackData object instead, like the WebGL renderer does. 2018-10-25 14:11:23 +01:00
Richard Davey
4c73be9dbd The data object being sent to the Dynamic Bitmap Text callback now has a new property parent, which is a reference to the Bitmap Text instance that owns the data object (thanks ornyth) 2018-10-25 14:10:12 +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
Richard Davey
fcaa2bfc4f Completing Game Object jsdocs 2018-09-15 10:31:10 +01:00
Richard Davey
dedc939fdd initPipeline now defaults to the Texture Tint Pipeline if nothing else is specified. 2018-09-05 11:19:02 +01:00
TadejZupancic
7992924aae
Wrong bounds/displayTextOrigin on BitmapText text change
updateDisplayOrigin needs current width and height, which are not recalculated if the _dirty is not set to true.
2018-08-14 12:15:59 +02:00
Richard Davey
84ef115c67 Remove un-used code 2018-08-08 15:01:41 +01:00
Charles Burnham
6a1c677677 Add lineSpacing option to RetroFont Config 2018-08-04 12:52:27 -05:00
Richard Davey
708a857a26 SetTransform is a new Canvas Renderer function that consolidates the process of preparing a Game Object for rendering, without actually rendering it. This is used internally by the Graphics and Bitmap Text classes. 2018-08-03 19:02:43 +01:00
Richard Davey
fc0dc13930 Removed use of currentBlendMode and currentAlpha 2018-08-03 01:53:51 +01:00
Richard Davey
9f44896a3f The Blend Mode is now set directly in all Canvas Renderers without comparing it to what's stored in the Canvas Renderer. This fixes problems where the blend mode would be lost between two different Game Objects because they restored the context, but didn't update the renderer flag. Game Objects in Canvas can now mix and match blend modes across the display list. 2018-08-03 01:29:18 +01:00
Richard Davey
4481795d32 Swapped to using getX / getY 2018-07-27 00:53:00 +01:00
Richard Davey
8873bdcbf6 Fixed pipeline method call 2018-07-26 23:50:54 +01:00
Richard Davey
106e32a4f5 Removed un-used imports 2018-07-19 13:26:11 +01:00
Richard Davey
ec5bd1912e GameObject.willRender now takes a Camera as its only argument and uses it within the check. This has allowed me to remove 23 duplicate checks spread across the various Game Objects, all of which did the same thing, saving both KB and CPU time as the flags were being checked twice in most cases. 2018-07-19 13:19:02 +01:00
Richard Davey
51f94cd444 Merge branch 'master' of https://github.com/photonstorm/phaser 2018-07-11 16:25:26 +01:00