:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > OldSchool Library > Aide au développement

Aide au développement Aide sur l'utilisation d'OSLib

Publicité

 
 
Outils de la discussion Modes d'affichage
Vieux 23/12/2006, 20h00   #1
Casa150
Membre
 
Date d'inscription: 16/09/2006
Localisation: Les Lilas
Messages: 8
Par défaut oslLoadPalette

Salut.

J'ai un probleme avec la fonction oslLoadPalette !!

Quand je l'utilise aucune image apparait à l'écran.
J'explique mon but : je veux pouvoir charger une image puis selectionner une palette (ici c'est changer la couleur de la tenue de vegeta).


En gros je sais pas utiliser cette fonction. Aidez moi pleaseee...

Voila mon code :
Code:
#include <oslib/oslib.h>

PSP_MODULE_INFO("Palette",0,1,1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

OSL_IMAGE *loadSprite(char *filename, short pixelFormat, short emplacement);

unsigned long palette[16] = {
	RGB(18, 22, 122), RGB(12, 35, 171), RGB(173, 123, 4), RGB(154, 132, 106),
	RGB(20, 53, 196), RGB(39, 83, 215), RGB(83, 131, 239), RGB(201, 201, 201),
	RGB(222, 181, 8), RGB(222, 156, 82), RGB(231, 173, 115), RGB(255, 0, 255),
	RGB(255, 218, 98), RGB(245, 215, 150), RGB(239, 239, 239), RGB(255, 255, 255)
};

int main(int argc, char* argv[]) {
	oslInit(0);
	oslInitGfx(OSL_PF_8888, 1);
	oslInitConsole();
	oslInitAudio();
	
	
	OSL_IMAGE *img = loadSprite( "vegeta.png", OSL_PF_8BIT, OSL_IN_VRAM);
	if ( !img)
		oslFatalError("vegeta.png incorrect !!");
	
	img->palette = oslLoadPalette( (unsigned long *)palette, 16, OSL_PF_8888);
	
	img->x = 100;
	img->y = 100;
	
	int i;
	OSL_CONTROLLER *pad;
	
	while ( !osl_quit ) {
		oslStartDrawing();
		oslClearScreen(RGB(250,250,250));
		
		oslDrawImage( img);
		
		pad = oslReadKeys();
		if(pad->pressed.cross) { // pour voir si il y a un changement a l'ecran
			for( i = 0; i < 16; i++) {
				palette[i] += 5;
			}
			oslPrintf_xy(0,0,"++");
			img->palette = oslLoadPalette( (unsigned long *)palette, 16, OSL_PF_5650);
		}
		
		oslEndDrawing();
		oslSyncFrame();
		oslAudioVSync();
	} //fin while
	
	oslDeleteImage(img);
	
	oslEndGfx();
	oslQuit();
	return 0;
}

OSL_IMAGE *loadSprite(char *filename, short pixelFormat, short emplacement) {
	OSL_IMAGE *temp, *img = NULL;
	//Load & swizzle for best speed
	
	temp = oslLoadImageFile(filename, OSL_IN_RAM, pixelFormat);
	if (temp) {
		img = oslCreateSwizzledImage(temp, emplacement);
		oslDeleteImage(temp);
	}

	return temp;
}
Casa150 est déconnecté   Réponse avec citation
 

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h41.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince