Bonjour.

Toujours dans l'idée de porter notre framework sous OSX, Nous avons toutes les peine du monde a avoir des performance de dessin équivalente (ni même, décentes) au api utilisées sous windows.

Sous windows nous utilsons GDI+ et Direct2d, les performance sous D2D sont nettement améliorées par rapport a GDI+, normale.

Sous OSX, j'utilise Quartz2D et OpenGL. OpenGL servant a afficher a des bitmaps auto générées (oscilloscope, courbes fft et autres joyeusetés).

Notre engine graphic invalide les composants qui ont besoin d'être redessinés, sur l'interruption d'un timecode (en général a 60HZ).

Voila pour le topo...

Ce que je ne comprend pas :
Quartz2D est censé etre accéléré par le hardware, donc a priori je devrais, pour le simple dessin d'un rectangle avoir des performance équivalentes a D2D. Or, les performances n'arrivent même pas a la cheville de GDI+....
Je ne vous parle même pas des Paths, courbes de beziers et de l'affichage du text... Et encore moins de l'affichage de bitmaps full screen ! la c'est une catastrophe....
C'est pour cette raison que j'utilise openGL, pour le transfert de bitmap.
J'utilise donc les PixelBufferObject, pour transférer mes bitmaps sur un simple quad. C'est nettement meilleur que sous Quartz2D, mais encore bien inférieur a direct2D

Pour vous donner une idée :

Affichage bitmap a chaque frame, 1920 * 1200, invalidate a 60HZ :
D2D = +- 692 fps
GDI+ = +- 40 fps
Macos OpenGL = +- 51 fps
Macos Quartz2d = +-8 fps

Ce que j'aimerais savoir, c'est si quelqu'un a déjà une expérience similaire sur le portage graphique entre ces différentes apis.
Si quelqu'un a une idée du pourquoi de ces performances aussi basses sous macos ?

Toutes expériences, et conseils ou échange d'idées sont les bienvenues.

Merci.