Mam problem. Robię od dosyć dawna mój pierwszy program w allegro. Ale odkąd dodałem podwójne buforowanie, i kilka zmian w moich klasach, program zaczął się sypać. Oto interesujący(dzięki ukochanemu debuggerowi :D) fragment:

BITMAP* Bufor = create_bitmap(SCREEN_W, SCREEN_H);
// ....
while(true)
    {
        clear_to_color(Bufor, makecol(TURQUOISE));
        Back.Pokaz();
        Off.Pokaz();
        textout_ex(Bufor, font, "WYTEZ SWOJE SZCZESCIE GFX", 25, 10, makecol(BLACK), -1);
        for(int X = 35, a = 0; a != 9; a++, X += 10)
            textout_ex(Bufor, font, Kons[a].c_str(), 10, X, makecol(GOLD), -1);
        if(!Bufor)exit(0);
        if(!screen)exit(1);
        blit(Bufor, screen, 0, 0, 0, 0, 256, 128); //Tu się sypie
        if(Back.Zauktualizuj())return;
        if(Off.Zauktualizuj())
        {
            allegro_exit();
            exit(0);
        }
        Sleep(30);
    } 

Dlaczego może się coś takiego dziać?
Jedyne poza tym, co się dzieje z Bufor to:

class ButtonGraph
{
protected:
    BITMAP **Bitmap;
    BITMAP **NaCzym;
    int X, Y, X2, Y2, Xmy, Ymy;
    bool Klik;
public:
    ButtonGraph()
    {
        X = Y = X2 = Y2 = Xmy = Ymy = Klik = 0;
        Bitmap = NULL;
        NaCzym = &screen;
    }
// ....
    void UstBit(BITMAP* Ab)
    {
        Bitmap = &Ab;
    }
    void Pokaz()
    {
        blit(*Bitmap, *NaCzym, 0, 0, X, Y, X2-X, Y2-Y);
    }
    void UstTlo(BITMAP* Tlo)
    {
        NaCzym = &Tlo;
    }
// Nieważne części klasy 

Skończyły mi sie juz pomysły:/ Czy ktos mogł by mi pomóc?