000
20.06.2004, 15:50 Uhr
~Mystor
Gast
|
Hi,
Ich habe ein Problem, und zwar arbeite ich gerade ein Buch durch von Marius Apetri. Also, folgender Quellcode:
C++: |
#include <windows.h>
#include "s2_1.h"
uchar handle_input( MSG *msg );
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow ) { surface.open_window( hInstance, 320, 200, 8 ); //surface -> directX class uchar *screen = (uchar *) surface.get_screen_pointer();
for( long x=0 ; x<256 ; x++ ) for( long y=0 ; y<200 ; y++ ) screen[ y * 320 + x ] = x; surface.release_screen_pointer(); MSG message; while( !handle_input( &message ) ) ;
return message.wParam; }
uchar handle_input( MSG *msg ) { if( PeekMessage( msg, NULL, 0, 0, PM_REMOVE ) ) { if( msg->message == WM_QUIT || msg->message == WM_KEYDOWN ) return 1; TranslateMessage( msg ); DispatchMessage( msg ); } return 0; }
|
get_screen_pointer holt die Grafikspeicheradresse, sodass ich dann direkt in den Speicher schreiben kann. release_screen_pointer setzt den Datenstrom wieder an, sodass die Daten dargestellt werden können. Problem: Der Bildschirm bleibt schwarz. Setzte ich allerdings in die while-Schleife den Teil
C++: |
for( long x=0 ; x<256 ; x++ ) for( long y=0 ; y<200 ; y++ ) screen[ y * 320 + x ] = x;
|
ein so erscheinen Farben auf dem Bildschirm. Die sehen dann allerdings auch nicht si aus wie sie sollen.
Ein gravierender Fehler, den ich übersehen habe, irgendwo im System?
Danke schon mal im Vorraus. |