2011-01-31 4 views
2

クラス内でSDL_Surfaceポインタを宣言すると、別のクラスと共有して何らかの形で描画できますか?2つのクラス間でSDL_Surfaceポインタを渡す

class foo{ 
    private: 
    SDL_Surface* mainScreen; 
    public: 
    foo() { 
     mainScreen = SDL_SetVideoMode(400,300,32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_OPENGL); 
    } 

    ~foo() { 
     SDL_FreeSurface(mainScreen); 
    } 

    SDL_Surface* getSurf() { 
     return mainScreen; 
    } 

}; 

class fee{ 
    private: 
    SDL_Surface* screen_passed; 
    public: 
    void draw(SDL_Surface* screen) { 
     screen_passed = screen; 

     SDL_Surface* img; 
     SDL_Surface* app; 
     app = IMG_Load("image.png"); 
     img = SDL_DisplayFormatAlpha(app); 
     SDL_FreeSurface(app); 
     SDL_Rect destR; 

     destR.x=0; 
     destR.y=0; 

     SDL_BlitSurface(img, NULL, screen, &destR); 
    } 
}; 

int main(int argc, char* argv[]) { 
    SDL_Init(SDL_INIT_VIDEO); 
    foo a; 
    fee b; 
    b.draw(a.getSurf()); 
    SDL_Flip(a.getSurf()); 
    sleep(5); 
    return 0; 
} 

コンパイルと実行が画面は黒ですが、誰でも手助けできますか?

答えて

4

ダブルバッファリングを使用していて、バッファを反転しない可能性があります(b.drawの後にSDL_Flip(a.getSurf())を呼び出してください)。

関連する問題