1 #ifndef BLOBS_GFX_X_H_INCLUDED 2 #define BLOBS_GFX_X_H_INCLUDED 3 4 #define MAX_RESOLUTION 4096 5 #define MIN_RESOLUTION 16 6 7 #include <X11/Xlib.h> 8 #include <X11/Xutil.h> 9 10 #define GFX_ADD_PIXEL(G,X,Y,P) G->cbuffer[X+Y*G->xres] = G->cbuffer[X+Y*G->xres]+P>255?255:G->cbuffer[X+Y*G->xres]+P 11 //((int)(P + G->cbuffer[X+Y*G->xres]))&0xff; 12 //#define GFX_ADD_PIXEL(G,X,Y,P) G->cbuffer[X+Y*G->xres]=P; 13 14 #ifdef USE_XSHM_EXT 15 #include <sys/ipc.h> 16 #include <sys/shm.h> 17 #include <X11/extensions/XShm.h> 18 #endif 19 20 /* required for fps details */ 21 #include <sys/time.h> 22 23 typedef struct { 24 Display *dpy; 25 int xres,yres; /* Display resolutions */ 26 XVisualInfo xvs; 27 int rootwin; 28 Window win; 29 GC gc; 30 int renderer; /* if set uses an alternative renderer */ 31 XImage *xim; /* screen / front buffer */ 32 unsigned char *cbuffer; /* char (8bit) back buffer */ 33 unsigned long simple_map[256]; /* A simple colour map. */ 34 unsigned long base_colour; 35 int default_xres, default_yres; 36 int xoff,yoff; /* where to put the image in the window */ 37 #ifdef USE_XSHM_EXT 38 XShmSegmentInfo shminfo; 39 #endif 40 } Gfx; 41 42 int gfx_get_best_truecolor(Gfx *g); 43 int gfx_SetupGfx(Gfx *g); 44 int gfx_getkey(Gfx *g); 45 46 void gfx_create_cmap(Gfx *gf); 47 void gfx_Print_Visual_Info(XVisualInfo *v); 48 void gfx_display_image(Gfx *g); 49 void gfx_cleanup(Gfx *g); 50 //void gfx_add_pixel(Gfx *g, int x, int y, unsigned char pixval); 51 #endif /* BLOBS_GFX_X_H_INCLUDED */ 52 53 void render_blurred_buffer(Gfx *g); 54