[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-smalltalk] cairo->sdl interface

From: Paolo Bonzini
Subject: [Help-smalltalk] cairo->sdl interface
Date: Mon, 21 Apr 2008 14:17:17 +0200
User-agent: Thunderbird (Macintosh/20080213)

Hi, I was looking at how you were implementing the Cairo surface for SDL. The idea is to get the pixel data address from SDL and pass it to a Cairo software-rendering surface. This is then drawn on the SDL surface by flipping.

Do you think it would be possible to use a Cairo native (accelerated) surface instead? You can keep the software-rendering surface, and use it for the final blit to the screen, but you'd do all the plotting on the accelerated surface. If acceleration works well enough, performance shouldn't be affected adversely (acceleration balances the additional transfer):

  before -> lock SDL surface
            draw with software renderer on the locked SDL surface
            unlock SDL surface
            flip the SDL surface to screen

  after ->  draw with accelerated renderer on a separate surface
            lock SDL surface
            use cairo_paint to blit to the locked SDL surface
            unlock SDL surface
            flip the SDL surface to screen

Also, in this case is double buffering necessary? Is it a hindrance? I don't know enough of this to understand the nuances... I guess I can check the performance impact with your blitting example, but I just wanted to check in advance if this idea is crazy...

Anyway, what's there works and it's going to stay like this for a while; just that adding a TODO would be nice.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]