KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: [C][vorerst gelöst] Wie benutze ich fonts? (ich versuche freetype)
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich verusche zurzeit in einem Programm fonts zu benutzen, also z.B. true type fonts und so. dann habe ich gegooglet und bin auf freetype gestoßen. habe ich mir runtergeladen und installiert, und dann einen blick auf die Dokumentation geworfen:

http://www.freetype.org/freetype2/docs/tutorial/step1.html

nachdem ich freetype in den ordner vom PSPSDK installiert habe, funktionierte das includieren von

PHP-Code:
#include <ft2build.h>
#include FT_FREETYPE_H 

auch komplett fehlerfrei.
Sobald ich aber einen schritt in der Anleitung weiter gehe, und FT_Init_FreeType( &library ); einfüge, bekomme ich beim kompilieren einen Fehler:

Code:
main.c:23: error: expected declaration specifiers or '...' before '&' token

zudem bekomme ich diese warnmeldungen:

Code:
main.c:23: warning: data definition has no type or storage class
main.c:23: warning: type defaults to 'int' in declaration of 'FT_Init_FreeType'


Wenn ich nun das & weglasse, und damit wohl einen pointer übergebe, bekomme ich den error nicht, aber die beiden warnmeldungen bleiben, und es kommt noch eine dritte hinzu:

Code:
main.c:23: warning: parameter names (without types) in function declaration

Dennoch wird das Programm kompiliert, wenn ich das & weglassen. wenn ich nun einen weiteren schritt weiter mache, und das einfüge:

PHP-Code:
FT_New_Facelibrary"/usr/share/fonts/truetype/arial.ttf"0, &face ); 

bekomme ich diesen fehler:

Code:
main.c:24: error: expected ')' before string constant


also habe ich das &, wies in der anleitung steht wieder in z. 23 hinzugefügt. Dadurch ist der vorherige fehler in z. 23 natürlich wieder aufgetaucht.

Also habe ich es immoment so wies im tutorial steht:

PHP-Code:
#include <ft2build.h>
#include FT_FREETYPE_H

... //hier ein paar definitionen die nichts mit freetype zu tun haben

FT_Library library;
FT_Face face;
FT_Init_FreeTypelibrary );
FT_New_Facelibrary"/usr/share/fonts/truetype/arial.ttf"0, &face ); 


und bekomme diese compiler-ausgaben:

Code:
psp-gcc -I. -I/opt/pspsdk/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150   -c -o main.o main.c
main.c:23: error: expected declaration specifiers or '...' before '&' token
main.c:23: warning: data definition has no type or storage class
main.c:23: warning: type defaults to 'int' in declaration of 'FT_Init_FreeType'
main.c:24: error: expected ')' before string constant
make: *** [main.o] Fehler 1


was kann ich tun?




EDIT: Habs hinbekommen!
für alle die wissen wollen wies geht, so hab ichs gemacht:

als erstes mal habe eine korrekte version von freetype für die PSP installiert:

Code:
svn checkout http://psp.jim.sh/svn/psp/trunk/freetype
cd freetype
sh autogen.sh
LDFLAGS="-L$(psp-config --pspsdk-path)/lib -lc -lpspuser" \
./configure --host psp --prefix=$(psp-config --psp-prefix)
make
sudo make install


wenn das ohne probleme läuft ist freetype grundsätzlich installiert. evtl muss noch evtl (PSPSDKORDNER)\psp\inc lude\freetype2\freetype zu (PSPSDKORDNER)\psp\include kopieren und (PSPSDKORDNER)\psp\inc lude\freetype2 gelöscht werden.

dann habe ich mich durchs halbe internet gegooglet, denn die fehler waren immernoch da. dann bin ich auf flib gestoßen, es vereinfacht das nutzen von freetype extrem, und lässt sich auch kompilieren und funktioniert auch, aber die schriften haben einen hässlichen schwarzen rand und es ist sehr langsam. ein QJ user optimierte flib, doch es war mir nicht möglich die optimierte flib zu downloaden, da es einfach zu alt war, und es keine online links mehr gab.

später bin ich dann auf den fontloader von Insomniac197 gestoßen ( http://www.qj.net/psp/homebrew-development/fontloader-for-the-freetype-2-library-unveiled.html ). Diesen habe ich runtergeladen und ausprobiert. Er basiert auch auf freetype, und funktioniert auch, aber die schriften sehen viel besser aus als mit flib (sie sehen einach so aus wie sie aussehen sollen) und die nutzung ist, nachdem man sich das sample angesehen hat super einfach. zudem ist es viel schneller als die flib.

also, mit einer kombination aus freetype, libpng, graphics.h und fontloader läufts nun erstmal Smile

Referenz-URLs