Problem mit RGB und Farbmischungen ..
(DirectDrawCreateEx . (LPVOID *)&lpDd ..)
lpDd->SetDisplayMode
(
(DWORD)g_lDisplayMode_x,
(DWORD)g_lDisplayMode_y,
(DWORD)g_lDisplayMode_p,
0,
0
);
16bit: #define ZWIANER_RGB16(r,g,b)(__int16)(((r) << 11)|((g) << 5)|((b) << 0))
32bit: #define ZWIANER_RGB32(a,r,g,b)(__int32)(((a) << 24)|((r) << 16)|((g) << 8)|((b) << 0))
__int32 i32FrbNr = ZWIANER_RGB16(ucR, ucG, ucB);
bzw.
__int32 i32FrbNr = ZWIANER_RGB32(0, ucR, ucG, ucB);
Kann mir jemand sagen, was ich falsch mache?
Unter 32bit sind Geometrie und alle Farben OK!
Unter 16bit ist die Geometrie in Ordnung, aber die Farben sind alle falsch. außer ein
wirklich reines Rot oder Grün oder Blau.
Problem mit RGB und Farbmischungen ..
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Problem mit RGB und Farbmischungen ..
Es ist leichter, einen Sack Flöhe zu hüten.
- Lord Delvin
- Establishment
- Beiträge: 599
- Registriert: 05.07.2003, 11:17
Re: Problem mit RGB und Farbmischungen ..
Willst du nicht einfach die Unterstützung für 16bit Farben weglassen? Ich mein wer braucht sowas heutzutage noch? Und auf einigen Bildern ist schon 32bit zu wenig.
Im übrigen glaub ich, dass es daran liegt, dass sich die Farbwerte bei dir überlappen, d.h. du musst die chars erst so verschieben, dass sie tatsächlich auch nur die untersten 5/6 Bits verwenden, also da fehlt noch sowas wie (g>>2) oder (b>>3).
EDIT: Aber überleg dir mal wie viel Zeit du dafür verbrauchst. Das mit dem ARGB32 schaffst du mit nem union übrigens mit einer instruktion. Also union Farbe{ char a,r,g,b; int argb32; }; so irgendwie, kann mich an die genaue Syntax grad nicht erinnern.
Im übrigen glaub ich, dass es daran liegt, dass sich die Farbwerte bei dir überlappen, d.h. du musst die chars erst so verschieben, dass sie tatsächlich auch nur die untersten 5/6 Bits verwenden, also da fehlt noch sowas wie (g>>2) oder (b>>3).
EDIT: Aber überleg dir mal wie viel Zeit du dafür verbrauchst. Das mit dem ARGB32 schaffst du mit nem union übrigens mit einer instruktion. Also union Farbe{ char a,r,g,b; int argb32; }; so irgendwie, kann mich an die genaue Syntax grad nicht erinnern.
Zuletzt geändert von Lord Delvin am 08.01.2010, 08:17, insgesamt 1-mal geändert.
Re: Problem mit RGB und Farbmischungen ..
Jo, schaut fuer mich danach aus als ob Du im 16-Bit - Fall die Farben falsch mischst, weil du immer das volle Byte verschiebst, aber nicht auf den kleineren Wertebereich anpasst.
Versuch mal (fuer 5-6-5 RGB):
#define ZWIANER_RGB16(r,g,b)(__int16)((b>>3) | ((g&0xFC) << 3) | ((b & 0xF8) << 8))
Das ist jetzt aus dem Kopf, kontrolliers lieber nochmal...
Versuch mal (fuer 5-6-5 RGB):
#define ZWIANER_RGB16(r,g,b)(__int16)((b>>3) | ((g&0xFC) << 3) | ((b & 0xF8) << 8))
Das ist jetzt aus dem Kopf, kontrolliers lieber nochmal...
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Re: Problem mit RGB und Farbmischungen ..
Lösung! :oops: :roll: :idea:
Das Problem lag an der ZwiAner-Installations-Version. Diese hat eine
vorbereitete Farbtabelle mit auf die Rechner installiert.
Diese Farbtabelle war auf meinen Arbeitsrechner aber nicht vorhanden.
Ok, nun läufts auf 32bit!
Nochmals Danke für Eure Hinweise. Hab' viel gelernt in den letzten 36 Stunden.
Das Problem lag an der ZwiAner-Installations-Version. Diese hat eine
vorbereitete Farbtabelle mit auf die Rechner installiert.
Diese Farbtabelle war auf meinen Arbeitsrechner aber nicht vorhanden.
Ok, nun läufts auf 32bit!
Nochmals Danke für Eure Hinweise. Hab' viel gelernt in den letzten 36 Stunden.
Es ist leichter, einen Sack Flöhe zu hüten.
Re: Problem mit RGB und Farbmischungen ..
Wie jetzt, ich dachte, unter 32bit lief es eh....
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Re: Problem mit RGB und Farbmischungen ..
Ja, aber jetzt bin ich sicher, dass alles auf dem gleichen Stand ist!
Es ist leichter, einen Sack Flöhe zu hüten.
Re: Problem mit RGB und Farbmischungen ..
Vergiss übrigens nicht, dass __int32/16 signed sind. Für Farben benutzt man normalerweise unsigned Werte, da sonst schnell was schief gehen kann ;)
- HeinzK
- Establishment
- Beiträge: 234
- Registriert: 05.11.2009, 08:37
- Benutzertext: ZwiAner
- Echter Name: Heinz Kempter
- Wohnort: Wald
- Kontaktdaten:
Re: Problem mit RGB und Farbmischungen ..
Danke für den Tipp.
Es ist leichter, einen Sack Flöhe zu hüten.