JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Eigene Blt-Funktion?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 26.07.2003, 21:35    Titel: Eigene Blt-Funktion? Antworten mit Zitat

Im Buch von Stefan Zerbst hieß es doch, dass eine eigene Blt Funktion besser sei, dar man dort nur einmal die PrimarySurface Locken müsse...und wieder unlocken...

gesagt getan:
Code:

Draw_own(int x, int y,LPDIRECTDRAWSURFACE7 Surface,int Surface_ColorKey)
{
// SOURCE STUFF
   int Source_Pitch;

   DDSURFACEDESC2   Source_SurfDesc;
   ZeroMemory(&Source_SurfDesc,sizeof(Source_SurfDesc));
   Source_SurfDesc.dwSize   =   sizeof(Source_SurfDesc);

   Surface->Lock(NULL,&Source_SurfDesc,DDLOCK_WAIT,NULL);

   WORD*   Source_lpSurface   =   (WORD*)Source_SurfDesc.lpSurface;

   Source_Pitch   =   Source_SurfDesc.lPitch/2;

   // ----------------------------------------------------
   // ----------------------------------------------------


   for(int i=0; i<Source_SurfDesc.dwHeight;i++)
   {
      for(int j=0;j<Source_SurfDesc.dwWidth;j++)
      {
         own_lpSurface[(y+i)*own_Pitch+(x+j)]   =   Source_lpSurface[i*Source_Pitch+j];
      }
   }

   Surface->Unlock(NULL);
}



jetzt hab ich aber statt 59 Frames nur noch 2 Frames...

ich brauche so eine Funktion, weil das Objekt ja gar nicht gezeichnet wird, wenn nur ein Teil bei der PrimarySurface übersteht und die ClipperFunktion mag ich nciht benutzen, weil man dann ja nur Blt verwenden kann und naja ne eigene Funktion wär schon schöner und wenn's klappt vielleicht wirklich performance sparender...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 26.07.2003, 22:59    Titel: Antworten mit Zitat

Auf keinen Fall ist eine einge Blit Routine besser, wenn du vom Videospeicher in den Videospeicher kopierst, das kann einfach nicht sein. Einen gewissen Sinn macht die Idee noch, wenn du Surfaces(Speicher) im Hauptspeicher kopieren willst. Dann solltest du dir aber mal memcpy oder besser noch Assembler (rep movsd) anschauen. Dann hast du vielleicht eine Chance, dass du schneller bist. Aber auf keinen Fall beim Kopieren Vidmem->Vidmem, weil die Karte das macht und die ist immer schneller.

Christian

P.S. meiner Meinung nach macht sowas sowieso nur Sinn, wenn du feststellst, dass dein Programm zu langsam ist. Vorher würde ich lieber DirectX die Arbeit überlassen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 27.07.2003, 12:34    Titel: Antworten mit Zitat

Christian Rousselle hat Folgendes geschrieben:
Dann solltest du dir aber mal memcpy oder besser noch Assembler (rep movsd) anschauen.


Kann man mit diesen Funktionen auch Pixelweise zugreifen?
Es besteht ja bei mir leider immer noch das Geschwindigkeitsproblem Confused
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum