Erstellt eine Bildoberfläche mit dem angegebenen Format und den angegebenen
Abmessungen. Zunächst wird der Oberflächeninhalt auf 0 gesetzt. (In jedem Pixel
ist insbesondere jede zum Format gehörende Farbe oder jeder Alphakanal 0. Der
Inhalt von Bits innerhalb eines Pixels, die jedoch nicht zum angegebenen Format
gehören, ist undefiniert.)
Das format-Argument kann eines der folgenden Pixelformate sein:
#CAIRO_FORMAT_ARGB32
-
Jedes Pixel ist eine 32-Bit-Größe mit Alpha in den oberen 8 Bits, dann Rot,
dann Grün und dann Blau. Die 32-Bit-Mengen werden nativ-endian gespeichert.
Es wird vormultipliziertes Alpha verwendet. (Das heißt, 50 % transparentes Rot
ist $80800000, nicht $80ff0000.
#CAIRO_FORMAT_RGB24
-
Jedes Pixel ist eine 32-Bit-Menge, wobei die oberen 8 Bits ungenutzt bleiben.
Rot, Grün und Blau werden in dieser Reihenfolge in den verbleibenden 24 Bits
gespeichert.
#CAIRO_FORMAT_A8
-
Jedes Pixel ist eine 8-Bit-Größe, die einen Alphawert enthält.
#CAIRO_FORMAT_A1
-
Jedes Pixel ist eine 1-Bit-Größe, die einen Alphawert enthält. Pixel werden zu
32-Bit-Mengen zusammengepackt. Die Reihenfolge der Bits entspricht der
Endianness der Plattform. Auf einer Big-Endian-Maschine befindet sich das
erste Pixel im obersten Bit, auf einer Little-Endian-Maschine befindet sich
das erste Pixel im niedrigstwertigen Bit.
#CAIRO_FORMAT_RGB16_565
-
Jedes Pixel ist eine 16-Bit-Menge mit Rot in den oberen 5 Bits, Grün in den
mittleren 6 Bits und Blau in den unteren 5 Bits.
#CAIRO_FORMAT_RGB30
-
Wie RGB24, aber mit 10bpc.
Dieser Befehl gibt ein Handle für die neu erstellte Oberfläche zurück. Der
Aufrufer hat die zurückgegebenen Oberfläche zugewiesen und sollte
csurface:Free() aufrufen, wenn er damit fertig ist.
Dieser Befehl gibt immer ein gültiges Handle zurück, aber er gibt ein
Handle auf eine "Null"-Oberfläche zurück, wenn ein Fehler auftritt, z.B. nicht
genügend Speicher. Sie können csurface:Status() verwenden, um
dies zu überprüfen.