Re: Color space API

Adrian Johnson <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
I no longer have to time to work on this. But I'll try and answer your
questions.

On 16/10/12 03:44, Kai-Uwe Behrmann wrote:
>>  cairo_color_space_type_t
>>  cairo_color_space_get_type (cairo_color_space_t *color_space);
> 
> Looks like this API allows to detect if a ICC profile is internaly
> generated.
> You will have to extent this enum, in case future internal spaces shall
> be added. That would not be so nice from a API POV.

Enums can be extended such as when we add new surfaces or pattern types.

>> ICC color spaces may contain different types of color spaces. It is
>> useful be able to find the type of an ICC color space.
>>
>>  typedef enum _cairo_color_space_class {
>>    CAIRO_COLOR_SPACE_CLASS_RGB,
>>    CAIRO_COLOR_SPACE_CLASS_CMYK,
>>    CAIRO_COLOR_SPACE_CLASS_GRAY,
>>  } cairo_color_space_class_t;
>>
>>  cairo_color_space_class_t
>>  cairo_color_space_get_class (cairo_color_space_t *color_space);
> 
> It is more handy to obtain the ICC profile memory. That allows to
> further analyse ICC profiles including the above colour space class query.

The API needs a number of the getters added.

>>  cairo_bool_t
>>  cairo_color_space_equal (const cairo_color_space_t *cs_a,
>>                           const cairo_color_space_t *cs_b);
> 
> Out of curiosity, is comparing cairo_color_space_t pointers not enough?

Not if the application creates two color spaces from the same profile.

>>  void
>>  cairo_push_group_with_color_space (cairo_t *cr,
>>                                     cairo_content_t content,
>>                                     cairo_color_space_t *color_space);
>>
>>  cairo_surface_t *
>>  cairo_surface_create_similar_with_color_space (cairo_surface_t *other,
>>                                      cairo_content_t content,
>>                                      cairo_color_space_t *color_space,
>>                                      int width, int height);
> 
> Is that the prefered mechanism for colour space conversion of surfaces?

Similar surfaces are for compositing in a different color space to the
source or destination surfaces. They are not required when the
compositing can be done in the destination surface color space.

> What is the difference of the compositing_color_space to a surface
> colour space?

The compositing color space is not part of the PDF color space model. It
is something I suggested to accommodate the case where the source and
destination colors are converted to a different color space (usually a
linear color space) for compositing without the use of a separate surface.


-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.