PPL7-Icon Patrick's Programming Library Version 7.0.0 - Dokumentation
ppl7::grafix::Grafix Klassenreferenz

Hauptklasse für alle Grafik-Operationen. Mehr ...

Öffentliche Methoden

 Grafix ()
 
 ~Grafix ()
 
void addFontEngine (FontEngine *engine)
 FontEngine hinzufügen. Mehr ...
 
void addImageFilter (ImageFilter *filter)
 Image-Filter registrieren. Mehr ...
 
FontFilefindFont (const String &fontname)
 
FontFilefindFont (const Font &font)
 
ImageFilterfindImageFilter (const String &name)
 Filter anhand seines Namens finden. Mehr ...
 
ImageFilterfindImageFilter (FileObject &ff, IMAGE &img)
 Filter anhand des Inhalts einer geöffneten Datei finden. Mehr ...
 
GRAFIX_FUNCTIONSgetGrafixFunctions (const RGBFormat &format)
 
void listFonts ()
 
void loadFont (const String &filename, const String &fontname=String())
 
void loadFont (FileObject &ff, const String &fontname=String())
 
void loadFont (const ByteArrayPtr &memory, const String &fontname=String())
 
void unloadFont (const String &fontname)
 
void unloadImageFilter (ImageFilter *filter)
 Image-Filter entfernen. Mehr ...
 

Öffentliche Attribute

ImageList ButtonSymbolsSmall
 
ImageList Icons32
 
ImageList Toolbar
 

Private Methoden

void initAlphatab ()
 
void initBlits (const RGBFormat &format, GRAFIX_FUNCTIONS *fn)
 Blitting-Funktionen initialisieren. Mehr ...
 
void initColors (const RGBFormat &format, GRAFIX_FUNCTIONS *fn)
 
void initFunctions (const RGBFormat &format, GRAFIX_FUNCTIONS *fn)
 
void initLines (const RGBFormat &format, GRAFIX_FUNCTIONS *fn)
 
void initPixel (const RGBFormat &format, GRAFIX_FUNCTIONS *fn)
 
void initShapes (const RGBFormat &format, GRAFIX_FUNCTIONS *fn)
 Initialisiert Funktionen zur Behandlung von Rechtecken. Mehr ...
 

Private Attribute

ImageFilterfilter_bmp
 
ImageFilterfilter_gif
 
ImageFilterfilter_jpeg
 
ImageFilterfilter_magick
 
ImageFilterfilter_png
 
ImageFilterfilter_ppm
 
ImageFilterfilter_tga
 
ImageFilterfilter_tiff
 
List< FontEngine * > FontEngineList
 
AVLTree< String, FontFile * > FontList
 
List< ImageFilter * > ImageFilterList
 
Mutex myMutex
 
RGBFormat PrimaryRGBFormat
 

Ausführliche Beschreibung

Diese Klasse wird für alle grafischen Funktionen benötigt und muß einmalig von der Anwendung instanziiert und Initialisiert werden. Beim Versuch eine zweite Instanz anzulegen, wird eine Exception geworfen.

Grafikengine
Ohne weiteres Zutun verwendet die PPL-Library nur Software-Routinen für die Grafik-Funktionen. Die Darstellung von Fenstern oder Vollbildanwendungen sind nicht möglich. Falls dies gewünscht ist, muss die Anwendung zunächst die gewünschte Grafik-Engine initialisieren und mit Grafix::UseEngine anmelden. Siehe dazu auch die Basisklasse für Grafikengines GFXEngine, sowie die davon abgeleiteten Klassen GFXEngineDX9 und GFXEngineSDL.
Grafik-Filter
Ein Grafik-Filter ist eine von CFilter abgeleitete Klasse, mit der man ein bestimmtes Grafikformat lesen oder schreiben kann. Die PPL-Library bringt bereits Filter für die Format PNG, JPEG, GIF, BMP, PPM und TGA mit, die bei Initialisierung von Grafix automatisch eingebunden werden. Bringt die Anwendung weitere Filter mit, müssen diese mit Grafix::AddFilter registriert werden.
Fonts
Genau wie bei den Grafikfiltern gibt es auch Klassen für verschiedene Font-Formate. Die Basisklasse hierfür ist CFontEngine. PPL bringt bereits eine Engine für das eigene Font5-Format mit, sowie für die FreeType-Library, mit der unter anderem Fonts im TrueType oder OpenType Format dargestellt werden können. Um weitere Engines hinzuzufügen, muss die Funktion Grafix::AddFontEngine aufgerufen werden.
Standardmäßig sind ist der freie Font "Liberation Sans" und "Liberation Mono" im Font5-Format in einigen Auflösungen enthalten. Um weitere Fonts zu laden muss die Funktion Grafix::LoadFont verwendet werden.
Ausnahmebehandlung
Exception::ExistingGrafixInstanceWird geworfen, wenn versucht wird eine zweite Instanz der Klasse zu erstellen

Beschreibung der Konstruktoren und Destruktoren

ppl7::grafix::Grafix::Grafix ( )
ppl7::grafix::Grafix::~Grafix ( )

Dokumentation der Elementfunktionen

void ppl7::grafix::Grafix::addFontEngine ( FontEngine engine)

Mit dieser Funktion wird eine FontEngine der Grafikengine hinzugefügt. Darunter versteht man eine von FontEngine abgeleitete Klasse, die in der Lage ist Fontdateien in einem bestimmten Format zu verarbeiten und darzustellen.

Die FontEngine muss von der Anwendung mit "new" erstellt werden und als Pointer an die Grafix-Engine übergeben werden. Grafix verwaltet die Engine ab diesem Moment und kümmert sich auch um deren Löschung bei Programmende. Die Anwendung darf die FontEngine nicht selbst löschen!

Parameter
enginePointer auf die Klasse mit der FontEngine
Rückgabe
Liefert true (1) zurück, wenn die Engine erfolgreich aufgenommen werden konnte, sonst false (0). Ein entsprechender Fehlercode wird gesetzt.
void ppl7::grafix::Grafix::addImageFilter ( ImageFilter filter)
Beschreibung:
Mit dieser Funktion wird ein neuer Image-Filter registriert. Ein Image-Filter ist eine von ImageFilter abgeleitete Klasse, die in der Lage ist ein bestimmtes Grafikformat zu lesen und optional auch zu schreiben. Der Filter muss mit "new" angelegt worden sein. Grafix übernimmt dessen Verwaltung, dass heisst die Klasse kümmert sich auch um das Löschen. Mit Grafix::UnloadFilter kann ein Filter von der Anwendung manuell wieder entfernt werden.
Parameter
[in]filterPointer auf den zu registrierenden Filter
Rückgabe
Konnte der Filter erfolgreich registriert werden, liefert die Funktion 1 zurück, im Fehlerfall 0. Ein entsprechender Fehlercode wird gesetzt.
Siehe auch
FontFile * ppl7::grafix::Grafix::findFont ( const String fontname)
FontFile * ppl7::grafix::Grafix::findFont ( const Font font)
ImageFilter * ppl7::grafix::Grafix::findImageFilter ( const String name)
Beschreibung:
Jeder Filter muss einen eindeutigen Namen haben. Mit dieser Funktion kann ein registrierter Filter anhand dieses Namens gefunden werden.
Parameter
[in]nameDer gesuchte Filter-Name
Rückgabe
Bei Erfolg liefert die Funktion einen Pointer auf den gefundenen Filter zurück, im Fehlerfall NULL.
ImageFilter * ppl7::grafix::Grafix::findImageFilter ( FileObject ff,
IMAGE img 
)
Beschreibung:
Mit dieser Funktion kann ein registrierter Filter anhand des Inhalts einer bereits geöffneten Datei gefunden werden. Dazu wird die Funktion ImageFilter::Ident von jedem registrierten Filter aufgerufen, bis einer signalisiert, dass er das Format verarbeiten kann.
Parameter
[in]ffReferenz auf die geöffnete Datei
Rückgabe
Bei Erfolg liefert die Funktion einen Pointer auf den gefundenen Filter zurück, im Fehlerfall NULL.
GRAFIX_FUNCTIONS * ppl7::grafix::Grafix::getGrafixFunctions ( const RGBFormat format)
void ppl7::grafix::Grafix::initAlphatab ( )
private
void ppl7::grafix::Grafix::initBlits ( const RGBFormat format,
GRAFIX_FUNCTIONS fn 
)
private
Beschreibung:
Mit dieser Funktion werden die Blitting-Funktionen in Abhängigkeit des Farbformates der Oberfläche initialisiert.

Blitting-Funktionen (oder kurz "Blt") sind Funktionen, mit denen Rechteckige Grafiken - oder auch nur Teile davon - in eine andere Grafik kopiert werden. Dabei wird unterschieden, ob der Inhalt ohne Prüfung 1:1 kopiert wird (CSurface::Blt), ein bestimmte Farbe transparent sein soll (CSurface::BltColorKey), der Alphakanal der Quellgrafik verwendet werden soll (CSurface::AlphaBlt oder CSurface::DrawSprite) oder die Intensität eines Schwarz-Weiss-Bildes verwendet wird, um eine bestimmte Farbe zu zeichnen (CSurface::BltDiffuse).

Parameter
[in]sPointer auf die SURFACE-Struktur der Oberfläche.
Ausnahmebehandlung
UnsupportedColorFormatExceptionWird geworfen, wenn das Farbformat format nicht unterstützt wird.
Bemerkungen
Gegenwärtig werden nur Farbformate mit einer Tiefe von 32 Bit unterstützt.
void ppl7::grafix::Grafix::initColors ( const RGBFormat format,
GRAFIX_FUNCTIONS fn 
)
private
void ppl7::grafix::Grafix::initFunctions ( const RGBFormat format,
GRAFIX_FUNCTIONS fn 
)
private
void ppl7::grafix::Grafix::initLines ( const RGBFormat format,
GRAFIX_FUNCTIONS fn 
)
private
void ppl7::grafix::Grafix::initPixel ( const RGBFormat format,
GRAFIX_FUNCTIONS fn 
)
private
void ppl7::grafix::Grafix::initShapes ( const RGBFormat format,
GRAFIX_FUNCTIONS fn 
)
private
Beschreibung:
Diese Funktion initialisiert eine Reihe von Funktionen zur Bearbeitung von Rechtecken. Dabei handelt es sich um die Funktionen:
  • CLS
  • Rect
  • FillRect
  • Xchange
  • Invert
  • Negativ
Parameter
[in]formatDas gewünschte Farbformat
[in]fnPointer auf die Struktur mit den Funktionen
Rückgabe
Liefert 1 zurück, wenn das Farbformat unterstützt wird, sonst 0
void ppl7::grafix::Grafix::listFonts ( )
void ppl7::grafix::Grafix::loadFont ( const String filename,
const String fontname = String() 
)
void ppl7::grafix::Grafix::loadFont ( FileObject ff,
const String fontname = String() 
)
void ppl7::grafix::Grafix::loadFont ( const ByteArrayPtr memory,
const String fontname = String() 
)
void ppl7::grafix::Grafix::unloadFont ( const String fontname)
void ppl7::grafix::Grafix::unloadImageFilter ( ImageFilter filter)
Beschreibung:
Mit dieser Funktion wird ein zuvor mit Grafix::AddFilter registrierter Image-Filter aus der Grafik-Engine entfernt. Der Filter selbst wird jedoch nicht gelöscht, darum muss sich die Anwendung kümmern.
Parameter
[in]filterPointer auf den zu entfernenden Image-Filter
Rückgabe
Bei Erfolg liefert die Funktion 1 zurück, im Fehlerfall 0.

Dokumentation der Datenelemente

ImageList ppl7::grafix::Grafix::ButtonSymbolsSmall
ImageFilter* ppl7::grafix::Grafix::filter_bmp
private
ImageFilter* ppl7::grafix::Grafix::filter_gif
private
ImageFilter* ppl7::grafix::Grafix::filter_jpeg
private
ImageFilter* ppl7::grafix::Grafix::filter_magick
private
ImageFilter* ppl7::grafix::Grafix::filter_png
private
ImageFilter* ppl7::grafix::Grafix::filter_ppm
private
ImageFilter* ppl7::grafix::Grafix::filter_tga
private
ImageFilter* ppl7::grafix::Grafix::filter_tiff
private
List<FontEngine*> ppl7::grafix::Grafix::FontEngineList
private
AVLTree<String, FontFile*> ppl7::grafix::Grafix::FontList
private
ImageList ppl7::grafix::Grafix::Icons32
List<ImageFilter*> ppl7::grafix::Grafix::ImageFilterList
private
Mutex ppl7::grafix::Grafix::myMutex
private
RGBFormat ppl7::grafix::Grafix::PrimaryRGBFormat
private
ImageList ppl7::grafix::Grafix::Toolbar

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: