rdex: depth sorting of library points (now stored in regrown array instead of linked...
[rdex:client.git] / src / library.h
1 /* =====================================================================
2 rdex -- reaction-diffusion explorer
3 Copyright (C) 2008  Claude Heiland-Allen <claudiusmaximus@goto10.org>
4 ------------------------------------------------------------------------
5 Library Module
6 ===================================================================== */
7
8 #ifndef LIBRARY_H
9 #define LIBRARY_H 1
10
11 #include <GL/glew.h>
12
13 //======================================================================
14 // library data structures
15
16 #define library_tex_size 32
17
18 struct libelem {
19   GLfloat v[4];
20   GLuint t;
21   GLfloat w[3];
22 };
23
24 struct library {
25   int count;
26   int arraysize;
27   struct libelem *array;
28   GLfloat vmin[4];
29   GLfloat vmax[4];
30   GLfloat vsub[4];
31   GLfloat vmul[4];
32   GLfloat m[16];
33   GLfloat d;
34   GLfloat X, Y, Z;
35   int width;
36   int height;
37   int snap;
38   int buffersize;
39   char *buffer;
40   char *session;
41 };
42
43 //======================================================================
44 // prototypes
45
46 struct library *library_init(struct library *library);
47 int library_load(struct library *library);
48 void library_display_save(
49   struct library *library, GLuint fbo, GLuint texture,
50   double ru, double rv, double f, double k
51 );
52 void library_reshape(struct library *library, int w, int h);
53 void library_display(struct library *library, GLuint texture);
54 void library_pmotion(struct library *library, int x, int y);
55 void library_amotion(struct library *library, int x, int y);
56 void library_idle(struct library *library);
57
58 #endif