Cairo__Format.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 05 Apr 2016 08:02:32 +0100
changeset 76 f3deda9cea3e
parent 51 5293f2b851ab
child 88 9d51db2ba641
permissions -rw-r--r--
Oops, fixed CairoGraphicsContext>>width:height: Must test whether a Cairo context has been created. If not, we're done.

"{ Package: 'stx:goodies/libcairo' }"

"{ NameSpace: Cairo }"

SharedPool subclass:#Format
	instanceVariableNames:''
	classVariableNames:'CAIRO_FORMAT_INVALID CAIRO_FORMAT_ARGB32 CAIRO_FORMAT_RGB24
		CAIRO_FORMAT_A8 CAIRO_FORMAT_A1 CAIRO_FORMAT_RGB16_565
		CAIRO_FORMAT_RGB30'
	poolDictionaries:''
	category:'Cairo-Constants'
!

!Format class methodsFor:'documentation'!

documentation
"
    Cairo::Format is used to identify the memory format of image data.

    New entries may be added in future versions.

    Values

    CAIRO_FORMAT_INVALID -  no such format exists or is supported.
    CAIRO_FORMAT_ARGB32 -   each pixel is a 32-bit quantity, with alpha in 
                            the upper 8 bits, then red, then green, then blue. 
                            The 32-bit quantities are stored native-endian. 
                            Pre-multiplied alpha is used. (That is, 50% transparent 
                            red is 0x80800000, not 0x80ff0000.) (Since 1.0)
    CAIRO_FORMAT_RGB24 -    each pixel is a 32-bit quantity, with the upper 8 bits 
                            unused. Red, Green, and Blue are stored in the remaining 
                            24 bits in that order. (Since 1.0)
    CAIRO_FORMAT_A8 -       each pixel is a 8-bit quantity holding an alpha value. (Since 1.0)
    CAIRO_FORMAT_A1 -       each pixel is a 1-bit quantity holding an alpha value. Pixels are 
                            packed together into 32-bit quantities. The ordering of the bits 
                            matches the endianess of the platform. On a big-endian machine, the 
                            first pixel is in the uppermost bit, on a little-endian machine the 
                            first pixel is in the least-significant bit. (Since 1.0)
    CAIRO_FORMAT_RGB16_565 - each pixel is a 16-bit quantity with red in the upper 5 bits, then green 
                            in the middle 6 bits, and blue in the lower 5 bits. (Since 1.2)
    CAIRO_FORMAT_RGB30 -    like RGB24 but with 10bpc. (Since 1.12)

    [author:]
        Jan Vrany <jan.vrany@fit.cvut.cz>

    [instance variables:]

    [class variables:]

    [see also:]

"
! !

!Format class methodsFor:'initialization'!

initialize

    CAIRO_FORMAT_INVALID := -1.
    CAIRO_FORMAT_ARGB32 := 0.
    CAIRO_FORMAT_RGB24 := 1.
    CAIRO_FORMAT_A8 := 2.
    CAIRO_FORMAT_A1 := 3.
    CAIRO_FORMAT_RGB16_565 := 4.
    CAIRO_FORMAT_RGB30 := 5.
! !

!Format class methodsFor:'constants'!

CAIRO_FORMAT_A1

    ^CAIRO_FORMAT_A1
!

CAIRO_FORMAT_A8

    ^CAIRO_FORMAT_A8
!

CAIRO_FORMAT_ARGB32

    ^CAIRO_FORMAT_ARGB32
!

CAIRO_FORMAT_INVALID

    ^CAIRO_FORMAT_INVALID
!

CAIRO_FORMAT_RGB16_565

    ^CAIRO_FORMAT_RGB16_565
!

CAIRO_FORMAT_RGB24

    ^CAIRO_FORMAT_RGB24
!

CAIRO_FORMAT_RGB30

    ^CAIRO_FORMAT_RGB30
! !


Format initialize!