ClanLib Zeichenproblem



  • Hallo

    Ich spiel mich grad ein bissl mit ClanLib und hab ein eigenartiges Problem.
    Ich hab eine eigene Klasse "SystemWindow", die von von meiner Klasse "WindowManager" instanziert wird. Der Konstruktor der Klasse SystemWindow schaut wie folgt aus:

    this->m_dwWindow = CL_DisplayWindow( "Title", 800, 480, false, true );
    this->m_gc = this->m_dwWindow.get_gc();
    

    SystemWindow wird wie gesagt vom WindowManager instanziert und das passiert so:

    Window *newWindow = new SystemWindow();
    newWindow->SetWindowManager( this );
    this->m_wWindows.push_back( newWindow );
    return newWindow;
    

    SystemWindow erbt von einer Basisklasse Window und im Vector m_wWindows wird auch nur der Basisklassenzeiger gespeichert.
    So nun zum Problem: Mein SystemWindow hat eine Methode Render. Diese wird über den WindowManager immer wieder aufgerufen. Sie schaut so aus:

    this->m_gc.clear();
    CL_Draw::box( this->m_gc, 10, 10, 100, 100, CL_Colorf( 0, 255, 0, 1.0 ) );
    this->m_dwWindow.flip();
    CL_KeepAlive::process( 0 );
    

    Das Problem ist allerdings, dass meine Box nicht gezeichnet wird. Der GraphicContext stimmt allerdings, denn wenn ich im clear eine Farbe angib, funktioniert das. Das witzige ist jetzt, dass wenn ich clear komplett weglasse, dann taucht die box "langsam" auf. Ich glaube, dass es irgendein Speicherproblem ist. Kennst das Problem jemand?

    Hier könnt ihr auch das ganze Projekt downloaden:
    https://www.dropbox.com/s/dd49pxsrwboixjy/sevenAppFramework.rar

    Danke.



  • So. Kaum ein paar Minuten später hab ich selbst die Lösung.
    Der Alpha Wert bei CL_Colorf geht ja auch bis 255 und nicht nur bis 1.0
    Das hat man davon, wenn man mal mit GameMaker gearbeitet hat 🙂


Anmelden zum Antworten