Anuncios Google

[C][Sample] Graficos

Hoy os presento un nuevo Sample, esta vez, este os servira para mostrar una Imagen, es pequeñito, y se compone de dos archivos fuente, el Makefile y el main, pero tambien debreis descargar el siguiente archivo que contiene las liberias graficas necesarias para su compilación:

http://www.mediafire.com/?dm5lycf2jc3 - Descargar Librerias Graphics y Framebuffer junto con Src compilado

Main.c
 

#include <pspdebug.h>//Incluimos las librerias pspkernel y pspdebug necesarias en todos los programas
#include <pspkernel.h>
#include <pspgu.h>//Librerias Graficas...
#include <png.h>
#include <stdio.h>
#include "Graficos/graphics.h"

PSP_MODULE_INFO("Sample Graphic", 0, 1, 0);//Nombre y version de la aplicacion
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);//Modo de la aplicacion

#define Texto pspDebugScreenPrintf//Abreviamos esta funcion para un uso mas facil de ella
#define Tiempo sceKernelDelayThread//Con esta igual
#define Limpiar pspDebugScreenClear// Igualmente...
#define Salir sceKernelExitGame//Igual...

//Con lo siguiente hacemos lo de salir al Pulsar Home funcione...
//Llamada de salida...
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}//Final de llamada de salida
//Llamada Thread
int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}//Final de la llamada thread
// Configura la llamada thread y retorna a su thread id
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}//Finaliza la configurcion de la llamada Thread
void MostrarImagen(void)//Creamos la void llamada MostrarImagen donde estara el codigo para Mostrar la Imagen xDD
{//Abrimos para empezar...
char buffer[200];//Variables Necesarias...
Image* Imagen;

sprintf(buffer, "Imagen.png");//Establece el lugar de la imagen, en este caso en la misma carpeta que el Eboot
Imagen = loadImage(buffer); //La variable Imagen es igual a cargar la imagen establecida anteriormente

if (!Imagen) //Si no hay imagen o algo parecido...
{//Abrimos el IF
printf("Carga de imagen Fallida!\n");//Imprime texto en pantalla
Tiempo(2*1000*1000);//Retardo de 2 segundos
Salir();//Sale al Xmb
} else { //Cerramos el If y abrimos el Else
sceDisplayWaitVblankStart();//Mostrar pantalla para la muestra de imagenes...
blitAlphaImageToScreen(0 ,0 ,480 , 272, Imagen, 0, 0);//Establece la posicion de nuestra variable Imagen
flipScreen();//Muestra la pantalla, en este caso nos da a ver la Imagen!
Tiempo(10*1000*1000);//Retardo de 10 segundos
Salir();//Sale al Xmb
} //Cierra el Else
}//Cerramo la funcion MostrarImagen...
int main()//Creamos la funcion principal main
{//Abrimos la funcion principal Main

pspDebugScreenInit();//iniciamos pantalla
initGraphics();//Iniciamos graficos
SetupCallbacks();//Inicia las callbacks para que funcione el salir al pulsar Home
MostrarImagen();//Acudimos a la funcion MostrarImagen

sceKernelSleepThread();//para poder dejarla en Standby
return 0;
}//Cerramos el main

 

Makefile
 

 

TARGET = Graphics
OBJS = main.o Graficos/graphics.o Graficos/framebuffer.o

INCDIR =
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP

LIBS = -lpspgu -lpng -lz -lm

PSP_EBOOT_TITLE = SampleGraphics

PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

Saludos
Gdt


Anuncios Google