Backbuffer mit Farbe füllen



  • Hallo

    Würd ja gern die suchfunktion verwenden aber die gibts wohl erst auf dem neuen server 😕

    Also, ich versuch mich grad an dem Tutorial ProjektE, und da bekommt man nach dem 2. Kapitel 3 Aufgaben, allerdings weiß ich überhaupt nicht wie ich an die Aufgaben dran gehen soll.

    So 2 Fragen haben sich erledigt, jetzt möchte ich nur noch gern wissen wie ich den Backbuffer in der AHuptschleife mit einer Farbe fülle.
    danke
    mfg Frusciante



  • OpenGl oder DirecTx



  • Ups, mal wieder vergessen ^^
    Ich benutze SDL



  • bei meinem kleinen skiing-Spiel hab ich das mit SDL_FillRect gemacht



  • Schon mal danke für die Antwort, aber erstens weis ich nicht genau wie ich das mit dem FillRect in meinen Code "einbaue" und zweitens würd ich es trotzdem gern mit dem Backbuffer machen/versuchen 😉 .

    mfg Frusciante



  • Vieleicht hilft ja der Code, wie müsste ich den umändern um den Backbuffer mit einer Farbe zu füllen, oder mit diesem FillRect befehl?
    danke

    #include <SDL.h> 
    
    // Hier definieren wir globale Variablen 
    // Für das erste kleine Beispiel benötigen wir lediglich einen Backbuffer 
    SDL_Surface* g_pBackBuffer = 0; 
    
    #ifdef _WIN32
    #undef main
    #endif
    // Die main-Funktion ist der Haupteinsprungspunkt des Programmes 
    
    int main ( int argc, char* argv[] ) 
    { 
        // Die Video-Komponente der SDL initialisieren 
        // Gibt die Funktion einen Wert < 0 zurück, ist ein Fehler aufgetreten 
        if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) 
        { 
            return 0; 
        } 
    
        // In einen Videomodus schalten; SDL_SetVideoMode gibt bei Erfolg einen Zeiger auf den Backbuffer zurück 
        // Im Gegensatz zu anderen Surfaces muß dieses Surface nicht vom Entwickler freigegeben werden 
        g_pBackBuffer = SDL_SetVideoMode( 800, 600, 16, SDL_HWSURFACE | SDL_DOUBLEBUF ); 
        if( 0 == g_pBackBuffer ) 
        { 
            // Bereits initialisiertes SDL System deinitialisieren 
            SDL_Quit(); 
            return 0; 
        } 
    
        // Wenn wir hier angekommen sind, ist das Fenster erstellt und einsatzbereit 
    
        // Diese Variable wird Informationen über die aufgetretenen Ereignisse speichern, die uns SDL_PollEvent mitteilt 
        SDL_Event clEvent; 
    
        // Hier beginnen wir die Hauptschleife des Programms ... 
        while( 1 ) 
        { 
            // ... und die Schleife wird nur verlassen, wenn eine Taste gedrückt wurde 
            if( SDL_PollEvent( &clEvent ) && ( clEvent.type == SDL_KEYDOWN ) ) 
            { 
                break; 
            } 
        } 
    
        // Das Programm soll beendet werden 
        // SDL deinitialisieren 
        SDL_Quit(); 
    
        // Und Schluß
    


  • Weisst du eigentlich, was der Sinn bei solchen Aufgaben ist?

    Bye, TGGC \-/



  • Ich würd jetzt mal sagen um sein Wissen zu testen oder sein Wissen über die SDL zu erweitern?!?



  • Na dann teste mal dein Wissen und bemüh dein eigenes Hirn.

    Bye, TGGC \-/



  • Und dabei hab ich dir noch einen Link auf die Referenz zu der Funktion gegeben. Wenn du es nicht schaffst das einzubauen, bist doch einfach noch nicht weit genug und du solltest dein C-Grundlagen Buch wieder rauskramen 🙄



  • Ich würd' sagen mit folgender Änderung:

    [...]
    int main ( int argc, char* argv[] ) 
    {
    [...]
      // Hier beginnen wir die Hauptschleife des Programms ... 
        while( 1 ) 
        { 
              return 0;
        } 
    [...]
    

    😃 😉


Anmelden zum Antworten