C++ 在两个类之间传递的SDL_曲面指针
如果我在一个类中声明一个SDL_曲面指针,我是否可以与另一个类共享它,以便以某种方式利用它C++ 在两个类之间传递的SDL_曲面指针,c++,pointers,parameters,sdl,surface,C++,Pointers,Parameters,Sdl,Surface,如果我在一个类中声明一个SDL_曲面指针,我是否可以与另一个类共享它,以便以某种方式利用它 class foo{ private: SDL_Surface* mainScreen; public: foo() { mainScreen = SDL_SetVideoMode(400,300,32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_OPENGL); } ~foo() { SDL_
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;
}
编译并运行,但屏幕是黑色的,有人能帮忙吗?屏幕是黑色的可能是因为您使用了双缓冲,并且从不翻转缓冲区(调用
SDL\u flip(a.getSurf())
b.draw)