Hola a todos e estado trasteando un poco con lo de los hilos este es el codigo que estoy usando
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <stdio.h>
#include <pspnet.h>
#include <psputility.h>
#include <pspnet_adhoc.h>
#include <pspnet_adhocctl.h>
#include <pspnet_adhocmatching.h>
#include <pspwlan.h>
#include <SDL.h>
#include <SDL_image.h>
#include <png.h>
#include <SDL_thread.h>
PSP_MODULE_INFO("cargar", 0, 1, 0);
PSP_HEAP_SIZE_KB(20480);
#define printf pspDebugScreenPrintf
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}
int CallbackThread(SceSize args, void *argp) {
int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}
int SetupCallbacks(void) {
int thid = 0;
thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11,
0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}
return thid;
}
int Cargar_Imagen(void);
int Mostrar_Imagen(void);
SDL_Surface *PIntro[175];
int err,Intro,Intro2,I;
unsigned char mimac[6],Abierto[6],Introduccion[16];
unsigned char Hola[6] = "HOLA";
SDL_Thread *uno,*dos;
int main(int argc, char *argv[])
{
pspDebugScreenInit();
pspDebugScreenClear();
SetupCallbacks();
SDL_Init(0);
pspDebugScreenSetXY(0, 0);
for(Intro = 1;Intro <= 20;Intro++){
sprintf(Introduccion,"imagenesg/Comp 1 %03d.png",Intro);
PIntro[Intro] = IMG_Load(Introduccion);
if(PIntro[Intro] != 0){
printf("IMAGEN %03d CARGADA\n",Intro);
}
}
uno = SDL_CreateThread(Cargar_Imagen,NULL);
dos = SDL_CreateThread(Mostrar_Imagen,NULL);
SDL_WaitThread(uno, NULL);
SDL_WaitThread(dos, NULL);
}
int Cargar_Imagen(void){
for(Intro = 21;Intro <= 175;Intro++){
sprintf(Introduccion,"imagenesg/Comp 1 %03d.png",Intro);
PIntro[Intro] = IMG_Load(Introduccion);
if(PIntro[Intro] != 0){
printf("IMAGEN %03d CARGADA\n",Intro);
}
else{
printf("IMAGEN %03d NO CARGADA\n",Intro);
}
}
}
int Mostrar_Imagen(void){
for(Intro2 = 1;Intro2 <= 175;Intro2++){
if(PIntro[Intro2] != 0){
printf("IMAGEN %03d Mostrada\n",Intro2);
SDL_FreeSurface(PIntro[Intro2]);
SDL_Delay(100);
}
}
}
si no muestro las imagenes como en el codigo con un delay de 100 es mas que suficiente pero cuando muestro las imagenes tengo que usar 170 lo que hace que las imagenes tiren 1 pelin mas rapido que cuando las cargaba 1 a 1 pero aun asi va muy lento que puedo hacer ???
Muchas gracias.
Kaltorak