#ifndef __BPAINTWND_H #define __BPAINTWND_H #include #define BUFFERPAINTWND_PARENT GuiObjectWnd class BufferPaintWnd : public BUFFERPAINTWND_PARENT { public: BufferPaintWnd(); virtual ~BufferPaintWnd(); virtual int onInit(); virtual int onPaint(Canvas *c); virtual int onBufferPaint(BltCanvas *c, int w, int h) { return 1; } virtual int wantEvenAlignment() { return 0; } // if you need even coordinates for your framebuffer, return 1 here virtual void getBufferPaintSize(int *w, int *h); // by default returns client width/height virtual void getBufferPaintSource(RECT *r); // by default returns the size of the quickpaint canvas virtual void getBufferPaintDest(RECT *r); // by default returns the size of client area virtual int wantNegativeHeight() { return 0; } virtual void invalidateBuffer(); virtual int onResize(); virtual void onNewBuffer(int w, int h) {} protected: BltCanvas *render_canvas; private: void bufferPaint(); int updateCanvas(); int canvas_w, canvas_h; int invalidated; }; #endif