Oyo Bon je vais encore vous casser les pieds avec une question Vous allez vous dire pk lui il fait jamais comme les autres ???

bon le but c de pouvoir stoquer la couleur sur un DWORD et qu'opengl arrive à la récupérer (en gros faire comme dans directX)

G une structure de vertex :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
struct VERTEX2 {
	float x,y,z;
	float nx,ny,nz;
	DWORD Color;
};
je crée donc un vertex buffer ARB avec et je veux lire la couleur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
int nOffsetForColor = offset;
				glColorPointer( 4, GL_UNSIGNED_BYTE, nVertexStride, BUFFER_OFFSET(nOffsetForColor) );
				glEnableClientState( GL_COLOR_ARRAY );
mais pb !!! il inverse le rouge et le bleu :'(

voilà la macro que j'utilise pour crée ma couleur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
#define M3D_RGBA(r, g, b, a) ((((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255))
En fait c pour mon moteur qui doit afficher OpenGL et DirectX de la même façon donc en D3D pas de pbs car lui il sait comment lire la couleur, mais en opengl pourrait on pas lui dire d'inverser certaines couleur ?

merci si qq un arrive à répondre !