Richard Davey
e36a086e5d
Updated data types
2020-11-17 16:50:36 +00:00
Richard Davey
00c7b1d79e
Destroy on reset!
2020-11-17 16:34:52 +00:00
Richard Davey
782a841eeb
Added getPostPipeline method
2020-11-17 16:19:40 +00:00
Richard Davey
080677f28c
Set on creation, not in the component
2020-11-17 14:08:09 +00:00
Richard Davey
39b381d6cc
Clearer responsibility via method parameters
2020-11-09 11:50:41 +00:00
Richard Davey
06c90137c8
Empty parameter means reset pipeline
2020-11-06 15:35:18 +00:00
Richard Davey
a00e169400
Added all the handlers needed for the post pipeline feature
2020-11-04 18:00:50 +00:00
Richard Davey
4b3cc7145e
Testing new pipelineData object.
2020-10-27 18:06:53 +00:00
Richard Davey
ba9b837739
You can now pass a pipeline instance to the GameObject.setPipeline
method, as well as a string.
2020-10-27 14:05:37 +00:00
Richard Davey
e004fa47fc
Creating a Bitmap Mask from a texture atlas that was then used to mask another Game Object also using that same texture atlas would throw the error GL_INVALID_OPERATION : glDrawArrays: Source and destination textures of the draw are the same.
. It now renders as expected. Fix #4675
2020-09-23 18:10:12 +01:00
Richard Davey
6d09f1fe40
Refactored Tint component
...
* `Tint.tintTopLeft` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintTL` which has now been removed.
* `Tint.tintTopRight` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintTR` which has now been removed.
* `Tint.tintBottomLeft` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintBL` which has now been removed.
* `Tint.tintBottomRight` is now a normal property in RGB order, not a setter, and no longer passes through the `GetColorFromValue` function. This directly replaces the private property `_tintBR` which has now been removed.
* The property `Tint._isTinted` has been removed as it's no longer required.
2020-09-14 10:59:32 +01:00
samme
ad0c5ad5db
Docs: since
2020-09-11 10:01:43 -07:00
samme
f05129f30c
Add Transform#copyPosition
...
Needs JSDoc types for Vector3Like, Vector4Like
2020-09-11 09:44:31 -07:00
Richard Davey
e450bf2f1f
Swap to using constants for pipeline names
2020-09-09 13:05:18 +01:00
Richard Davey
cdd612a273
AnimationState has moved namespace to keep things logically together
2020-09-08 09:31:59 +01:00
Richard Davey
98dc69ed23
Added in support for blending animations with addMix
, getMix
and removeMix
.
2020-09-07 15:33:57 +01:00
Richard Davey
438fe3c0d1
No Update unless playing
2020-09-07 14:50:33 +01:00
Richard Davey
94298efc4d
Because do/while loops are quite dangerous
2020-09-07 11:54:08 +01:00
Richard Davey
ec06e79b26
Catch stops
2020-09-07 11:52:37 +01:00
Richard Davey
2b374c7e14
AnimationState.skipMissedFrames
is now used when playing an animation, allowing you to create animations that run at frame rates far exceeding the refresh rate, or that will update to the correct frame should the game lag. Close #4232
2020-09-07 11:32:55 +01:00
Richard Davey
24beb01963
Update AnimationState.js
2020-09-07 10:26:16 +01:00
Richard Davey
ad4f0ce0c4
Updated docs
2020-09-05 12:01:11 +01:00
Richard Davey
2cabbbd504
Renamed to AnimationState
for clarity.
2020-09-05 11:45:00 +01:00
Richard Davey
b0872c188a
The Component.Animation.updateFrame
method has now been removed. Everything is handled by setCurrentFrame
instead, which removes one extra step out of the update process.
2020-09-05 11:12:52 +01:00
Richard Davey
89332aad5f
You can now create Animations directly on Sprite
...
* `Component.Animation.create` is a new method that allows you to create animations directly on a Sprite. These are not global and never enter the Animation Manager, instead risiding within the Sprite itself. This allows you to use the same keys across both local and global animations and set-up Sprite specific local animations.
* All playback methods: `play`, `playReverse`, `playAfterDelay` and `playAfterRepeat` will now check to see if the given animation key exists locally on the Sprite first. If it does, it's used, otherwise it then checks the global Animation Manager for the key instead.
* `Component.Animation.remove` is a new method that will remove a locally stored Animation instance from a Sprite.
* `Component.Animation.get` is a new method that will return a locally stored Animation instance from the Sprite.
* `Component.Animation.exists` is a new method that will check if a locally stored Animation exists on the Sprite.
* The internal `Component.Animation.remove` method has been renamed to `globalRemove`.
* `Component.Animation.textureManager` is a new property that references the global Texture Manager.
* `Component.Animation.anims` is a new property that contains locally created Animations in a Custom Map.
2020-09-04 14:03:57 +01:00
Richard Davey
cebd1d0101
Tidy up order
2020-09-04 11:52:19 +01:00
Richard Davey
858ae68841
Removed startFrame
, chain can take arrays, delayedPlay
rename, playAfterRepeat
method and playAfterDelay
method.
2020-09-04 11:49:16 +01:00
Richard Davey
1515357039
Lots of updates (see full description)
...
* `Component.Animation.timeScale` is a new public property that replaces the old private `_timeScale` property.
* `Component.Animation.delay` is a new public property that replaces the old private `_delay` property.
* `Component.Animation.repeat` is a new public property that replaces the old private `_repeat` property.
* `Component.Animation.repeatDelay` is a new public property that replaces the old private `_repeatDelay` property.
* `Component.Animation.yoyo` is a new public property that replaces the old private `_yoyo` property.
* `Component.Animation.inReverse` is a new public property that replaces the old private `_reverse` property.
* `Component.Animation.startAnimation` is a new public method that replaces the old private `_startAnimation` method.
* The `Component.Animation.getProgress` method has been fixed so it will return correctly if the animation is playing in reverse.
* The `Component.Animation.remove` method will now always be called when an animation is removed, not just once.
* The `Component.Animation.getRepeat` method has now been removed. You can get the value from the `repeat` property.
* The `Component.Animation.setRepeatDelay` method has now been removed. You can set the value using the `repeatDelay` config property, or changing it at run-time.
* `Component.Animation.complete` is a new method that handles the completion in animation playback.
* The `Component.Animation.setTimeScale` method has now been removed. You can set the value using the `timeScale` config property, or changing it at run-time.
* The `Component.Animation.getTimeScale` method has now been removed. You can read the value using the `timeScale` property.
* The `Component.Animation.getTotalFrames` method has been fixed and won't error if called when no animation is loaded.
* The `Component.Animation.setYoyo` method has now been removed. You can set the value using the `yoyo` config property, or changing it at run-time.
* The `Component.Animation.getYoyo` method has now been removed. You can read the value using the `yoyo` property.
2020-09-03 17:56:22 +01:00
Richard Davey
070fc70fe7
Lint fix
2020-09-02 18:07:21 +01:00
Richard Davey
e01f310d16
Added new properties, support for config playback and better delayed handling
2020-09-02 17:56:09 +01:00
Richard Davey
ace0ee7bab
Fixed JSDoc event names
2020-09-02 12:34:58 +01:00
Richard Davey
18cdb5e618
The Animation.play
and playReverse
methods have a new optional parameter timeScale
. This allows you to set the Animations time scale as you're actually playing it, rather than having to chain two calls together. Close #3963
2020-09-01 17:00:16 +01:00
Richard Davey
0dd07333af
Updated to use MultiPipeline
2020-08-21 16:14:59 +01:00
Richard Davey
ec845ce015
Use GetColorFromValue
2020-08-03 10:49:05 +01:00
Richard Davey
2ef28cd0e4
Added getXRound
and getYRound
2020-07-31 15:45:55 +01:00
Richard Davey
0385d108a8
Transform.getLocalPoint
is a new method, available on all Game Objects, that takes an x
/ y
pair and translates them into the local space of the Game Object, factoring in parent transforms and display origins.
2020-07-31 10:28:09 +01:00
Richard Davey
60baaf7708
Made sure array was cleared on destroy #5159
2020-07-13 12:51:36 +01:00
Richard Davey
818343f452
Fixed lint errors with PR #5159
2020-07-13 12:20:10 +01:00
Richard Davey
8951211c74
Merge pull request #5159 from tgroborsch/feature/multi-anims-chain
...
Allow chaining of multible animations
2020-07-13 12:19:03 +01:00
samme
5b9c34a32a
Docs: Depth#depth and Depth#setDepth()
2020-05-25 09:20:42 -07:00
timo
a39199849e
Allow chaining of multible animations
...
With this commit it is possible to chain more than one animation together for example:
this.mole.anims.play('digging',true).anims.chain('lifting').anims.chain('looking').anims.chain('lowering');
This commit introduces a property nextAnimsQueue. It holds all additional nextAnim-Keys in the order the chain()-method was called. It is handed over to the nextAnim-Property in the stop()-method.
2020-05-22 14:03:42 +02:00
timo
b00acb1838
Revert "Allow for chaining multible animations"
...
This reverts commit a5eacab048
.
2020-05-22 13:45:21 +02:00
timo
a5eacab048
Allow for chaining multible animations
...
This allows for chaining multible animations by calling the chain(key) method multible times like this:
this.mole.anims.play('digging',true).anims.chain('lifting').anims.chain('looking').anims.chain('lowering');
This commit adds a new property nextAnimsQueue. This is an array that holds the chained keys in order of chain() requests.
This list will be worked on in the stop() function.
2020-05-22 13:30:37 +02:00
Richard Davey
70a4b9843e
Merge pull request #5038 from halilcakar/master
...
Update JSDocs for events
2020-04-27 11:51:40 +01:00
Richard Davey
4f80ec5748
Fix spelling mistake
2020-04-27 10:13:15 +01:00
samme
03c9c5fa33
Add PathFollower#pathDelta
2020-04-17 09:28:40 -07:00
samme
08aaf6231f
Docs: fix my math in Transform#rotation
2020-03-27 21:18:49 -07:00
halilcakar
43f26ad31f
Update JSDocs for events
2020-03-10 11:11:43 +03:00
samme
a84f7efb45
Docs: radian values for Transform#rotation
2020-02-27 10:15:44 -08:00
Richard Davey
e4c158c883
Merge pull request #4968 from JasonHK/jsdoc
...
Fixed `this` return types
2020-01-29 11:48:43 +00:00
Richard Davey
72f0395eec
Update TransformMatrix.js
...
Added missing braces.
2020-01-29 11:48:11 +00:00
Richard Davey
4de9d52769
Animation.setCurrentFrame
will no longer try to call setOrigina
or updateDisplayOrigin
if the Game Object doesn't have the Origin component, preventing unknown function errors.
2020-01-27 14:48:50 +00:00
Jason Kwok
00818a9c61
Fixed this
return types for Phaser.GameObjects.Components.TransformMatrix
2020-01-26 20:42:58 +08:00
Jason Kwok
c97a59011d
Fixed this
return types for Phaser.GameObjects.Components.PathFollower
2020-01-26 20:36:05 +08:00
samme
f4c011496c
Fix PathFollower always at end of path
2020-01-16 14:44:26 -08:00
Richard Davey
ff65e69cd1
Changed copyright date to 2020
2020-01-15 12:07:09 +00:00
Richard Davey
90c8825ddb
A PathFollower
with a very short duration would often not end in the correct place, which is the very end of the Path, due to the tween handling the movement not running one final update when the tween was complete. It will now always end at the final point of the path, no matter how short the duration. Fix #4950
2020-01-15 10:42:56 +00:00
Richard Davey
a81c2ea132
When playing an Animation, if you were to play another, then pause it, then play another the internal _paused
wouldn't get reset, preventing you from them pausing the animations from that point on. You can now play and pause animations at will. Fix #4835
2020-01-14 22:42:14 +00:00
Richard Davey
1928480913
Fixed JSDocs
2020-01-13 12:35:33 +00:00
Richard Davey
695cb7e4e2
AlphaSingle
is a new Game Object Component that allows a Game Object to set its alpha values, but only as a single uniform value, not on a per-quad basis.
2019-12-28 17:27:01 +00:00
Chris Andrew
15ac5e736a
#4903 Clarified z position documentation by linking to depth GO component.
2019-12-09 16:57:05 +00:00
Richard Davey
ed69ef6626
The GameObject.setTexture
method can now accept either a string, in which case it looks for the texture in the Texture Manager, or a Texture instance, in which case that instance is set as the Game Object's texture.
2019-10-09 10:49:37 +01:00
Richard Davey
55c73d399b
GameObject.ToJSON
will no longer output the scaleMode
in the json because it's not a valid Game Object property.
2019-10-01 14:41:58 +01:00
Richard Davey
fc5630cb72
The displayWidth
and height should never be negative.
2019-08-30 19:35:52 +01:00
Richard Davey
717258e3f1
Docs update
2019-08-05 14:07:36 +01:00
Richard Davey
9f15b5a96b
Removed scale abs, as deeper effects unknown
2019-08-03 11:08:22 +01:00
Richard Davey
cc85ec1d35
Fixed scaleX and scaleY
2019-08-02 17:28:46 +01:00
Richard Davey
c1767e404f
Fixed scaleX and scaleY to handle negative scales and added rotation fix
2019-08-02 01:50:02 +01:00
Richard Davey
6e2d22e5cb
jsdoc update
2019-08-01 17:44:20 +01:00
Richard Davey
718f75b797
TransformMatrix.rotation
now returns the properly normalized rotation value
2019-07-26 14:20:38 +01:00
Richard Davey
14faabcadf
Updated docs
2019-07-26 14:19:44 +01:00
Richard Davey
41d007fe67
Origin.updateDisplayOrigin
no longer applies a Math.floor to the display origins, allowing you to have a 0.x origin for a Game Object that only has a width or height of 1. This fixes issues with things like 1x1 rectangles displaying incorrectly during rendering.
2019-07-15 16:30:08 +01:00
Richard Davey
deca3c95a3
Calling Animation.setRepeat()
wouldn't reset the repeatCounter
properly, causing Sprite bound animation instances to fail to change their repeat rate. Fix #4553
2019-07-03 15:33:13 +01:00
Richard Davey
83e54cfb16
The Animation component will no longer start an animation on a Sprite if the animation doesn't exist. Previously it would throw an error saying "Unable to read the property getFirstTick of null".
2019-07-03 12:02:56 +01:00
Richard Davey
5fa4264219
Added new Transform.getParentRotation method
2019-06-19 10:40:47 +01:00
Richard Davey
11d845a77e
Specifically state this is a render flag only #4574
2019-06-06 09:52:19 +01:00
Richard Davey
8968b2179c
Added GameObject.scale transform property for a unified scale setter
2019-06-05 15:30:23 +01:00
Richard Davey
90e04c7e90
Merge pull request #4563 from samme/types/tween-configs
...
Add types for tween configs
2019-05-30 22:00:37 +01:00
Richard Davey
df0b474638
Added getTopCenter, getBottomCenter, getLeftCenter and getRightCenter
2019-05-29 16:27:31 +01:00
samme
777f436aa3
Add NumberTweenBuilderConfig to path configs
2019-05-28 14:11:28 -07:00
Richard Davey
c91ed91ce3
License link update
2019-05-10 16:15:04 +01:00
Richard Davey
a6341a97a8
Fixed Types references
2019-05-09 15:32:53 +01:00
Richard Davey
b09ddc9048
GameObject Types
2019-05-09 12:01:00 +01:00
Richard Davey
3ca2b667b3
PathFollower Types
2019-05-09 11:57:27 +01:00
Richard Davey
2f48d68735
A shader can now be used as a bitmap mask
2019-05-01 11:12:31 +01:00
Richard Davey
1995be80a2
GameObjects.Components.PathFollower
is a new component that manages any type of Game Object following a path. The original Path Follower Game Object has been updated to use this new component directly, but it can be applied to any custom Game Object class.
2019-04-08 13:53:08 +01: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
3456e19815
Updated jsdocs
2019-03-05 09:20:30 +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
4e817497d4
Namespace fixes
2019-02-12 12:48:41 +00:00
Richard Davey
4f6f6ee72f
Lots of jsdoc and type fixes
2019-01-31 12:19:01 +00:00
Richard Davey
bc962c25dc
All listeners use the new Events
2019-01-18 13:41:43 +00:00
Richard Davey
aa341854c7
Happy New Year
2019-01-15 16:20:22 +00:00
Richard Davey
11ed074450
Refactoring how events are handled internally and in the docs
2019-01-15 14:37:24 +00:00
Richard Davey
49c2868746
All default width/height values are now taken from the Scale Manager, not the Game Config
2019-01-11 15:57:57 +00:00
Richard Davey
1bf9be5e12
Animation.stop guard.
2018-12-13 13:03:54 +00:00
Richard Davey
da0d9802de
Fixed typo
2018-12-06 16:59:53 +00:00
Richard Davey
2fe4d536a9
Updated docs
2018-12-06 15:59:22 +00:00
Richard Davey
e6f5d0144e
Added Animation.chain method to queue an animation to start when the current one ends.
2018-12-06 15:57:52 +00:00
Richard Davey
cd80b27ea6
Updated jsdocs
2018-12-06 15:39:57 +00:00
Richard Davey
8fe2e30635
Removed update event
2018-12-06 15:34:15 +00:00
Richard Davey
9e78553a48
reverse
no longer needs the argument. play
and playReverse
can now take an Animation instance as an argument, not just a key.
2018-12-06 15:28:32 +00:00
Richard Davey
202c6c9c1a
Added nextFrame
and previousFrame
to the Animation component
2018-11-16 14:34:09 +00:00
Richard Davey
5147fb281a
Added new Blend Modes.
2018-11-13 15:10:25 +00:00
Richard Davey
a1273e42b8
Added ERASE blend mode
2018-11-13 10:31:56 +00:00
Richard Davey
d740ca2302
Use QR decomposition or it all goes wrong!
2018-10-26 19:38:30 +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
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
5ad4c8dc2b
All of the Animation Events now pass the Game Object as the final argument, this includes animationstart
, animationrestart
, animationrepeat
, animationupdate
and animationcomplete
.
2018-09-27 15:55:16 +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
Richard Davey
0a4fc5b026
Calling setTimeScale
on the Sprite's Animation component will now set the time scale value and keep it set until you change it again. Previously it would be reset to 1 when a new animation was loaded into the component, but this no longer happens - once the time scale is set it remains in effect, regardless of which animations are played on the Sprite.
2018-08-31 18:45:50 +01:00
Richard Davey
e4a7977bb9
The Transform Matrix has a new method applyInverse
which will take an x/y position and inverse translate it through the current matrix.
2018-08-29 16:11:59 +01:00
Richard Davey
91f7e27ae8
Transform.getWorldTransformMatrix
has been recoded to iterate the transform parents correctly, applying the matrix multiplications as it goes. This (along with some changes in the Input Manager) fix the issue with Game Objects inside of Containers failing hit tests between certain angles. Fix #3920
2018-08-29 16:10:48 +01:00
Richard Davey
01290afda9
A Game Object couldn't have a blend mode of SKIP_TEST
set by using the getter or the setBlendMode
method.
2018-08-21 21:54:38 +01:00
Richard Davey
8d1caff0a4
Updated argument name
2018-08-21 02:29:54 +01:00
Richard Davey
0eef6f1bb9
Updated scroll factor docs to clarify impact on physics bodies #3810
2018-08-20 19:19:53 +01:00
Richard Davey
fe2ddcf934
Updated jsdocs
2018-08-08 17:03:08 +01:00
Richard Davey
50821c29ac
Updated jsdocs
2018-08-06 13:45:56 +01:00
Richard Davey
4deb8e49ad
eslint fixes
2018-08-03 19:37:42 +01:00
Richard Davey
82251cd85b
Removed Matrix Stack. No longer needed.
2018-08-03 19:17:12 +01:00
Richard Davey
0a35275c1a
TransformMatrix.setToContext
is a new method that will set the values from the Matrix to the given Canvas Rendering Context using setTransform rather than transform.
2018-08-03 18:55:33 +01:00
Richard Davey
c98f5edc23
Added resetCropObject
method to cut down on duplicate code.
2018-08-03 18:50:36 +01:00
Richard Davey
b65cf0647b
New Crop Game Object component.
2018-08-03 18:49:10 +01:00
Richard Davey
c4c8b9e6ea
Added copyToContext method
2018-08-02 17:23:52 +01:00
Richard Davey
0c50b0eba8
Typo
2018-07-27 02:13:41 +01:00
Richard Davey
9e40b16e4f
Added getX and getY to cut down on code in pipelines.
2018-07-25 01:26:41 +01:00
Richard Davey
05a6275d9a
Added copyToArray method.
2018-07-25 00:18:33 +01:00
Richard Davey
50de14b132
Merge pull request #3857 from khaleb85/master
...
Added reverse animation feature (issue: #3837 )
2018-07-24 13:41:10 +01:00
khaleb
6b81bc78a3
added since 3.12.0 in new methods, fixed keywords-spacing issue, renamed 'revert' method to 'reverse'
2018-07-24 09:28:56 -03:00
Shukizu
8da8fbedd1
fix animations with yoyo mode (issue: #3837 )
2018-07-22 14:57:07 -03:00
Shukizu
bb17c82bf9
Added 'playReverse' method, and extracted part of play method (issue #3837 )
2018-07-22 12:42:59 -03:00
Shukizu
ebc9d8d96d
Add a 'revert' function that can revert the flow of a animation at any time (issue #3837 )
2018-07-22 11:44:57 -03:00
Richard Davey
d6fb66789f
Added getCSSMatrix
2018-07-19 00:22:10 +01:00
Richard Davey
ab35dfab95
The setCrop
method stored its crop object on the prototype chain by mistake, causing all Images or Sprites that were cropped to display the same frame. The crop data has been moved to the Game Object instance, where it should be, fixing this issue
2018-07-19 00:18:09 +01:00
Richard Davey
eee96cd2d3
setPipeline
returns the Game Object, not the pipeline, to be consistent.
2018-07-13 11:14:08 +01:00
Richard Davey
497fa1f2ff
Added copyFromArray method
2018-07-11 12:36:49 +01:00
Richard Davey
469f6b6880
TransformMatrix.multiply
has a new optional argument out
which is a matrix to store the multiplication results in. If not given it will act as before, multiplying the current matrix.
2018-07-10 14:01:14 +01:00
Richard Davey
ecd99869bd
Explained mask positioning better in docs. Fix #3770
2018-07-08 23:38:13 +01:00
Richard Davey
4fb63fd405
Clairty over obscurity
2018-07-06 19:35:01 +01:00
Richard Davey
a64d747c98
clearMask(true)
would throw an exception if the Game Object didn't have a mask. Now it checks first before destroying the mask. Fix #3809
2018-07-06 16:34:11 +01:00
Richard Davey
1931716da3
Exposed isTinted bool
2018-07-06 16:22:42 +01:00
Richard Davey
45208202ae
Added canvas props
2018-07-06 15:55:05 +01:00
Richard Davey
901a75d053
setCrop will accept numbers or a Rectangle object
2018-07-06 12:57:42 +01:00
Richard Davey
f3a446797d
Added new TextureCrop component
2018-07-05 13:06:28 +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
ee8c1b403a
Fixed cropping with flipped images
2018-07-04 14:50:26 +01:00
Richard Davey
744e161d22
Added setCrop support
2018-07-03 16:48:01 +01:00
Richard Davey
f57ecc0d81
Moved method
2018-07-02 16:43:43 +01:00