[cairo] API proposal: cairo_format_from_content and cairo_content_from_format

Mox Soini mox at iki.fi
Mon Apr 23 21:54:31 PDT 2007


Hi Carl, others.

The function using that conversion in OOo is the OOo's equivalent "get similar":

Surface* Surface::getSimilar( Content aContent, int width, int height );

See:
http://go-ooo.org/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=gsl/canvas/source/cairo&command=DIFF_FRAMESET&file=cairo_cairo.cxx&rev1=1.4&rev2=1.4.28.1&root=/var/cvsup

That getSimilar boils down to platform specific cairo calls, or a
generic one, which are:
MACOSX:
- cairo_quartz_surface_create( nFormat, width, height ));
WIN32:
- cairo_win32_surface_.... (... nFormat...);
X11:
- cairo_xlib_surface_create_with_xrender_format( ... pFormat );
GENERIC:
- cairo_surface_create_similar( mpSurface, aContent, width, height )

note:
nFormat = cairoHelperFormatFromContent(aContent);
pFormat = XRenderFindStandardFormat(...
cairoHelperX11FormatFromContent(Content aContent)...);

Best Regards,

           Mox

P.S. I have not created the original OOo functions (e.g.
getSurface()), just doing porting work for Mac OS X...

On 4/24/07, Carl Worth <cworth at cworth.org> wrote:
> On Mon, 23 Apr 2007 17:32:39 -0400, Behdad Esfahbod wrote:
> > Given the definition above, it's apparently something image-surface
> > centric.  I was ignoring that until Max showed us how OO.o has the two
> > following functions implemented:
> >
> > Format cairoHelperFormatFromContent(Content aContent);
> > int cairoHelperX11FormatFromContent(Content aContent);
> >
> > Now that makes a lot more sense.
>
> Yeah, that's really the only way it would start making any
> sense. Within the context of a given backend, you could want to ask
> what format is associated with the surface returned by create_similar
> for a particular content value.
>
> But even then, it still doesn't make a lot of sense. For example, if
> you're running an X server with a 565 visual, then doing
> create_similar with CAIRO_CONTENT_COLOR will give you a surface
> targeting an X11 Pixmap with a 565 visual. But we still don't have any
> cairo_format_t to describe that, so I don't see how trying to map a
> content to a format in an "xlib aware" fashion would help.
>
> I guess I still don't see where this would be used. In what sequences
> does OO.o find this useful?
>
> -Carl
>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://cairographics.org/cgi-bin/mailman/listinfo/cairo
>
>


-- 
Mox on G


More information about the cairo mailing list