Whem you start change the this.root.scrollRect value like this:
this.root.scrollRect = this.yourSprite.getRect(this);
the frame rate drops from 61 to 30 or less, on the new update of openfl 5.1.5 to 8.1.1
and lime 5.2.1 to 6.3.1
it was working on openfl 4.2.0 and lime 3.2.1
Can you tell if this is a hardware OpenGL target, or if you are running in Canvas or Cairo? Are you setting the scrollRect to the size of the stage, smaller or larger?
how can i change between opengl, canvas and cairo to compile and test?
openfl test windows -cairo?
this take effect to windows target too?
This is how it look with openfl 5.1.5 to 8.1.1
and lime 5.2.1 to 6.3.1:
openfl 4.3.0 lime 3.2.1
I use sprite.graphics.moveto, lineto, etc, to draw every color inside every tile.
The first image just got like that whem i move the camera using scrollRect
is windows target,
the sprite cam have the width and height of the stage.stagewidht and stage.stageheight
now i use the width and height of the window 870w / 512h
for the sprite cam and pass this to the scrollRec but still have the same problem, drop frame rate and strange drawining:
ok. the scrollRect is not the problem, if i comment all the camera code, all the sprites that are moving got this strange draw
Have you considered using
Tilemap instead of graphics drawing? Pretty sure they’re faster on Windows.
Ah, I recognize this.
It’s this issue:
I’d like to know what calls you make in a single Graphics object. Are they lines, or all drawRect or lineTo?
drawQuads would perform better, but it would be good to know what APIs you are using now, I’d love a reproduction case on the seams and it would help us know what APIs to try and prioritize when we add HW acceleration to more APIs
Im using drawRect.
drawQuads still dont implemented at openfl 6.2.0
Would you mind sharing the full list used in the game display, as you’ve shown?
Is that it? Any other fill types, or
lineTo, or other calls?
sprite.graphics.drawRect(newX, newY, tileSize, tileSize);
i try with moveTo, lineTo, but got the same result
The old, old version of OpenFL was hardware accelerated when using
drawRect, it ran faster but there were many cases where it was not accurate. We rewrote the renderer, and went for a canvas/cairo software render for vector shapes. The good news is that this is much more accurate for complex graphics, the downside is that a simple
drawRect is no longer hardware accelerated, or wasn’t before OpenFL 8.
OpenFL 8 added hardware accelerated support for
drawQuads, which will batch multiple rectangles into one draw call, similar to
drawTriangles (which is hardware accelerated again, too).
beginFill (only) are hardware accelerated again, and we have a TODO to add other
drawRect fills as well as other kinds of geometry.
It may be worth giving OpenFL 8 a try, I understand there are audio improvements you need that are not in OpenFL 8, but you could give the rendering a try and see how the performance compares, and we figure out the
Definitely want to help
I will try right now, thanks! really apreciate your time.
with openfl 8.1.1 drawRect is getting 6fps,
will try drawQuads now
Try drawQuads, the frame rate gets better, but the issue with graphics persist: