Anuncios Google

Mostrar Imagen en la pantalla C [PSP]

He leido varios tutos y demas , pero no me aclaro...

Lo que quiero es tener una imagen , cargarla en la ram , y mostrarla, pero no se como , ¿alguien me ayuda?

Con esto me da error al compilar en blitAlphaImageToScreen:

              initGraphics();             
              loadImage("helloword.png");   
              blitAlphaImageToScreen(0, 0, 480, 272, 0, 0);             
              sceKernelDelayThread(4*1000*1000);
              disableGraphics();

 

No se si sera con otra funcion , he provado de diversas formas y nada.

Lo completo seria asi:

*main.c:

#include <pspsdk.h>   
#include <pspkernel.h>
#include <psppower.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspdebug.h> 
#include <graphics.h>
#include <png.h>
#include <pspgu.h>
#include <framebuffer.h>

PSP_MODULE_INFO("Helloword",0,1,0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
 

 
int main()

{      
       pspDebugScreenInit();
       pspDebugScreenClear();      
       pspDebugScreenPrintf("Pulsa el boton X para ver Hello Word by jesus el mejor");
      
       while (1)  // Comenzamos la definicion de botones //
    {
       SceCtrlData currentPad, lastPad;
       sceCtrlReadBufferPositive(&currentPad, 1);
       
       if( currentPad.Buttons != lastPad.Buttons )
       {
          lastPad = currentPad;

          if(currentPad.Buttons & PSP_CTRL_CROSS)   // Definimos al pulsar el Boton Equis //
          {       
              pspDebugScreenClear();  // Limpia la Pantalla //
              pspDebugScreenPrintf("Cargando Hello Word");  // Imprime texto en Pantalla //
              sceKernelDelayThread(2*1000*1000);  // Retardo de Tiempo (2 Segundos//
              pspDebugScreenClear();
              initGraphics();             
              loadImage("helloword.png");   
              blitAlphaImageToScreen(0, 0, 480, 272,"helloword.png" 0, 0);             
              sceKernelDelayThread(4*1000*1000);
              disableGraphics();
              pspDebugScreenClear();
              pspDebugScreenPrintf("Saliendo en 5 segundos jeje");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 4");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 3");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 2");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 1");
              sceKernelDelayThread(1*1000*1000);                                         
              sceKernelExitGame();
          }
       }
    }
return 0;
}

 

*makefile:

TARGET = holamundo

OBJS = main.o graphics.o framebuffer.o

 

CFLAGS = -O2 -G0 -Wall

CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti

ASFLAGS = $(CFLAGS)

 

EXTRA_TARGETS = EBOOT.PBP

PSP_EBOOT_TITLE = Hola Mundo C by jd v7.5

 

PSPSDK=$(shell psp-config --pspsdk-path)

include $(PSPSDK)/lib/build.mak

 



 

La imagen del error al compilar es esta:

http://www.imaxenes.com/imagen/error_al_compilar1rl86ig.jpg....


:)


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de xenneco

Se sale

Ya me funciona , y no me compilaba por el error corregido (gracias .......) y porque me faltaba añadirle cosas a LIBS del makefile , pero ahora la carga bien , y se sale al xmb ¿Por qué?

¿Nadie sabe? :(


:)

Imagen de xenneco

Error

Hola , me compila y todo , pero al cargar en la psp sale al principio y al intentar cargar la imagen crashea , mirar a ver si puedeis ayudarme:

*main.c:

#include <pspsdk.h>   
#include <pspkernel.h>
#include <psppower.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspdebug.h> 
#include <png.h>
#include <pspgu.h>
#include <framebuffer.h>
#include "graphics.h"

PSP_MODULE_INFO("Helloword",0,1,0);
PSP_MAIN_THREAD_ATTR(PSP_THREAD_ATTR_USER);
 

int main()

{      
       pspDebugScreenInit();
       pspDebugScreenClear();      
       pspDebugScreenPrintf("Pulsa el boton X para ver Hello Word by jesus el mejor");
      
       while (1)  // Comenzamos la definicion de botones //
    {
       SceCtrlData currentPad, lastPad;
       sceCtrlReadBufferPositive(&currentPad, 1);
       
       if( currentPad.Buttons != lastPad.Buttons )
       {
          lastPad = currentPad;

          if(currentPad.Buttons & PSP_CTRL_CROSS)   // Definimos al pulsar el Boton Equis //
          {       
              pspDebugScreenClear();  // Limpia la Pantalla //
              pspDebugScreenPrintf("Cargando Hello Word");  // Imprime texto en Pantalla //
              sceKernelDelayThread(2*1000*1000);  // Retardo de Tiempo (2 Segundos//
              pspDebugScreenClear();
              initGraphics();                           
              int Imagen;
              Imagen = loadImage("helloword.png");   
              blitAlphaImageToScreen(0, 0, 480, 272, Imagen, 0, 0);         
              flipScreen();
              sceKernelDelayThread(4*1000*1000);
              disableGraphics();
              pspDebugScreenClear();
              pspDebugScreenPrintf("Saliendo en 5 segundos jeje");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 4");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 3");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 2");
              sceKernelDelayThread(1*1000*1000);
              pspDebugScreenClear();
              pspDebugScreenPrintf("En 1");
              sceKernelDelayThread(1*1000*1000);                                         
              sceKernelExitGame();
          }
       }
    }
return 0;
}

*makefile:

TARGET = holamundo

OBJS = main.o graphics.o framebuffer.o

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

LIBDIR =
LDFLAGS =
LIBS = -lpspgu -lpng -lz -lm -lpspdisplay -lpspgum -lfreetype

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Hola Mundo C by jd v7.5

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

 

Al compilarlo me daba pequeños errores...


:)

Imagen de Germax_VGT

Código

Debes hacer la corrección que te he indicado... debes declarar un puntero tipo Image, no int. Tal como te lo he puesto en el ejempo:

Image * imagen;


Dexterity

Imagen de Germax_VGT

El error

En realidad el error está en estas dos líneas...

loadImage("helloword.png");
blitAlphaImageToScreen(0, 0, 480, 272,"helloword.png" 0, 0);

Debes declarar primeramente:

Image * imagen;

int main()
{

imagen=loadImage("helloword.png");
blitAlphaImageToScreen(0, 0, 480, 272, imagen, 0, 0);


Dexterity

Creo que ya vi el error...

Usaste mal la función para cargar la imagen, debería ser algo asi:

blitAlphaImageToScreen(0, 0, 480, 272,"helloword.png", 0, 0); 
 
// Faltó una coma después del nombre de la imagen ;) 
//Creo que también te hace falta la siguiente función:
 
flipScreen();            

Te recomiendo que aprendas un poco de inglés, porque el compilador te dice donde y que error se ha producido.
Por ejemplo, dice too few arguments to function 'blitAlphaImageToScreen', queriendo decir que te faltaban argumentos para usar la función, y te faltaban porque se te fué una coma ;)

Saludos

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.