Problème de couleurs

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Problème de couleurs

Message par raven »

Bonjour,

j'ai un petit soucis,en installant la version 5.44 lts 64 bits de purebasic.
je me suis aperçu que j'avais un problème de couleur.

à gauche c'est un code lancer en 5,50 x86 et à droite c'est en 64 bits
c'a le fait aussi avec des codes exemple de la doc.

je suis sur w10 64 quelqu'un d'autre à déjà eu le problème?

merci d'avance.

Image
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
Guillot
Messages : 673
Inscription : jeu. 25/juin/2015 16:18

Re: Problème de couleurs

Message par Guillot »

salut,

tu peux montrer le code ?
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Problème de couleurs

Message par Zorro »

raven a écrit : je me suis aperçu que j'avais un problème de couleur.

à gauche c'est un code lancer en 5,50 x86 et à droite c'est en 64 bits
c'a le fait aussi avec des codes exemple de la doc.[/img]
precise !

tu dis , que t'as un probleme de couleur , (tu ne dis pas quel probleme exactement )
ensuite tu dis que ça le fait .... ( mais quoi ?? qu'est ce que ça fait ?? )

on n'en sait rien , puisqu'on ne sais pas ce que ça devrai faire ...
met toi a notre place !

nous on ne sait pas ce qu'est sensé faire ton programme , :roll: :lol: :lol:
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: Problème de couleurs

Message par raven »

les couleurs sont delavé,je m'en était pas aperçu vu que j'utilisé la 5.50 x86.
mais le problème est quand j'utilise une version 5.44 lts x64 ou meme 5.50x64 de purebasic

ce code en x 86 m'affiche bien des couleurs jaune vert bleu rouge,mais en x64 c'est bleu clair,blanc
j'avais mis un gif dans mon post (capturer avec licecap) c'a s'affiche pas chez vous?car moi je le vois

Code : Tout sélectionner

EnableExplicit
;- Initialisations
If InitSprite()=0 Or InitKeyboard()=0 ;or UsePNGImageDecoder()=0
MessageRequester("Probleme","Initialisations impossibles",0)
End
EndIf

Enumeration fenetre
#fenetre
EndEnumeration

Enumeration
#bouton
#bouton2
#bouton3
EndEnumeration

#largeur_ecran = 640
#hauteur_ecran =480

Global Event,i
Global couleur.f,couleur2.f,largeur_ecran ,hauteur_ecran 

;fenetre
OpenWindow(#fenetre,0,0,#largeur_ecran,#hauteur_ecran,"Pure Miga",#PB_Window_ScreenCentered|#PB_Window_SystemMenu )

OpenWindowedScreen(WindowID(#fenetre),0,0,#largeur_ecran,#hauteur_ecran)

Procedure bouton()
CreateSprite(#bouton,155,155)
StartDrawing(SpriteOutput(#bouton))
Box(0,0,155,155,RGB(155*couleur2,255*couleur,150*couleur2))
StopDrawing()
EndProcedure

Procedure bouton2()
CreateSprite(#bouton2,55,55)
StartDrawing(SpriteOutput(#bouton2))
Box(0,0,55,55,RGB(125*couleur2,255*couleur,70))
StopDrawing()
EndProcedure

Procedure bouton3()
CreateSprite(#bouton3,55,55)
StartDrawing(SpriteOutput(#bouton3))
Box(0,0,55,55,RGB(75*couleur,25*couleur,150))
StopDrawing()
EndProcedure


Repeat;2d
  Repeat ;event fenetre

 Event = WindowEvent()

Select Event    
Case #PB_Event_CloseWindow
End
EndSelect  

Until Event=0

FlipBuffers()
ClearScreen(RGB(0,0,0))
ExamineKeyboard()

bouton()
bouton2()
bouton3()

DisplayTransparentSprite(#bouton2,40,225,155)

DisplayTransparentSprite(#bouton,200,225,155)

DisplayTransparentSprite(#bouton3,420,225,155)
;-------------------------------
couleur = couleur.f-0.025
couleur2 = couleur2.f - 0.035

Until KeyboardPushed(#PB_Key_Escape) Or event = #PB_Event_CloseWindow
End
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Problème de couleurs

Message par Zorro »

je pense que c'est un probleme lié a ta variable : Couleur.f et Couleur2.f

en principe un Float fait 4 octets , mais que ce passe t'il en compilation 64 bits ??

probablement un probleme d'alignement

je veux dire qu'une operation comme celle-ci
couleur.f= couleur.f-0.025

sur un Flottant en 32 bits n'a peut etre pas la meme valeur sur 64 bits !??
je veux dire le rapport finale , sur une echelle de 32 bits , est forcement moindre sur une echelle de 64 bits non ?

je suis une quiche en math ...
mais intuitivement , sur une echelle de 32 barreaux , en prendre 16 , represente 50%
mais en prendre 16 sur une echelle de 64 barreaux , ça ne represente plus 50% , mais 25 % !
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: Problème de couleurs

Message par raven »

je suis nul en math,et en code la meme.
par contre modifiant ç'a:

Code : Tout sélectionner

Procedure bouton()
CreateSprite(#bouton,155,155)
StartDrawing(SpriteOutput(#bouton))
Box(0,0,155,155,RGB(255+couleur,255,255+couleur2))
StopDrawing()
EndProcedure

Procedure bouton2()
CreateSprite(#bouton2,55,55)
StartDrawing(SpriteOutput(#bouton2))
Box(0,0,55,55,RGB(125+couleur2,255+couleur,70+couleur))
StopDrawing()
EndProcedure

Procedure bouton3()
CreateSprite(#bouton3,55,55)
StartDrawing(SpriteOutput(#bouton3))
Box(0,0,55,55,RGB(75+couleur,25+couleur,150+couleur2))
StopDrawing()
EndProcedure

Code : Tout sélectionner

couleur.f = couleur.f-0.25
couleur2.f = couleur2.f - 0.35
c'a fonctionne j'ai des couleurs
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: Problème de couleurs

Message par Zorro »

bon et bien , tout est bien qui fini bien :)
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Problème de couleurs

Message par Ollivier »

Zorro a écrit :je suis une quiche en math ...
mais intuitivement , sur une echelle de 32 barreaux , en prendre 16 , represente 50%
mais en prendre 16 sur une echelle de 64 barreaux , ça ne represente plus 50% , mais 25 % !
Ce qui représente 50% c'est de prendre tous les barreaux sauf le plus fort (ou de prendre ce seul barreau le plus fort)

Ce qui représente 25% c'est de prendre tous les barreaux sauf les 2 plus forts (ou de prendre le seul 2ème plus fort).

Prendre la moitiée des barreaux faibles en 32 bits, entier, c'est prendre la racine carrée de 4 milliards (2 pow 32).

En flottant, c'est comme les entiers, sauf qu'il faut réserver quelques barreaux pour la mantisse. (la position de la virgule)
Répondre