Pixelausgabe mit DX



  • Hej,
    habe schon hier im Forum und auch unter google gesucht, zwar auch schon etwas gefunden, doch irgednwie klappts immer noch net 😞
    Ich will im Grunde nur eine Flaeche von 104x104 Pixel faerben (erstmal nur Rot).
    Hier ist das was ich bisher zusammengebaut hab, doch aus mysterioesen 😃 Gruenden beendet sich das Programm immer 😮

    LPDIRECTDRAW7 lpDD7;
    LPDIRECTDRAWSURFACE7 lpDDMiniMap;
    
    DDSURFACEDESC2 SurfDesc;
    	HDC hSurfDC;
    
    	// Oberflächenbeschreibung initialisieren
        ZeroMemory(&SurfDesc, sizeof(SurfDesc));
    	SurfDesc.dwSize = sizeof(SurfDesc);
    
    	// Caps, Höhe und Breite sollen berücksichtigt werden
        SurfDesc.dwFlags =	DDSD_CAPS   | DDSD_HEIGHT | DDSD_WIDTH;
    
        SurfDesc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
    	SurfDesc.dwWidth  = 104;
    	SurfDesc.dwHeight = 104;
    
    	lpDD7->CreateSurface(&SurfDesc,&lpDDMiniMap,NULL);
    
    	// Device Context der Oberfläche holen
        lpDDMiniMap->GetDC(&hSurfDC);
    
    	//DRAW
    	BYTE *lpByte;
    	// Oberflaeche sperren
    	//lpDD7->Lock(NULL, lpDDMiniMap, DDLOCK_WAIT, NULL);
    	lpDDMiniMap->Lock(NULL,&SurfDesc,DDLOCK_SURFACEMEMORYPTR|DDLOCK_WAIT,NULL);
    
    	// Pointer holen
    	lpByte = (BYTE*)SurfDesc.lpSurface;
    
    	for(y=0;y<104;y++)
    	{
    		for(x=0;x<104;x++)
    		{
    			*lpByte = 255;//RGB(255,0,0);
    			//*((BYTE*)SurfDesc.lpSurface) = *lpByte;
    			lpByte++;
    		}
    		lpByte += (SurfDesc.lPitch - 104);
    	}
    
    	// Oberflaeche entsperren
    	lpDDMiniMap->Unlock(NULL);
    	// Device Context freigeben
        lpDDMiniMap->ReleaseDC(hSurfDC);
    

    Hoffe mir kann jmd. helfen.
    ByeBye, VIking69



  • Debugger & debug Runtimes felsen.
    Und du arbeitest nicht wirklich in 8 Bit Farbtiefe, oder?

    Bye, TGGC (Der Held bei Dir!)



  • Welche version von DDraw verwendest du? Ansonsten versuch mal lpDDMiniMap = NULL am anfang einzufügen. Manche DDraw versionen brauchen das. Hab ich auch mal nen Problm mit gemacht



  • mwoidt schrieb:

    Welche version von DDraw verwendest du?

    Sollte das nicht aus dem Code ersichtlich sein?



  • Hm eigendlich schon


Anmelden zum Antworten