source: golgotha/src/maxtool/sdk_inc/fbwin.h @ 80

Last change on this file since 80 was 80, checked in by Sam Hocevar, 12 years ago
  • Adding the Golgotha source code. Not sure what's going to be interesting in there, but since it's all public domain, there's certainly stuff to pick up.
  • Property svn:keywords set to Id
File size: 2.8 KB
RevLine 
[80]1/**********************************************************************
2 *<
3        FILE: fbwin.h
4
5        DESCRIPTION: framebuffer window include file.
6
7        CREATED BY: Don Brittain
8
9        HISTORY:
10
11 *>     Copyright (c) 1995, All Rights Reserved.
12 **********************************************************************/
13
14#if !defined(_FBWIN_H_)
15
16#define _FBWIN_H_
17
18#ifdef WIN95STUFF
19#include <vfw.h>
20#endif
21
22#define FBW_MSG_OFFSET (WM_USER + 1000)
23
24#define FBW_LBUTTONDOWN         (WM_LBUTTONDOWN + FBW_MSG_OFFSET)
25#define FBW_LBUTTONUP           (WM_LBUTTONUP + FBW_MSG_OFFSET)
26#define FBW_LBUTTONDBLCLK       (WM_LBUTTONDBLCLK + FBW_MSG_OFFSET)
27#define FBW_RBUTTONDOWN         (WM_RBUTTONDOWN + FBW_MSG_OFFSET)
28#define FBW_RBUTTONUP           (WM_RBUTTONUP + FBW_MSG_OFFSET)
29#define FBW_RBUTTONDBLCLK       (WM_RBUTTONDBLCLK + FBW_MSG_OFFSET)
30#define FBW_MOUSEMOVE           (WM_MOUSEMOVE + FBW_MSG_OFFSET)
31
32
33class FB_RGBA_Pixel {
34        union {
35                struct {
36                        BYTE red;
37                        BYTE green;
38                        BYTE blue;
39                        BYTE alpha;
40                } rgba;
41                DWORD pix;
42        };
43};
44
45// framebuffer window setup structure
46class FBWinSetup {
47public:
48    DllExport FBWinSetup();
49        DWORD                   winStyle;
50        POINT                   winSize;
51        POINT                   winPlace;
52        POINT                   fbSize;
53};
54
55class FrameBufferWindow {
56public:
57        DllExport       FrameBufferWindow(HWND hParent, FBWinSetup &fbw);
58        DllExport       ~FrameBufferWindow();
59
60                                HWND    getHWnd()                       { return hWnd; }
61                                int             getBitsPerPixel()       { return bpp; }
62
63                                void    setNotify(int n)        { notify = n; }
64                                int             getNotify()                     { return notify; }
65
66                                int             getOriginX()    { return origin.x; }
67                                int             getOriginY()    { return origin.y; }
68                                void    setOrigin(int x, int y) { origin.x = x; origin.y = y; }
69
70                                int             getFbSizeX()    { return fbSize.x; }
71                                int             getFbSizeY()    { return fbSize.y; }
72#if 0
73        DllExport       void    setFbSize(int x, int y);
74
75        DllExport       void    loadDIB(LPBITMAPINFOHEADER dib);
76#endif
77       
78        DllExport       void    startScanlineLoad();
79        DllExport       void    scanline(int line, int start, int count, FB_RGBA_Pixel *pixels);
80        DllExport       void    scanline(int line, int start, int count, BYTE *red, BYTE *green, BYTE *blue);
81        DllExport       void    endScanlineLoad();
82
83        friend LRESULT CALLBACK FBWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
84
85private:
86        void                            onPaint(HWND hWnd, WPARAM wParam, LPARAM lParam);
87        void                            onSize(HWND hWnd, WPARAM wParam, LPARAM lParam);
88        void                            setupPalette();
89        void                            setupDIB();
90
91        static int                      refCount;
92        HWND                            hWnd;
93        HWND                            hParent;
94
95        int                                     notify;
96
97#ifdef WIN95STUFF
98        HDRAWDIB                        hDrawDC;
99#endif
100        int                                     bpp;
101        int                                     paletted;
102
103        POINT                           winSize;
104        POINT                           fbSize;
105        POINT                           origin;
106
107        int                                     dibLoaded;
108        LOGPALETTE *            logPal;
109        LPBITMAPINFOHEADER      pbih;
110        BYTE *                          pixBuf;
111        int                                     pixBufSize;
112};
113
114
115#endif // _FBWIN_H_
Note: See TracBrowser for help on using the repository browser.