From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h (limited to 'Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h') 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 + +#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 -- cgit