DirectDraw7 problem :(
-
Hi,
ich hab ein kleines Problem mit DirectDraw7! Ich möchte einen pixel malen unter 16 bit, das klappt auch wunderbar! Aber wenn ich einen Pixel male ist hinter dem Pixel noch ein Pixel mit ner schwarzen Farbe!
Male ich an XPosition 55 einen Weißen Pixel ist dahinter ein Schwarzer, male ich dahinter auf XPosition 56 einen Blauen Pixel malt er hinter dem Schwarzen Pixel des Weißen Pixels erst den Blauen Pixel und dahinter dann wieder nen Schwarzen pixel!
So als ob er Pro Pixel noch einen weiteren Schwarzen Pixel hinzufügt!
Hier mein Code:
void directdraw::drawPixel (long x, long y, unsigned long color) { DDSURFACEDESC2 ddsd; ZeroMemory (&ddsd, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); surface_Back_->Lock(NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL); long* Vram = (long *)ddsd.lpSurface; Vram[x + y*(ddsd.lPitch>>2)] = (((color)%32) + (((color>>8)%64) << 5) + (((color>>16)%32) << 11)); surface_Back_->Unlock(NULL); }
-
closed
-
Ne, verschieben...
-
hat denn keiner eine Idee?
-
Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
sizeof(long)?
Bye, TGGC (Pipe my World.)
-
Ich glaube TGGC meint das LONG nicht das passende ist für 16 Bit.
USHORT* Vram = (USHORT*)ddsd.lpSurface;
-
Wissen kann das nur DXler. Ich kann aber vermuten.
Bye, TGGC (Pipe my World.)
-
Naja ein echter DXler würde die Farbberechnung auch nicht so machen. Aber ich kenne mich damit nicht aus.
-
DXler schrieb:
Male ich an XPosition 55 einen Weißen Pixel ist dahinter ein Schwarzer
Was genau meinst Du denn mit "dahinter"!?!?
-
"Rechts daneben" für euch Umgangssprachler.
"Dahinter" in Speicheradressen.