[C++ / OpenGL] tranformer une couleur de HPEN en RGB [résolu]

tranformer une couleur de HPEN en RGB [résolu] [C++ / OpenGL] - C++ - Programmation

Marsh Posté le 04-07-2003 à 16:34:52    

dans une fenetre 2D j'ai tracé des carré avec un certain HPEN
 
maintenant je veut tracer cela sous forme de cube en OpenGL
 
ca marche bien sauf pour la couleur
 
en effet je récupère le stylo qui a fait mon dessin avec :
 

Code :
  1. GetObject(leStylo, sizeof (LOGPEN), &Pen);


 
je peut donc récupére la taille avec :
 

Code :
  1. int t=Pen.lopnWidth.x;


 
par contre pour la couleur j'ai le Pen.lopnColor mais cette couleur n'est pas de la forme RGB, ce qu'il me faut pour OpenGL  :??:  
 
alors comment faire pour convertire cela ?
 
merci !!
 
Edit : en fait il faudrai savoir comment est calculée la valeur lopnColor du HPEN en fonction des RGB qu'on lui a passé à la construction ....


Message édité par camarchepoa le 04-07-2003 à 17:25:37
Reply

Marsh Posté le 04-07-2003 à 16:34:52   

Reply

Marsh Posté le 04-07-2003 à 16:38:39    

Ben c'est de type COLORREF qui est un entier contenant les valeurs RGB que tu veux ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 04-07-2003 à 16:42:28    

ca c ok !
 

Code :
  1. COLORREF   A 32-bit value used as a color value.


 
mais comment récupérer les RGB, that is the question ...

Reply

Marsh Posté le 04-07-2003 à 16:45:58    

en général comme ça:
 

Code :
  1. COLORREF value;
  2. // du code
  3. unsigned char r,g,b;
  4. b = (unsigned char)value;
  5. g = (unsigned char)(value >> 8);
  6. r = (unsigned char)(value >> 16);


Message édité par LetoII le 04-07-2003 à 16:47:58

---------------
Le Tyran
Reply

Marsh Posté le 04-07-2003 à 16:51:24    

LetoII a écrit :

en général comme ça:
 

Code :
  1. COLORREF value;
  2. // du code
  3. unsigned char r,g,b;
  4. b = (unsigned char)value;
  5. g = (unsigned char)(value >> 8);
  6. r = (unsigned char)(value >> 16);




 
super !
c juste ce qu'il me fallait !
juste le "r" et le "b" qui sont inversé mais c super !
 
merci beuacoup !!!!!!  :jap:  :jap:

Reply

Marsh Posté le 04-07-2003 à 16:51:42    

LetoII a écrit :

en général comme ça:
 

Code :
  1. COLORREF value;
  2. // du code
  3. unsigned char r,g,b;
  4. b = (unsigned char)value;
  5. g = (unsigned char)(value >> 8);
  6. r = (unsigned char)(value >> 16);




 
wrong :O
en COLORREF b et r sont inversé
 
(et perso je ferais un joli & histoire d'etre sur de bien tout decrassé)

Reply

Marsh Posté le 04-07-2003 à 16:54:32    

chrisbk a écrit :


 
wrong :O
en COLORREF b et r sont inversé
 
(et perso je ferais un joli & histoire d'etre sur de bien tout decrassé)
 


 
un petit & sur quoi ?
 
PS : vu la promptitude, je pardonne bien volontier le r et le b  :D

Reply

Marsh Posté le 04-07-2003 à 16:55:10    

chrisbk a écrit :


 
wrong :O
en COLORREF b et r sont inversé
 
(et perso je ferais un joli & histoire d'etre sur de bien tout decrassé)
 


 
Ouai ben je pouvais pas deviner, en général c ARVB  [:spamafote]


---------------
Le Tyran
Reply

Marsh Posté le 04-07-2003 à 17:34:17    

LetoII a écrit :


 
Ouai ben je pouvais pas deviner, en général c ARVB  [:spamafote]  


 
quand on ne sait pas on se tait [:aloy] [:ddr555]
 
 
camarchepouet : & 0xFF pour le rouge, 0xFF00 vert et 0xFF0000 bleu

Reply

Marsh Posté le 04-07-2003 à 17:42:38    

chrisbk a écrit :


 
quand on ne sait pas on se tait [:aloy] [:ddr555]
 
 
camarchepouet : & 0xFF pour le rouge, 0xFF00 vert et 0xFF0000 bleu


 
Spas nécessaire à cause du cast


---------------
Le Tyran
Reply

Marsh Posté le 04-07-2003 à 17:42:38   

Reply

Marsh Posté le 04-07-2003 à 17:43:54    

LetoII a écrit :


 
Spas nécessaire à cause du cast


 
je trouve ca pas beau sans [:sisicaivrai]

Reply

Marsh Posté le 04-07-2003 à 23:54:34    

chrisbk a écrit :


 
je trouve ca pas beau sans [:sisicaivrai]


 
Autant s'épargner des opération inutiles  [:spamafote]  :whistle:


---------------
Le Tyran
Reply

Marsh Posté le 05-07-2003 à 00:03:16    

LetoII a écrit :


 
Autant s'épargner des opération inutiles  [:spamafote]  :whistle:  


 
bah :D
 
generalement apres isolation c pour bosser dessus et l'usigned char te fais risquer l'overflow, donc fo reconvertir en int, ce qui est pas beau niveau code, pis niveau asm generé je sais pas trop si y'a du gain [:meganne]

Reply

Marsh Posté le 05-07-2003 à 00:06:35    

chrisbk a écrit :


 
bah :D
 
generalement apres isolation c pour bosser dessus et l'usigned char te fais risquer l'overflow, donc fo reconvertir en int, ce qui est pas beau niveau code, pis niveau asm generé je sais pas trop si y'a du gain [:meganne]
 


OverFlow? Tu bosse souvant avec des couleurs supérieur à 255 toi? :heink:


---------------
Le Tyran
Reply

Marsh Posté le 05-07-2003 à 00:07:11    

LetoII a écrit :


OverFlow? Tu bosse souvant avec des couleurs supérieur à 255 toi? :heink:  


 
non mais parfois je fais de l'alpha blending par exemple, de l'addition par saturation...[:spamafote] (encore que pour ce derneir y'a mon ami mmx)


Message édité par chrisbk le 05-07-2003 à 00:07:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed