[cairo] API shakeup: png function names

John Ellson ellson at research.att.com
Sun Apr 3 20:50:51 PDT 2005


Kristian Høgsberg wrote:

> John Ellson wrote:
>
>> In the absence of updated examples,  I tried to update my code based 
>> on the names of the functions
>> in cairo/cairo_png.h.
>>
>> I totally misinterpred the role of this function:
>>
>> cairo_surface_t *
>> cairo_image_surface_create_for_png (FILE *file,  int *width,  int 
>> *height);
>>  
>> Why not just call it:  cairo_surface_read_png  so as to be clear that 
>> it is the read counterpart to the other png function?
>
>
> Well, it isn't really the counterpart.  The counterpart would read a 
> png into an existing image surface.  
> cairo_image_surface_create_for_png() is a surface constructor and 
> follows the naming and parameter conventions for constructors.
>
> A function to read a png file into a en existing surface might make 
> sense, but I'm not sure how you would get the size of the png to make 
> sure the surface is the right size.  The current approach of making 
> the read function a constructor is a pretty simple and clean design, 
> even if the read and write functions are not symmetric.


Thats a bit of a subtle distinction, but OK they are not quite symmetric.

I think the bit that first confused me was the use of "for" instead of 
"from" .   To me the directionality of "for" is wrong.


How about "cairo_image_surface_create_from_png"

Then, since the creation part is fairly obvious from the return type, 
how about dropping the "create"
and is the "image" qualifier really necessary?

John



More information about the cairo mailing list