Siguiendo las entregas de OSLib, hoy toca ver como cargar una fuente y como usarla, para las fuentes no necesitaremos modos especiales ni nada de eso. Las fuentes que se al 100% que la PSP puede cargar son las .pgf y las .oft, existen otras como .ttf pero no se si sera compatible. Por ello os dejo un programa en la sección "Descargas" para que las convirtáis.
Autor: Dioni0396.
#include <oslib/oslib.h> PSP_MODULE_INFO("Fuente",0,1,1); PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU); PSP_HEAP_SIZE_KB(10*1024); //Ahora mediante un puntero indicamos la fuente OSL_FONT *Fuente; int a=0; int b=1; int main(){ oslInit(0); //Iniciamos las oslib oslInitGfx(OSL_PF_8888,1); oslIntraFontInit(INTRAFONT_CACHE_LARGE);// Esto es algo obligatorio a poner antes de cargar la fuente Fuente = oslLoadFontFile("flash0:/font/ltn0.pgf"); //Cargamos la fuente de la flash0 (Solo lo lee no modifica, las psp malditas que usen otra forma por si tienen miedo) oslSetFont(Fuente); //Decimos la fuente que queremos while(!osl_quit){ if(a==0){ oslDrawString(10,10,"Usando fuentes"); //el primer argumento indica la x, el 2º la y y el tercero los caracteres. Cuidado el tercer argumento siempre debe ser const char* oslDrawStringf(10,50,"%d",b); //Esto es una alternativa que tenemos por si queremos colocar valores que van a cambiar o que no son char, como un int. El tercer argumento indica el formato y el cuarto el valor a mostrar. } } oslEndGfx(); oslQuit(); return 0; }
TARGET = Fuente OBJS = main.o CFLAGS = -O2 -g -G0 -Wall CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS = $(CFLAGS) LIBDIR = MYLIBS= STDLIBS= -losl -lpng -lz \ -lpsphprm -lpspsdk -lpspctrl -lpspumd -lpsprtc -lpsppower -lpspgu -lpspgum -lpspaudiolib -lpspaudio -lpsphttp -lpspssl -lpspwlan \ -lpspnet_adhocmatching -lpspnet_adhoc -lpspnet_adhocctl -lm -ljpeg -lpspaudiocodec LIBS=$(STDLIBS) $(MYLIBS) LDFLAGS = EXTRA_TARGETS = EBOOT.PBP PSP_EBOOT_TITLE = Fuente PSPSDK=$(shell psp-config --pspsdk-path) include $(PSPSDK)/lib/build.mak
Programa de Conversión de Fuentes (Sólo Usuarios Registrados).
Gracias por la lectura.
Comentarios
Mmm...
Creo que te falta añadir lo de iniciar gráficos y finalizar para que se muestre, sino se crashea (Que es lo que me pasaba a mi)
Cierto,
pero ya tienes una sustentacion en la cual deberias saberlo, no siempre tengo que estar poniendo oslStartDrawing() y oslEndDrawing()
XD
Pero puede que haya usuarios detras de mi que se echen las manos a la cabeza...