- Missed a as EOF in a some dart files, failing static analysis.
- remove private constructors to pass Dart's static analysis
- fix Color opacity 0 flickering in Graphics.
- new demo in example gallery "Connected" (node garden).
- cleanup example code.
- fixes startDrag() exception when you remove the DisplayObject from the stage.
- adds Matrix.deltaTransformPoint(point).
- fixes
GKeyboard.justReleased()
not working properly. - Breaking change:
GTextureUtils
drawing methods now returns aGTexture
instead of aFuture<GTexture>
. - MASSIVE comment documentation and code cleanup in the library.
- minor "fix" for pivot support when doing a rotation in 3d (still missing proper transforms)
- added [GPoint.multiply]
- added Support for variable fonts in [GIcon] with [GlyphVariation].
- added [GKeyboard.anyDown] and [KeyboardEventData.any]
- added [Graphics.beginPaint] to add raw Paint() instances in graphics.
- added [DisplayShader] as an utility wrapper for FragmentShaders and the complementary [graphics.beginShader] and [graphics.lineShaderStyle] and the utility [ResourceLoader.loadShader] to load the FragmentProgram from assets.
- added [graphics.blendMode()] to assign a [BlendMode] to the current drawing fill (or stroke).
- new [ColorfulShaders] example to demonstrate the new features.
- cleanup examples code.
- updated examples gallery
- updated README.md
- small fixes in demos and signal mapping in mouse event.
OutlineFilter(width, color)
to create a border around the target object.- separate base_filter from blur_filter file for cleanup.
- added
currentObject
to GBaseFilter, so the filters can access transformation data from the DisplayObject (like OutlineFilter). - added
DisplayObject::onPreTransform
signal that runs at the beginning of the rendering (before any filter, mask or transformation is applied). - expose
stage!.controller.pointer.lastEvent
getter to read last mouse/touch event independently of the signals events.
- upgrade to Flutter 3.7 constrains.
createImageSync()
andcreateImageTextureSync()
- small fixes in
GKeyboard
andParticleSystem
GMovieClip
cleanup- added
GTextureAtlas.fixedSizeTile()
to fill sub-textures from a fixed size SpriteSheet.
- adds support for the new PointerPanZoom*Event family on Listenable that overrides the mouse Signal (mouse wheel) on desktop OS. Basically, currently on desktop builds, everytime a mouse wheel event is triggered, a PointerPanZoomEvent is dispatched on the Listenable. Check [MyButton] in [SimpleInteractionsMain] demo, for an example of how to use it.
- add Generic Type [T] support to addChild
- updated some samples for the API.
- added [ZoomPivotMain] sample to demonstrate the new PointerPanZoom event in Flutter.
- Fixed inner transformations in all [GDisplayObject] for mouseX/mouseY.
- updated to run with flutter 3.
- code updated to improve points.
- merged null-safety branch.
- upgraded Dart constraints >= 2.13
- changed
GKeyboard
to useGKeys
alias forLogicalKeyboardKey
(breaking change in Flutter 2.5) . - defaults
SceneBuilderWidget.autoSize
to false, avoid exceptions on Flex widgets. - added warning message for empty sized widget layout in
SceneBuilderWidget
. - put back
ResourceLoader.loadNetworkSvg
and remove most nullable Futures for non network assets. - cleanup some code + dart analysis.
- cleanup examples code
- more null safety migrations.
- experimental GDropShadowFilter.innerShadow (hurts performance).
- add SceneBuilderWidget.autoSize to auto expand the scene on the parent widget.
- fix bug with GText in
LayoutUtils.row
. - fix
EventSignal
bug, remove() callbacks while dispatching them. - prevents assigning
NaN
to GDisplayObject transform properties based ondouble
. - some minor fixes and forced non-nullable properties.
- initial migration to null-safety
- fix non-working examples.
- fix a bug with GText layout.
- major fix for
GTween
when running lots of SceneControllers instances. - fix stage dispose exception with keyboard/pointer.
- added some more ColorFilters.
- major code refactoring, remove svg_flutter as dependency to avoid breaking changes.
- changed all methods that takes
int
hex colors + alphas, toColor
(beginFill, beginGradientFill, stage.color, etc). - fix
trace
for web anddartpad
output. - renamed most common classes (that do not start with G) to follow a GName pattern.
- SimpleText > GText
- GxIcon > GIcon
- Sprite > GSprite
- GxPoint > GPoint, and so on...
- added dispose() to
KeyboardManager
andPointerManager
... so it manages hot reloader better. - added
LayoutUtils.objectFit()
to resizeGDisplayObject
(specially Bitmaps), using BoxFit. - downgraded
flutter_svg
to 0.18.1 in "example" to make it usable in beta channel. - refactor resource_loader.dart, changed most methods to use named params, now only stores in cache
if a
cacheId
is defined (and also returns the cached data). GText
now uses Flutter'sTextStyle
to make it more convenient.- added
ResourceLoader.loadNetworkTextureSimple()
using a simple http call in flutter (useful for dartpad).
- added
MovieClip.gotoAndPlay
lastFrame for animation. - exposed the
GifAtlas::textureFrames
so they can be used in MovieClips. - added several methods from Flutters Path in
Graphics
... (conicCurveTo(), arcToPoint(), arc()) with some new optional parameters for relative drawing. - added new signals for
stage.onMouseEnter
,stage.onMouseLeave
to detect touch positions when it leaves the Widget area... ( useful for scene with buttons).
- change
flutter_svg
version to be compatible with stable branch.
- Improved docs.
- Removed animations.dart, GTween is used in favor of Juggler.
- Changed [GameUtils] to [Math], class to keep consistency with ActionScript/JS API.
- Improved gradient support in
Graphics
. For the sake of representing all the options for different Gradient Shaders in GraphX, uncommon positional parameters where replaced by named parameters forlineGradientStyle()
andbeginGradientFill()
. - Fixed a bug with [StaticText.width] when using by default
double.infinity
, unsupported in Flutter web non-SKIA target. - Minor bugfixes.
- Added package
http
andflutter_svg
dependencies to facilitate some GraphX features. - Added [SvgUtils] with basic methods to work with svg data.
- Renamed [AssetsLoader] to [ResourceLoader], and moved to the
io
namespace; to avoid confusion with Flutter concepts where asset reference a local resource. - Added [NetworkImageLoader] class, to provide the ability to load remote images. Can be used with [ResourceLoader.loadNetworkTexture] and [ResourceLoader.loadNetworkSvg]. WARNING: no CORS workaround for web targets.
- Added cache capabilities to network images, and some new methods on [ResourceLoader]: loadNetworkSvg(), loadNetworkTexture(), loadSvg(), getSvgData().
- Added [StaticText.build()] to simplify the initialization and styling of [StaticText].
- Added [Keyboard], utility class to simplify interactions with
stage.keyboard
duringupdate()
phase [stage.onEnterFrame].
- Fixes
DisplayObject.visible
not being updated on rendering. - Added
display object.setProps()
as a shortcut to assign basic properties using GTween and immediate render. - Added
GlowFilter
,DropShadowFilter
andColorMatrixFilter
. - Added
GTween
extension support to filters, can easily create tweens like:var glow = GlowFilter(4, 4, Colors.blue); box.filters = [glow]; stage.onMouseDown.add((event) { glow.tween(duration: .3, blurX: 12, color: Colors.green); }); stage.onMouseUp.add((event) { glow.tween(duration: .3, blurX: 4, color: Colors.blue); });
- Added
SystemUtils.usingSkia
to restrict unsoported operations in regular Flutter web. - Fixed
GTween.overwrite=1
so it finds the proper target object.
- fixes TextureAtlas XML parsing (some formarts were not readed properly).
- added support for hot-reload: Now you can use
SceneConfig.rebuildOnHotReload
andstage.onHotReload
to manage your own logic. - fixed some issues with dispose() not cleaning up vars (useful for hotReload).
- added SceneController access to the stage (
stage.controller
). - Basic support for Flutter Web (no SKIA target needed!), will have to check all the APIs.
New
SystemUtils.usingSkia
to check the compilation.
- added
SceneController::resolveWindowsBounds()
to get a GxRect in global coordinates, to calculate the screen offsets between GraphX scenes and other Widgets at different locations in the Widget tree. - StaticText now listens to systemFonts, to detect when fonts loaded at runtime (useful when using GoogleFonts package).
- GxIcon recreates
ParagraphBuilder
on each style change (otherwise throws an exception in latest builds with web-skia in dev channel). - each DisplayObject has its own Painter now for
saveLayer
, the bounding rect can't be skipped by$useSaveLayerBounds=true
.
- GraphX moves to RC1!
- new
maskRect
andmaskRectInverted
as an alternative tomask
for masking DisplayObjects but makes scissor clipping withGxRect
. - added
GxMatrix.clone()
- added
GTween.timeScale
to have a global control over tween times and delays. - added
Graphics.beginBitmapFill
andGraphics.lineBitmapStyle
to Graphics, now you can fill shapes with Images! - improved
Graphics.beginGradientFill
forGradientType.radial
... now you can specify theradius
for it. - added support
Graphics.drawTriangles()
, (usesCanvas.drawVertices()
), to create potentially 3d shapes. Supports solid fills: image, gradient, and color, but no strokes (lineStyle
). - flipped CHANGELOG.md versions direction.
- more code cleanup and updated README.md!
- readme fix.
- big refactor to initialize SceneController(), now it takes the [SceneConfig] from the
constructor (
withLayers()
was removed). - cleanup docs to reflect the change.
- no more [SceneRoot], now you can use [Sprite] directly as the root layer Scene!
- fix for mouse exit event not being detected when the scene is way too small and the pointer event happens too fast over the target.
- an improved README.md
- exported back graphics_clipper
- added experimental startDrag()/stopDrag() methods.
- added missing export in graphx.
- testing discord integration.
- GTween changed VoidCallback to Function to avoid linting errors.
- code clean up and minor fixes in the readme.
- adds
trace()
global function, as an option toprint()
. It allows you to pass up to 10 arguments, and configure stack information to show throughtraceConfig()
. So it can print caller name ( method name), caller object (instance / class name where caller is), filename and line number with some custom format.
- Another improve to the README.md, gifs have links to videos, to check screencasts in better quality.
- Added help & social links.
- cleanup more code.
- Improved README.md with gif screencast samples.
- cleanup some code.
- Initial release.