Quote Originally Posted by reexre View Post
I updated this project (with RC6) which do an intensive use of Polygons ( PolygonSingle )

to run it fast as it can, turn on the TURBO checkbox

( It seems faster, but not sure though )
What's faster IMO "without doing anything" is the Blending-ops (CC.RenderSurfaceContent).

And what can be made faster now (manually) is the typical "Fill and then Stroke" sequence (on a Polygon-Path):

Code:
  m.CC.SetSourceColor Obj.Color, 1, Refl
  m.CC.AntiAlias = CAIRO_ANTIALIAS_NONE: m.CC.Fill True
      
  m.CC.SetSourceColor vbBlack
  m.CC.AntiAlias = CAIRO_ANTIALIAS_FAST: m.CC.Stroke
The above snippet is out of my new c3Dxxx supporting Classes, which I will integrate into the next RC6-release.

Normally, the CC.Antialias-Prop is sitting at CAIRO_ANTIALIAS_DEFAULT ...
(which in the RC6 version ensures a slightly better looking AntiAliasing, without loosing speed).

What's new is the enum-value CAIRO_ANTIALIAS_FAST (which looks nearly as good as the old RC5-CAIRO_ANTIALIAS_DEFAULT).

Further speedup comes from the little trick on the Fill-instructions (no Antialiasing, but that was available in RC5 as well).

In my 3D rendering tests (3000 Polygons or so), I see about:
- 15 FPS (when not touching CC.Antialias at all, leaving it at the Default)
- 25 FPS (with a "global" setting of CAIRO_ANTIALIAS_FAST - for both - Filling and Stroking)
- 36 FPS (with the little trick, which does the filling with no antialiasing, and the stroking with CAIRO_ANTIALIAS_FAST)

Just to give you some rough idea of the speed-ratios over the different modes.

HTH

Olaf