configuration tweaks
[rdex:client.git] / src / rdex.h
1 /* =====================================================================
2 rdex -- reaction-diffusion explorer
3 Copyright (C) 2008,2009,2010  Claude Heiland-Allen <claudiusmaximus@goto10.org>
4 ------------------------------------------------------------------------
5 Main Module
6 ===================================================================== */
7
8 #ifndef RDEX_H
9 #define RDEX_H 1
10
11 #include <time.h>
12 #include <GL/glew.h>
13 #include <GL/glut.h>
14
15 #include "reactiondiffusion.h"
16 #include "copysquare.h"
17 #include "arithmeticmean.h"
18 #include "numericerror.h"
19 #include "difference.h"
20 #include "falsecolour.h"
21 #include "library.h"
22 #include "screenshot.h"
23
24 //======================================================================
25 // configuration
26 #define rdex_tex_size 512
27 // FIXME: breakage will occur when 360 % rdex_overdrive != 0
28 #define rdex_overdrive 2
29
30 //======================================================================
31 // main module data
32 struct rdex {
33   struct reactiondiffusion reactiondiffusion;
34   struct copysquare        copysquare;
35   struct arithmeticmean    arithmeticmean;
36   struct numericerror      numericerror;
37   struct difference        difference;
38   struct falsecolour       falsecolour;
39   struct library           library;
40   struct screenshot        screenshot;
41   GLuint fbo;
42   time_t starttime;
43   unsigned int frame;
44   unsigned int species;
45   unsigned int uniform;
46   unsigned int stable;
47   unsigned int dynamic;
48   unsigned int erratic;
49   int done;
50   int fullscreen;
51   char *behaviour;
52 };
53
54 //======================================================================
55 // prototypes
56 int rdex_init(void);
57 void rdex_reshape(int w, int h);
58 void rdex_display(void);
59 void rdex_atexit(void);
60 void rdex_idle(void);
61 void rdex_pmotion(int x, int y);
62 void rdex_amotion(int x, int y);
63 void rdex_keynormal(unsigned char key, int x, int y);
64 void rdex_keyspecial(int key, int x, int y);
65
66 #endif