New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for OpenFL 8 #2136

merged 61 commits into from Apr 19, 2018


None yet
10 participants
Copy link

Gama11 commented Mar 21, 2018

This is still a work-in-progress, but just like #2133 this adds support for OpenFL 8 via the new drawQuads() API. Instead of creating a compatibility layer and effectively reimplementing the Tilesheet API, it adds a FlxDrawQuadsItem that is more properly integrated into the current renderer.

Currently I'm in the process of getting Travis builds green (I added jobs for OpenFL 8).

Work on #2068 might still continue after this - it's a full render refactor which adds some cool features. This PR really just adds OpenFL 8 compatibility, and due to drawQuads() this is possible much more quickly and with much fewer changes.

There will probably be a transition phase in which OpenFL 3.6.1 will still be supported for quite a while. This branch is compatible with OpenFL 3.6.1 Legacy, OpenFL 3.6.1 Next and OpenFL 8. This is a bit messy in places, but probably necessary.

How to test this

  • install my flixel branch via haxelib git flixel draw-quads-2
  • install openfl dev via haxelib git openfl
  • for Lime, the latest Haxelib release (6.2.0) should be fine
  • some demos and some flixel-addons classes need updates as well, there's branches here: [1], [2]


  • Shader filters (per-game / per-camera, such as in the Filters demo) are not supported yet. @jgranick is working on the OpenFL side of this.
  • Per-sprite filters already work! However, they need to be adjusted a bit (see FlxBunnyMark).
  • flixel.effects.postprocess is currently not supported, and might be deprecated since you can do basically the same thing with filters.
  • Blend modes are not supported (lack of support in drawQuads())
  • FlxPreloader currently falls back to OpenFL's default preloader

Feedback is appreciated!


This comment has been minimized.

Copy link

kennygoff commented Apr 18, 2018

Finally got some time to make attempt to get my current project building on this and ran into an issue. As suggested, using the dev for openfl and 6.2.0 for lime. I'm getting an ApplicationMain error:

release/macos/haxe/ApplicationMain.hx:68: characters 2-37 : Class<lime.system.System> has no field __parseArguments


  • Tried release modes -debug, -release and -final
  • Tried cpp (hxcpp 3.4.188) and neko
  • Only tested on macOS so far

This comment has been minimized.

Copy link

Gama11 commented Apr 18, 2018

@kennygoff There's a recent change that causes Lime 6.2.0 to no longer work for latest OpenFL (also have to adjust CI for this), you actually need latest Lime from source now.

Gama11 added some commits Apr 18, 2018

Brace for impact
[skip ci]

@Gama11 Gama11 changed the title [WIP] Add support for OpenFL 8 Add support for OpenFL 8 Apr 19, 2018


This comment has been minimized.

Copy link

Gama11 commented Apr 19, 2018

I feel like this is now along far enough to be merged - it's still fully backwards-compatible with older OpenFL versions anyway.

I'll create a separate issue to keep track of remaining issues. Some of those are probably important enough to be sorted out before 4.4.0 releases, others not so much. Note that 4.4.0 can also only release once OpenFL 8 has been released.

@Gama11 Gama11 merged commit 5fbca9d into HaxeFlixel:dev Apr 19, 2018

1 check passed

codeclimate All good!

@Gama11 Gama11 deleted the Gama11:draw-quads-2 branch Apr 19, 2018


This comment has been minimized.

Copy link

larsiusprime commented Apr 19, 2018

Wait, did we just merge this into mainline????? Just like that?


This comment has been minimized.

Copy link

Gama11 commented Apr 21, 2018

Here's the promised list of remaining issues: #2143

@Gama11 Gama11 deleted the Gama11:draw-quads-2 branch Apr 21, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment