|
|
1.1 root 1: /****************************************************************************
2:
3: MANDEL.H -- Constants and function definitions for MANDEL.C
4:
5: Copyright (C) 1990 Microsoft Corporation.
6:
7: ****************************************************************************/
8:
9: #define IDM_ABOUT 100
10: #define IDM_ZOOMIN 101
11: #define IDM_ZOOMOUT 105
12: #define IDM_TOP 106
13: #define IDM_REDRAW 107
14: #define IDM_EXIT 108
15: #define IDM_CONTINUOUS 109
16:
17: #define IDM_1LINE 200
18: #define IDM_2LINES 201
19: #define IDM_4LINES 202
20: #define IDM_8LINES 203
21: #define IDM_16LINES 204
22: #define IDM_32LINES 205
23:
24: #define ID_OK 304
25:
26: #define WM_DOSOMEWORK (WM_USER+0)
27: #define WM_PAINTLINE (WM_USER+1)
28:
29: #define LBID_SERVERS 102
30:
31: #define WIDTH 300
32: #define HEIGHT 300
33:
34: #define MAXLINES 32
35:
36: #ifndef MAXPATHLEN
37: #define MAXPATHLEN 260
38: #endif
39:
40: #define MAXID 64 // saved zoomin operations
41:
42: #define MAX_BUFSIZE (HEIGHT * sizeof(long) * MAXLINES)
43:
44: extern int iLines;
45:
46: // A table of servers we know about
47: typedef struct _svr_table {
48: char name[16+1]; // name of remote server
49: int hfPipe; // RPC handle
50: int iStatus; // status of connection
51: int cPicture; // picture id for this line
52: DWORD dwLine; // line we're drawing
53: int cLines; // lines in this chunk
54: } svr_table;
55:
56: // if RPC, this data is defined within the IDL file
57: #ifndef RPC
58: typedef struct _cpoint {
59: double real;
60: double imag;
61: } CPOINT;
62:
63: typedef CPOINT * PCPOINT;
64:
65: typedef struct _LONGRECT { /* rcl */
66: long xLeft;
67: long yBottom;
68: long xRight;
69: long yTop;
70: } LONGRECT;
71:
72: typedef LONGRECT *PLONGRECT;
73:
74: typedef struct _LINEBUF {
75: WORD adw[MAX_BUFSIZE];
76: } LINEBUF;
77:
78: typedef LINEBUF * PLINEBUF;
79: #endif
80:
81: extern svr_table SvrTable[]; // the table
82: extern int SvrTableSz; // # of objects in it
83: extern int cPictureID; // current picture; index to table
84:
85: extern RECT rcHistory[];
86: int APIENTRY WinMain(HANDLE, HANDLE, LPSTR, int);
87: BOOL InitApplication(HANDLE);
88: BOOL InitInstance(HANDLE, int);
89: LONG APIENTRY MainWndProc(HWND, UINT, UINT, LONG);
90: BOOL APIENTRY About(HWND, UINT, UINT, LONG);
91: BOOL APIENTRY SaveAsDlgProc(HWND, UINT, UINT, LONG);
92: void DoSomeWork(HWND, BOOL);
93: void IncPictureID(void);
94:
95: void InitHistogram(void);
96: void CountHistogram(void);
97: void CalcHistogram(int x,
98: int y,
99: DWORD dwIter,
100: DWORD dwThreshold);
101: #define NCOLORS 11
102:
103: extern int fContinueZoom;
104: extern int fZoomIn;
105: extern int iHistMaxI;
106: extern int iHistMaxJ;
107: extern int Histogram[4][4][NCOLORS+1];
108: extern int ColorCount[4][4];
109: extern BOOL fRectDefined;
110:
111: extern char pszFail[];
112:
113: BOOL InitRemote( HWND );
114: void PollForServers( void );
115: void CheckPoll( void );
116: BOOL CheckDrawStatus( HWND);
117: void RetryConnections( void );
118: void SetNewCalc( CPOINT cptUL, double dPrecision, RECT rcl);
119: BOOL CheckDrawingID( int );
120:
121: extern BOOL fLocalWork;
122: extern BOOL fRemoteWork;
123:
124:
125: // Status of connection to server
126:
127: #define SS_DISCONN 0
128: #define SS_IDLE 1
129: #define SS_READPENDING 2
130: #define SS_PAINTING 3
131: #define SS_LOCAL 4
132:
133:
134: // Buffer routines
135:
136: BOOL TakeDrawBuffer( void );
137: PDWORD GetDrawBuffer( void );
138: void FreeDrawBuffer( void );
139: void ReturnDrawBuffer( void );
140: DWORD QueryThreshold( void );
141:
142: int GetServerCount( void );
143: void GetServerName( int, char *);
144:
145:
146: extern RECT rcZoom;
147: extern double dPrec;
148:
149: #define MINPREC 5.0E-9
150: #define MAXPREC 5.0E-3
151:
152: // if RPC version, this routine is defined within the IDL file
153: #ifndef RPC
154: void MandelCalc( PCPOINT pcptLL,
155: PLONGRECT prcDraw,
156: double precision,
157: DWORD ulThreshold,
158: PLINEBUF pbBuf);
159: #endif
160:
161: typedef struct _calcbuf {
162: LONGRECT rclDraw;
163: double dblPrecision;
164: DWORD dwThreshold;
165: CPOINT cptLL;
166: } CALCBUF;
167:
168: short calcmand(double dreal, double dimag, short maxit);
169:
170: typedef struct _mults {
171: double rs; /* real squared */
172: double is; /* imag squared */
173: double ri; /* real * imaginary */
174: } mults;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.