diff options
Diffstat (limited to 'Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h')
-rw-r--r-- | Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h b/Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h new file mode 100644 index 00000000..778fb751 --- /dev/null +++ b/Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h @@ -0,0 +1,40 @@ +#ifndef __BPAINTWND_H +#define __BPAINTWND_H + +#include <api/wnd/wndclass/guiobjwnd.h> + +#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 |