[cairo] API shakeup: png function names
Kristian Høgsberg
krh at bitplanet.net
Mon Apr 4 11:45:56 PDT 2005
Owen Taylor wrote:
> On Mon, 2005-04-04 at 11:07 -0700, Bill Spitzak wrote:
>
>>How about "cairo_image_surface_create_from_png" (replace "for" with
>>"from")? I'm also wondering why the word "image" is in there, since this
>>returns a surface, and I don't see how it could return any other type of
>>surface than an "image" one. How about shortening it to
>>"cairo_surface_create_from_png"?
>
>
> Subclasses of CairoSurface can have specific operations on them,
> like cairo_xlib_surface_set_size().
>
> cairo_image_surface_create_for_png() is thus a constructor for
> CairoImageSurface... currently constructors for <foo> are
> foo_<create>_<blah>.
>
> Related to that, I'd like to see the *width, *height out parameters
> vanish from the signature, to be replaced with getters on
> cairo_surface() or cairo_image_surface() (*). Some surfaces don't
> necessarily have a size ... that's why it *might* belong to
> cairo_image_surface().
I'd prefer that too, those getters would be useful in other situations.
> On the other hand, many surfaces do have a size, so putting them on
> CairoSurface and returning -1 to mean "unknown" might be simpler.
>
> Regards,
> Owen
>
> (*) Why? Multiple return values don't bind well in all languages,
> and they make the function signature less obvious and harder
> to remember.
>
> P.S. - _from_png() would also be considerably more natural to me
> as well.
And to me as well, that's what I had in my original proposal, with this
explanation:
"The other surface constructors all reference and use the passed in
resources throughout the lifetime (actually from creation to finish) of
the surface. In this case the png file is only used for initializing
the contents of the surface. When the constructor returns, file can be
closed immediately. I think 'from' implies this fairly well."
but Carl preferred "for" for consistency:
"Should this be "for_png" instead of "from_png". They seem close enough
to be arbitrary to me, and if they are, I'm sure to always get them
wrong."
cheers,
Kristian
More information about the cairo
mailing list