Fix install files
[kdeartwork.git] / kscreensaver / xsavers / mode.h
blobc2bc7f1d1cefc7fd84249907fd83f65de23b35d9
2 #ifndef __XLOCK_MODE_H__
3 #define __XLOCK_MODE_H__
5 /*-
6 * @(#)mode.h 4.00 97/01/01 xlockmore
8 * mode.h - mode management for xlock, the X Window System lockscreen.
10 * Copyright (c) 1991 by Patrick J. Naughton.
12 * See xlock.c for copying information.
14 * Revision History:
16 * Changes of David Bagley (bagleyd@bigfoot.com)
17 * 18-Mar-96: Ron Hitchens <ron@idiom.com>
18 * Extensive revision to define new data types for
19 * the new mode calling scheme.
20 * 02-Jun-95: Extracted out of resource.c.
24 /*
25 * Declare external interface routines for supported screen savers.
28 /* -------------------------------------------------------------------- */
30 struct LockStruct_s;
31 struct ModeInfo_s;
33 typedef void (ModeHook) (struct ModeInfo_s *);
34 typedef void (HookProc) (struct LockStruct_s *, struct ModeInfo_s *);
36 typedef struct LockStruct_s {
37 char *cmdline_arg; /* mode name */
38 ModeHook *init_hook; /* func to init a mode */
39 ModeHook *callback_hook; /* func to run (tick) a mode */
40 ModeHook *release_hook; /* func to shutdown a mode */
41 ModeHook *refresh_hook; /* tells mode to repaint */
42 ModeHook *change_hook; /* user wants mode to change */
43 ModeHook *unused_hook; /* for future expansion */
44 ModeSpecOpt *msopt; /* this mode's def resources */
45 int def_delay; /* default delay for mode */
46 int def_batchcount;
47 int def_cycles;
48 int def_size;
49 float def_saturation;
50 char *desc; /* text description of mode */
51 unsigned int flags; /* state flags for this mode */
52 void *userdata; /* for use by the mode */
53 } LockStruct;
55 #define LS_FLAG_INITED 1
57 typedef struct {
58 Display *display; /* handle to X display */
59 Screen *screenptr; /* ptr to screen info */
60 int screen; /* number of current screen */
61 int real_screen; /* for debugging */
62 int num_screens; /* number screens locked */
63 int max_screens; /* max # active screens */
64 Window window; /* handle to current window */
65 int win_width; /* width of current window */
66 int win_height; /* height of current window */
67 int win_depth; /* depth of current window */
68 Visual *visual; /* visual of current window */
69 Colormap colormap; /* default colormap of current window */
70 unsigned long black_pixel; /* pixel value for black */
71 unsigned long white_pixel; /* pixel value for white */
72 unsigned int flags; /* xlock window flags */
73 float delta3d;
74 } WindowInfo;
76 #define WI_FLAG_INFO_INITTED 0x001 /* private state flag */
77 #define WI_FLAG_ICONIC 0x002
78 #define WI_FLAG_MONO 0x004
79 #define WI_FLAG_INWINDOW 0x008
80 #define WI_FLAG_INROOT 0x010
81 #define WI_FLAG_NOLOCK 0x020
82 #define WI_FLAG_INSTALL 0x040
83 #define WI_FLAG_DEBUG 0x080
84 #define WI_FLAG_USE3D 0x100
85 #define WI_FLAG_VERBOSE 0x200
86 #define WI_FLAG_FULLRANDOM 0x400
87 #define WI_FLAG_WIREFRAME 0x800
88 #define WI_FLAG_JUST_INITTED 0x1000 /* private state flag */
90 typedef struct {
91 long pause; /* output, set by mode */
92 long delay; /* inputs, current settings */
93 long batchcount;
94 long cycles;
95 long size;
96 float saturation;
97 } RunInfo;
99 typedef struct ModeInfo_s {
100 WindowInfo windowinfo;
101 perscreen *screeninfo;
102 RunInfo runinfo;
103 struct LockStruct_s *lockstruct;
104 } ModeInfo;
106 /* -------------------------------------------------------------------- */
109 * These are the public interfaces that a mode should use to obtain
110 * information about the display and other environmental parameters.
111 * Everything hangs off a ModeInfo pointer. A mode should NOT cache
112 * a ModeInfo pointer, the struct it points to is volatile. The mode
113 * can safely make a copy of the data it points to, however. But it
114 * is recommended the mode make use of the passed-in pointer and pass
115 * it along to functions it calls.
116 * Use these macros, don't look at the fields directly. The insides
117 * of the ModeInfo struct are certain to change in the future.
120 #define MODE_IS_INITED(ls) ((ls)->flags & LS_FLAG_INITED)
121 #define MODE_NOT_INITED(ls) ( ! MODE_IS_INITED(ls))
123 #define MI_DISPLAY(mi) ((mi)->windowinfo.display)
124 #define MI_SCREEN(mi) ((mi)->windowinfo.screen)
125 #define MI_SCREENPTR(mi) ((mi)->windowinfo.screenptr)
126 #define MI_REAL_SCREEN(mi) ((mi)->windowinfo.real_screen)
127 #define MI_NUM_SCREENS(mi) ((mi)->windowinfo.num_screens)
128 #define MI_MAX_SCREENS(mi) ((mi)->windowinfo.max_screens)
129 #define MI_WINDOW(mi) ((mi)->windowinfo.window)
130 #define MI_WIN_WIDTH(mi) ((mi)->windowinfo.win_width)
131 #define MI_WIN_HEIGHT(mi) ((mi)->windowinfo.win_height)
132 #define MI_WIN_DEPTH(mi) ((mi)->windowinfo.win_depth)
133 #define MI_VISUAL(mi) ((mi)->windowinfo.visual)
134 #define MI_COLORMAP(mi) ((mi)->windowinfo.colormap)
135 #define MI_WIN_BLACK_PIXEL(mi) ((mi)->windowinfo.black_pixel)
136 #define MI_WIN_WHITE_PIXEL(mi) ((mi)->windowinfo.white_pixel)
137 #define MI_DELTA3D(mi) ((mi)->windowinfo.delta3d)
138 #define MI_WIN_FLAGS(mi) ((mi)->windowinfo.flags)
139 #define MI_WIN_SET_FLAG_STATE(mi,f,bool) ((mi)->windowinfo.flags = \
140 (bool) ? (mi)->windowinfo.flags | f \
141 : (mi)->windowinfo.flags & ~(f))
142 #define MI_WIN_FLAG_IS_SET(mi,f) ((mi)->windowinfo.flags & f)
143 #define MI_WIN_FLAG_NOT_SET(mi,f) ( ! MI_WIN_FLAG_IS_SET(mi,f))
144 #define MI_WIN_IS_ICONIC(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_ICONIC))
145 #define MI_WIN_IS_MONO(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_MONO))
146 #define MI_WIN_IS_INWINDOW(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INWINDOW))
147 #define MI_WIN_IS_INROOT(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INROOT))
148 #define MI_WIN_IS_NOLOCK(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_NOLOCK))
149 #define MI_WIN_IS_INSTALL(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INSTALL))
150 #define MI_WIN_IS_DEBUG(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_DEBUG))
151 #define MI_WIN_IS_USE3D(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_USE3D))
152 #define MI_WIN_IS_VERBOSE(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_VERBOSE))
153 #define MI_WIN_IS_FULLRANDOM(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_FULLRANDOM))
154 #define MI_WIN_IS_WIREFRAME(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_WIREFRAME))
156 #define MI_PERSCREEN(mi) ((mi)->screeninfo)
157 #define MI_GC(mi) ((mi)->screeninfo->gc)
158 #define MI_NPIXELS(mi) ((mi)->screeninfo->npixels)
159 #define MI_CMAP(mi) ((mi)->screeninfo->cmap)
160 #define MI_PIXELS(mi) ((mi)->screeninfo->pixels)
161 #define MI_PIXEL(mi,n) ((mi)->screeninfo->pixels[n])
163 /* are these of interest to modes? */
164 #define MI_BG_COLOR(mi) ((mi)->screeninfo->bgcol)
165 #define MI_FG_COLOR(mi) ((mi)->screeninfo->fgcol)
166 #define MI_NONE_COLOR(mi) ((mi)->screeninfo->nonecol) /* -install */
167 #define MI_RIGHT_COLOR(mi) ((mi)->screeninfo->rightcol)
168 #define MI_LEFT_COLOR(mi) ((mi)->screeninfo->leftcol)
170 #define MI_PAUSE(mi) ((mi)->runinfo.pause)
171 #define MI_DELAY(mi) ((mi)->runinfo.delay)
172 #define MI_BATCHCOUNT(mi) ((mi)->runinfo.batchcount)
173 #define MI_CYCLES(mi) ((mi)->runinfo.cycles)
174 #define MI_SIZE(mi) ((mi)->runinfo.size)
175 #define MI_SATURATION(mi) ((mi)->runinfo.saturation)
177 #define MI_LOCKSTRUCT(mi) ((mi)->lockstruct)
178 #define MI_DEFDELAY(mi) ((mi)->lockstruct->def_delay)
179 #define MI_DEFBATCHCOUNT(mi) ((mi)->lockstruct->def_batchcount)
180 #define MI_DEFCYCLES(mi) ((mi)->lockstruct->def_cycles)
181 #define MI_DEFSIZE(mi) ((mi)->lockstruct->def_size)
182 #define MI_DEFSATURATION(mi) ((mi)->lockstruct->def_saturation)
184 #define MI_NAME(mi) ((mi)->lockstruct->cmdline_arg)
185 #define MI_DESC(mi) ((mi)->lockstruct->desc)
186 #define MI_USERDATA(mi) ((mi)->lockstruct->userdata)
188 /* -------------------------------------------------------------------- */
190 extern HookProc call_init_hook;
191 extern HookProc call_callback_hook;
192 extern HookProc call_release_hook;
193 extern HookProc call_refresh_hook;
194 extern HookProc call_change_hook;
196 extern void set_default_mode(LockStruct *);
197 extern void release_last_mode(ModeInfo *);
199 /* -------------------------------------------------------------------- */
201 extern ModeHook init_ant;
202 extern ModeHook draw_ant;
203 extern ModeHook release_ant;
204 extern ModeHook refresh_ant;
205 extern ModeSpecOpt ant_opts;
207 extern ModeHook init_ball;
208 extern ModeHook draw_ball;
209 extern ModeHook release_ball;
210 extern ModeHook refresh_ball;
211 extern ModeSpecOpt ball_opts;
213 extern ModeHook init_bat;
214 extern ModeHook draw_bat;
215 extern ModeHook release_bat;
216 extern ModeHook refresh_bat;
217 extern ModeSpecOpt bat_opts;
219 extern ModeHook init_blot;
220 extern ModeHook draw_blot;
221 extern ModeHook release_blot;
222 extern ModeHook refresh_blot;
223 extern ModeSpecOpt blot_opts;
225 extern ModeHook init_bouboule;
226 extern ModeHook draw_bouboule;
227 extern ModeHook release_bouboule;
228 extern ModeHook refresh_bouboule;
229 extern ModeSpecOpt bouboule_opts;
231 extern ModeHook init_bounce;
232 extern ModeHook draw_bounce;
233 extern ModeHook release_bounce;
234 extern ModeHook refresh_bounce;
235 extern ModeSpecOpt bounce_opts;
237 extern ModeHook init_braid;
238 extern ModeHook draw_braid;
239 extern ModeHook release_braid;
240 extern ModeHook refresh_braid;
241 extern ModeSpecOpt braid_opts;
243 extern ModeHook init_bug;
244 extern ModeHook draw_bug;
245 extern ModeHook release_bug;
246 extern ModeHook refresh_bug;
247 extern ModeSpecOpt bug_opts;
249 extern ModeHook init_clock;
250 extern ModeHook draw_clock;
251 extern ModeHook release_clock;
252 extern ModeHook refresh_clock;
253 extern ModeSpecOpt clock_opts;
255 extern ModeHook init_daisy;
256 extern ModeHook draw_daisy;
257 extern ModeHook release_daisy;
258 extern ModeHook refresh_daisy;
259 extern ModeSpecOpt daisy_opts;
261 extern ModeHook init_dclock;
262 extern ModeHook draw_dclock;
263 extern ModeHook release_dclock;
264 extern ModeHook refresh_dclock;
265 extern ModeSpecOpt dclock_opts;
267 extern ModeHook init_demon;
268 extern ModeHook draw_demon;
269 extern ModeHook release_demon;
270 extern ModeHook refresh_demon;
271 extern ModeSpecOpt demon_opts;
273 extern ModeHook init_drift;
274 extern ModeHook draw_drift;
275 extern ModeHook release_drift;
276 extern ModeHook refresh_drift;
277 extern ModeSpecOpt drift_opts;
279 extern ModeHook init_eyes;
280 extern ModeHook draw_eyes;
281 extern ModeHook release_eyes;
282 extern ModeHook refresh_eyes;
283 extern ModeSpecOpt eyes_opts;
285 extern ModeHook init_flag;
286 extern ModeHook draw_flag;
287 extern ModeHook release_flag;
288 extern ModeHook refresh_flag;
289 extern ModeSpecOpt flag_opts;
291 extern ModeHook init_flame;
292 extern ModeHook draw_flame;
293 extern ModeHook release_flame;
294 extern ModeHook refresh_flame;
295 extern ModeSpecOpt flame_opts;
297 extern ModeHook init_forest;
298 extern ModeHook draw_forest;
299 extern ModeHook release_forest;
300 extern ModeHook refresh_forest;
301 extern ModeHook refresh_forest;
302 extern ModeSpecOpt forest_opts;
304 extern ModeHook init_fract;
305 extern ModeHook draw_fract;
306 extern ModeHook release_fract;
307 extern ModeHook refresh_fract;
308 extern ModeSpecOpt fract_opts;
310 extern ModeHook init_galaxy;
311 extern ModeHook draw_galaxy;
312 extern ModeHook release_galaxy;
313 extern ModeHook refresh_galaxy;
314 extern ModeSpecOpt galaxy_opts;
316 extern ModeHook init_geometry;
317 extern ModeHook draw_geometry;
318 extern ModeHook release_geometry;
319 extern ModeHook refresh_geometry;
320 extern ModeSpecOpt geometry_opts;
322 extern ModeHook init_grav;
323 extern ModeHook draw_grav;
324 extern ModeHook release_grav;
325 extern ModeHook refresh_grav;
326 extern ModeSpecOpt grav_opts;
328 extern ModeHook init_helix;
329 extern ModeHook draw_helix;
330 extern ModeHook release_helix;
331 extern ModeHook refresh_helix;
332 extern ModeSpecOpt helix_opts;
334 extern ModeHook init_hop;
335 extern ModeHook draw_hop;
336 extern ModeHook release_hop;
337 extern ModeHook refresh_hop;
338 extern ModeSpecOpt hop_opts;
340 extern ModeHook init_hyper;
341 extern ModeHook draw_hyper;
342 extern ModeHook release_hyper;
343 extern ModeHook refresh_hyper;
344 extern ModeSpecOpt hyper_opts;
346 extern ModeHook init_ico;
347 extern ModeHook draw_ico;
348 extern ModeHook release_ico;
349 extern ModeHook refresh_ico;
350 extern ModeHook change_ico;
351 extern ModeSpecOpt ico_opts;
353 extern ModeHook init_ifs;
354 extern ModeHook draw_ifs;
355 extern ModeHook release_ifs;
356 extern ModeSpecOpt ifs_opts;
358 extern ModeHook init_image;
359 extern ModeHook draw_image;
360 extern ModeHook release_image;
361 extern ModeHook refresh_image;
362 extern ModeSpecOpt image_opts;
364 extern ModeHook init_julia;
365 extern ModeHook draw_julia;
366 extern ModeHook release_julia;
367 extern ModeHook refresh_julia;
368 extern ModeSpecOpt julia_opts;
370 extern ModeHook init_kaleid;
371 extern ModeHook draw_kaleid;
372 extern ModeHook release_kaleid;
373 extern ModeHook refresh_kaleid;
374 extern ModeSpecOpt kaleid_opts;
376 extern ModeHook init_laser;
377 extern ModeHook draw_laser;
378 extern ModeHook release_laser;
379 extern ModeHook refresh_laser;
380 extern ModeSpecOpt laser_opts;
382 extern ModeHook init_life;
383 extern ModeHook draw_life;
384 extern ModeHook release_life;
385 extern ModeHook refresh_life;
386 extern ModeHook change_life;
387 extern ModeSpecOpt life_opts;
389 extern ModeHook init_life1d;
390 extern ModeHook draw_life1d;
391 extern ModeHook release_life1d;
392 extern ModeHook refresh_life1d;
393 extern ModeSpecOpt life1d_opts;
395 extern ModeHook init_life3d;
396 extern ModeHook draw_life3d;
397 extern ModeHook release_life3d;
398 extern ModeHook refresh_life3d;
399 extern ModeHook change_life3d;
400 extern ModeSpecOpt life3d_opts;
402 extern ModeHook init_lightning;
403 extern ModeHook draw_lightning;
404 extern ModeHook release_lightning;
405 extern ModeHook refresh_lightning;
406 extern ModeSpecOpt lightning_opts;
408 extern ModeHook init_lisa;
409 extern ModeHook draw_lisa;
410 extern ModeHook release_lisa;
411 extern ModeHook refresh_lisa;
412 extern ModeHook change_lisa;
413 extern ModeSpecOpt lisa_opts;
415 extern ModeHook init_lissie;
416 extern ModeHook draw_lissie;
417 extern ModeHook release_lissie;
418 extern ModeHook refresh_lissie;
419 extern ModeSpecOpt lissie_opts;
421 extern ModeHook init_loop;
422 extern ModeHook draw_loop;
423 extern ModeHook release_loop;
424 extern ModeHook refresh_loop;
425 extern ModeSpecOpt loop_opts;
427 extern ModeHook init_marquee;
428 extern ModeHook draw_marquee;
429 extern ModeHook release_marquee;
430 extern ModeHook refresh_marquee;
431 extern ModeSpecOpt marquee_opts;
433 extern ModeHook init_maze;
434 extern ModeHook draw_maze;
435 extern ModeHook release_maze;
436 extern ModeHook refresh_maze;
437 extern ModeSpecOpt maze_opts;
439 extern ModeHook init_mountain;
440 extern ModeHook draw_mountain;
441 extern ModeHook release_mountain;
442 extern ModeHook refresh_mountain;
443 extern ModeSpecOpt mountain_opts;
445 extern ModeHook init_nose;
446 extern ModeHook draw_nose;
447 extern ModeHook release_nose;
448 extern ModeHook refresh_nose;
449 extern ModeSpecOpt nose_opts;
451 extern ModeHook init_pacman;
452 extern ModeHook draw_pacman;
453 extern ModeHook release_pacman;
454 extern ModeHook refresh_pacman;
455 extern ModeSpecOpt pacman_opts;
457 extern ModeHook init_penrose;
458 extern ModeHook draw_penrose;
459 extern ModeHook release_penrose;
461 #if 0
462 extern ModeHook refresh_penrose; /* Needed */
464 #endif
465 extern ModeSpecOpt penrose_opts;
467 extern ModeHook init_petal;
468 extern ModeHook draw_petal;
469 extern ModeHook release_petal;
470 extern ModeHook refresh_petal;
471 extern ModeSpecOpt petal_opts;
473 extern ModeHook init_puzzle;
474 extern ModeHook draw_puzzle;
475 extern ModeHook release_puzzle;
477 #if 0
478 extern ModeHook refresh_puzzle; /* Needed */
480 #endif
481 extern ModeSpecOpt puzzle_opts;
483 extern ModeHook init_pyro;
484 extern ModeHook draw_pyro;
485 extern ModeHook release_pyro;
486 extern ModeHook refresh_pyro;
487 extern ModeSpecOpt pyro_opts;
489 extern ModeHook init_qix;
490 extern ModeHook draw_qix;
491 extern ModeHook release_qix;
492 extern ModeHook refresh_qix;
493 extern ModeSpecOpt qix_opts;
495 extern ModeHook init_roll;
496 extern ModeHook draw_roll;
497 extern ModeHook release_roll;
498 extern ModeHook refresh_roll;
499 extern ModeSpecOpt roll_opts;
501 extern ModeHook init_rotor;
502 extern ModeHook draw_rotor;
503 extern ModeHook release_rotor;
504 extern ModeHook refresh_rotor;
505 extern ModeSpecOpt rotor_opts;
507 extern ModeHook init_shape;
508 extern ModeHook draw_shape;
509 extern ModeHook release_shape;
510 extern ModeHook refresh_shape;
511 extern ModeSpecOpt shape_opts;
513 extern ModeHook init_slip;
514 extern ModeHook draw_slip;
515 extern ModeHook release_slip;
517 #if 0
518 extern ModeHook refresh_slip; /* Probably not practical */
520 #endif
521 extern ModeSpecOpt slip_opts;
523 extern ModeHook init_sphere;
524 extern ModeHook draw_sphere;
525 extern ModeHook release_sphere;
526 extern ModeHook refresh_sphere;
527 extern ModeSpecOpt sphere_opts;
529 extern ModeHook init_spiral;
530 extern ModeHook draw_spiral;
531 extern ModeHook release_spiral;
532 extern ModeHook refresh_spiral;
533 extern ModeSpecOpt spiral_opts;
535 extern ModeHook init_spline;
536 extern ModeHook draw_spline;
537 extern ModeHook release_spline;
538 extern ModeHook refresh_spline;
539 extern ModeSpecOpt spline_opts;
541 extern ModeHook init_star;
542 extern ModeHook draw_star;
543 extern ModeHook release_star;
544 extern ModeHook refresh_star;
545 extern ModeSpecOpt star_opts;
547 extern ModeHook init_strange;
548 extern ModeHook draw_strange;
549 extern ModeHook release_strange;
550 extern ModeSpecOpt strange_opts;
552 extern ModeHook init_swarm;
553 extern ModeHook draw_swarm;
554 extern ModeHook release_swarm;
555 extern ModeHook refresh_swarm;
556 extern ModeSpecOpt swarm_opts;
558 extern ModeHook init_swirl;
559 extern ModeHook draw_swirl;
560 extern ModeHook release_swirl;
561 extern ModeHook refresh_swirl;
562 extern ModeSpecOpt swirl_opts;
564 extern ModeHook init_tri;
565 extern ModeHook draw_tri;
566 extern ModeHook release_tri;
567 extern ModeHook refresh_tri;
568 extern ModeSpecOpt tri_opts;
570 extern ModeHook init_triangle;
571 extern ModeHook draw_triangle;
572 extern ModeHook release_triangle;
573 extern ModeHook refresh_triangle;
574 extern ModeSpecOpt triangle_opts;
576 extern ModeHook init_tube;
577 extern ModeHook draw_tube;
578 extern ModeHook release_tube;
579 extern ModeHook refresh_tube;
580 extern ModeSpecOpt tube_opts;
582 extern ModeHook init_turtle;
583 extern ModeHook draw_turtle;
584 extern ModeHook release_turtle;
585 extern ModeHook refresh_turtle;
586 extern ModeSpecOpt turtle_opts;
588 extern ModeHook init_wator;
589 extern ModeHook draw_wator;
590 extern ModeHook release_wator;
591 extern ModeHook refresh_wator;
592 extern ModeSpecOpt wator_opts;
594 extern ModeHook init_wire;
595 extern ModeHook draw_wire;
596 extern ModeHook release_wire;
597 extern ModeHook refresh_wire;
598 extern ModeSpecOpt wire_opts;
600 extern ModeHook init_world;
601 extern ModeHook draw_world;
602 extern ModeHook release_world;
603 extern ModeHook refresh_world;
604 extern ModeSpecOpt world_opts;
606 extern ModeHook init_worm;
607 extern ModeHook draw_worm;
608 extern ModeHook release_worm;
609 extern ModeHook refresh_worm;
610 extern ModeSpecOpt worm_opts;
612 #if defined( USE_XPM ) || defined( USE_XPMINC )
613 extern ModeHook init_cartoon;
614 extern ModeHook draw_cartoon;
615 extern ModeHook release_cartoon;
616 extern ModeSpecOpt cartoon_opts;
618 #endif
620 #ifdef USE_GL
621 extern ModeHook init_gears;
622 extern ModeHook draw_gears;
623 extern ModeHook release_gears;
624 extern ModeSpecOpt gears_opts;
626 extern ModeHook init_morph3d;
627 extern ModeHook draw_morph3d;
628 extern ModeHook release_morph3d;
629 extern ModeHook change_morph3d;
630 extern ModeSpecOpt morph3d_opts;
632 extern ModeHook init_pipes;
633 extern ModeHook draw_pipes;
634 extern ModeHook release_pipes;
635 extern ModeHook refresh_pipes;
636 extern ModeHook change_pipes;
637 extern ModeSpecOpt pipes_opts;
639 extern ModeHook init_superquadrics;
640 extern ModeHook draw_superquadrics;
641 extern ModeHook release_superquadrics;
642 extern ModeHook refresh_superquadrics;
643 extern ModeSpecOpt superquadrics_opts;
645 #ifdef USE_SPROINGIES
646 extern ModeHook init_sproingies;
647 extern ModeHook draw_sproingies;
648 extern ModeHook release_sproingies;
649 extern ModeHook refresh_sproingies;
650 extern ModeSpecOpt sproingies_opts;
652 #endif
653 #endif
655 #ifdef USE_HACKERS
656 extern ModeHook init_fadeplot;
657 extern ModeHook draw_fadeplot;
658 extern ModeHook release_fadeplot;
659 extern ModeHook refresh_fadeplot;
660 extern ModeSpecOpt fadeplot_opts;
662 #endif
664 extern ModeHook init_blank;
665 extern ModeHook draw_blank;
666 extern ModeHook release_blank;
667 extern ModeHook refresh_blank;
668 extern ModeSpecOpt blank_opts;
670 #ifdef USE_BOMB
671 extern ModeHook init_bomb;
672 extern ModeHook draw_bomb;
673 extern ModeHook release_bomb;
674 extern ModeHook refresh_bomb;
675 extern ModeHook change_bomb;
676 extern ModeSpecOpt bomb_opts;
678 #endif
680 extern ModeHook init_random;
681 extern ModeHook draw_random;
682 extern ModeHook release_random;
683 extern ModeHook refresh_random;
684 extern ModeHook change_random;
685 extern ModeSpecOpt random_opts;
687 extern LockStruct LockProcs[];
688 extern int numprocs;
690 /* -------------------------------------------------------------------- */
692 #endif /* __XLOCK_MODE_H__ */