diff options
author | Sam <Sam@XPS-SUSE.XPS> | 2008-05-22 19:12:40 +0800 |
---|---|---|
committer | Sam <Sam@XPS-SUSE.XPS> | 2008-05-22 19:12:40 +0800 |
commit | 615b500bb4b9a48cd20d82392be62808a8b577a8 (patch) | |
tree | f2a4f28dc59db86a4d4da88549c1031fa41dce76 /fobjects-internal.h | |
parent | bc6205ccdc222a677431d787ab73edec79f947ea (diff) | |
download | floatingobjects-615b500bb4b9a48cd20d82392be62808a8b577a8.tar.gz floatingobjects-615b500bb4b9a48cd20d82392be62808a8b577a8.tar.bz2 |
Diffstat (limited to 'fobjects-internal.h')
-rw-r--r-- | fobjects-internal.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/fobjects-internal.h b/fobjects-internal.h new file mode 100644 index 0000000..8eeab7d --- /dev/null +++ b/fobjects-internal.h @@ -0,0 +1,74 @@ +#include <math.h> + +#include <compiz-core.h> +#include "fobjects_options.h" + +#define GET_SNOW_DISPLAY(d) \ + ((FObjectsDisplay *) (d)->base.privates[displayPrivateIndex].ptr) + +#define SNOW_DISPLAY(d) \ + FObjectsDisplay *sd = GET_SNOW_DISPLAY (d) + +#define GET_SNOW_SCREEN(s, sd) \ + ((FObjectsScreen *) (s)->base.privates[(sd)->screenPrivateIndex].ptr) + +#define SNOW_SCREEN(s) \ + FObjectsScreen *ss = GET_SNOW_SCREEN (s, GET_SNOW_DISPLAY (s->display)) + +static int displayPrivateIndex = 0; + +/* ------------------- STRUCTS ----------------------------- */ +typedef struct _FObjectsDisplay +{ + int screenPrivateIndex; + + Bool useTextures; + + int fobjectsTexNFiles; + CompOptionValue *fobjectsTexFiles; +} FObjectsDisplay; + +typedef struct _FObjectsTexture +{ + CompTexture tex; + + unsigned int width; + unsigned int height; + + Bool loaded; + GLuint dList; +} FObjectsTexture; + +typedef struct _FObjectsObject +{ + float x, y, z; + float xs, ys, zs; + float ra; /* rotation angle */ + float rs; /* rotation speed */ + + FObjectsTexture *tex; +} FObjectsObject; + +typedef struct _FObjectsScreen +{ + CompScreen *s; + + Bool active; + + CompTimeoutHandle timeoutHandle; + + PaintOutputProc paintOutput; + DrawWindowProc drawWindow; + + FObjectsTexture *fobjectsTex; + int fobjectsTexturesLoaded; + + GLuint displayList; + Bool displayListNeedsUpdate; + + FObjectsObject *allObjects; +} FObjectsScreen; + +/* some forward declarations */ +static void initiateFObjectsObject (FObjectsScreen * ss, FObjectsObject * sf); +static void fobjectsMove (CompDisplay *d, FObjectsObject * sf); |