SDL渲染和纹理,传递引用

时间:2014-05-09 09:13:03

标签: c++ pointers sdl

我正在尝试实现一个Class窗口(带有渲染和窗口)和一个Draw(纹理)类,为了绘制我需要有一个渲染的引用,但是它们将是通用的类,我不能将我的绘制类与单个渲染结合,所以我试图在窗口中发送绘制的渲染,因此它可以在渲染上绘制...

我有这样的事情......

class SDLWindow{
        public:
            SDLWindow(std::string Title,int h=480, int w=640, int x=SDL_WINDOWPOS_CENTERED, int y=SDL_WINDOWPOS_CENTERED, Uint32 flag =SDL_WINDOW_SHOWN );
            void RendererOptions(Uint8,Uint8,Uint8,Uint8);
            void RendererClear();
            void RendererPresent();
            SDL_Renderer* ref2Window();
            ~SDLWindow();
        private:
            SDL_Window* DispWin;
            SDL_Renderer* DispRenderer;

    };

我希望这是帮助我提供渲染

的函数
SDL_Renderer* SDLWindow::ref2Window(){
    return DispRenderer;
}

这是抽奖类

class SimpleDrawText{
    public:
        SimpleDrawText(std::string file,SDL_Renderer& ref, int w=100,int h=100, int x=0, int y=0);
        void Draw(SDL_Renderer& ref);
    protected:

    private:
        SDL_Texture* drawTexture; // the new SDL_Texture variable
        SDL_Rect source; // the first rectangle
        SDL_Rect destination; // another rectangle

        int posx;
        int posy;
        int height;
        int width;
};

我得到像这样的引用

void SimpleDrawText::Draw(SDL_Renderer& ref){
    SDL_RenderCopy(&ref, drawTexture, &source, &destination);
}

我确信,有一些非常基本的,指针和参考,但我现在无法理解......任何帮助?

1 个答案:

答案 0 :(得分:0)

void SimpleDrawText::Draw(SDL_Renderer* ref){
    SDL_RenderCopy(ref, drawTexture, &source, &destination);
}

这是你想要做的我相信的。希望它有所帮助。