diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/wnd/wndclass/bufferpaintwnd.h | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
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 |