DirectX - blitten zu langsam?



  • Hallo nochmal,

    eine Frage muss ich nochmal loswerden. Ich habe vor hier einen simplen Sinusscroller in mein Intro einzubauen... nu ist mir aber aufgefallen, das der Scroller in einem Fenster (640 x 480) mit den GDI-Blit Funktionen schneller läuft als auf nem Fullscreen auf den ich mit den DirectDraw-Blit Routinen zugreife!? Ich dachte immer das die Direct-X Geschichten schneller sind als die GDI-Funktionen? Ich meine ich hab hier nur nen P3 600 stehen aber wir reden hier auch nur von 320 kleinen Blits, die ich auf einem Amiga mit 7 Mhz locker flüssig hinbekommen habe... Hier kurz das Quellcödchen:

    lpDDsBack->Blt(&halfscreenblit, NULL, NULL, DDBLT_COLORFILL|DDBLT_WAIT, &blit);
    for (i=0, sinus=sinusstart; i<640; i+=2, sinus+=.02f)
    {
    charsineblit.left=i; charsineblit.right=i+2;
    lpDDsBack->BltFast(i, int(100+(100*sin(sinus))), lpDDsOffscreen,&charsineblit, DDBLTFAST_WAIT);
    }
    sinusstart+=.035f;
    while(lpDDsPrimary->Flip(NULL, DDFLIP_WAIT) != DD_OK);

    Oder kann man das irgendwie beschleunigen??



  • Mit diesen Informationen ist es schwer eine Aussage zu treffen. Was genau heisst z.B. schneller?

    Wichtig wäre es mal, das deine Surfaces im RAM der GraKa liegen. Das Löschen des Screens kann evtl. beschleunigt werden. Vielleicht kommt die HW nicht mit den schmalen Streifen zurecht? Das wären Sachen, womit man evtl. beschleunigen könnte.

    Bye, TGGC \-/


Anmelden zum Antworten