Backbuffer Zugriff ohne DirectX/OpenGL etc.
-
Hallo,
ich will mir nen kleinen Software-Rasterizer schreiben, und benötige dafür eine Möglichkeit irgendwie in einen Backbuffer zu schreiben und diesen Inhalt dann in den Videospeicher der Graka zu schieben (also irgendwie was a la WriteToBackBuffer(int x, int y, int color) und Swap()).
Meine Frage ist nun: Wie mache ich das am einfachsten, jedoch OHNE DirectX oder OpenGL. Geht das irgendwie über .NET oder Winapi?
-
Mit der WinAPI kannst das über einen Speicherkontext (memory device context) tun. Auf diesem kannst du deine Grafikoperationen ausführen und den Kontext danach in eine Fenster kopieren.
-
ja mit winapi geht das einiermassen -> DIB wuerde ich sagen
-
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
An den BackBuffer der Graka kommte logischerweise nicht dran...du kannst aber direkt auf den Display schreiben (GetDC/ReleaseDC) oder dir nen (wie don_basto schon gesagt hat) nen Speicherkontext erstellen und dann BackBuffern, aber das würde ich nur, wenn du sehr viele Zeichenoperationen machst.
Wg. Infos siehe FAQ.
-
CodeFinder schrieb:
oder dir nen (wie don_basto schon gesagt hat) nen Speicherkontext erstellen und dann BackBuffern, aber das würde ich nur, wenn du sehr viele Zeichenoperationen machst.
Würde ich immer machen, sonst fängst es an zu flacken wenn du direkt in den 'finalen' DC rummalst
-
CMatt schrieb:
CodeFinder schrieb:
oder dir nen (wie don_basto schon gesagt hat) nen Speicherkontext erstellen und dann BackBuffern, aber das würde ich nur, wenn du sehr viele Zeichenoperationen machst.
Würde ich immer machen, sonst fängst es an zu flacken wenn du direkt in den 'finalen' DC rummalst
Na bei einem TextOut ist das doch wohl überflüssig...

-
ne, der hintergrund muss ja auch noch gezeichnet werden.
-
ox schrieb:
ne, der hintergrund muss ja auch noch gezeichnet werden.
LOL, ja klar! Aber bei einer Übertragung (also Blitting) eines Speicherkontextes auf den Gerätekontext, ist das auch so.