blob: 778fb7510a50080cc38595e6d2439e01520ddce8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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
|