boxes, attractors and everything

This commit is contained in:
Florian Stecker
2018-08-17 15:41:17 +02:00
parent 09a43c7ac3
commit c3deff6d64
3 changed files with 391 additions and 277 deletions

View File

@@ -13,27 +13,37 @@
#include <cairo-xlib.h>
typedef struct {
cairo_t *cairo;
cairo_matrix_t matrix;
unsigned int width;
unsigned int height;
// these things will be written by updateDimensions()
double scalefactor;
double center_x;
double center_y;
double radius;
} DrawingContext;
typedef struct {
DrawingContext *context;
Display *display;
Window win;
Colormap cmap;
Atom wm_protocols;
Atom wm_delete_window;
cairo_surface_t *sfc;
cairo_t *ctx;
cairo_surface_t *surface;
struct timeval start_time;
unsigned long frames;
double elapsed, frametime;
unsigned int width;
unsigned int height;
cairo_matrix_t matrix;
double scalefactor;
} GraphicsInfo;
int initCairo(int screen, int mask, int width, int height, const char *name, GraphicsInfo *info);
GraphicsInfo *initCairo(int screen, int mask, int width, int height, const char *name);
void destroyCairo(GraphicsInfo *info);
void startTimer(GraphicsInfo *info);
void waitUpdateTimer(GraphicsInfo *info);
int checkEvents(GraphicsInfo *info, int (*process)(GraphicsInfo*, XEvent*, void*), void (*draw)(cairo_t *, void*), void *data);
int checkEvents(GraphicsInfo *info, int (*process)(GraphicsInfo*, XEvent*), void (*draw)(DrawingContext *));
void updateDimensions(DrawingContext *ctx);
#endif