continued, distinction of Draw and DDC is bad, needs to be merged
This commit is contained in:
		
							
								
								
									
										17
									
								
								draw.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								draw.c
									
									
									
									
									
								
							| @@ -5,12 +5,16 @@ | ||||
| #include "draw.h" | ||||
|  | ||||
| Draw * | ||||
| draw_create(Display *dpy, Window win, unsigned int w, unsigned int h) { | ||||
| draw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h) { | ||||
| 	Draw *draw = (Draw *)calloc(1, sizeof(Draw)); | ||||
| 	draw->dpy = dpy; | ||||
| 	draw->screen = screen; | ||||
| 	draw->win = win; | ||||
| 	draw->w = w; | ||||
| 	draw->h = h; | ||||
| 	/* TODO: drawable creation */ | ||||
| 	/* TODO: gc allocation */ | ||||
| 	draw->drawable = XCreatePixmap(dpy, win, w, h, DefaultDepth(dpy, screen)); | ||||
| 	draw->gc = XCreateGC(dpy, win, 0, NULL); | ||||
| 	XSetLineAttributes(dpy, draw->gc, 1, LineSolid, CapButt, JoinMiter); | ||||
| 	return draw; | ||||
| } | ||||
|  | ||||
| @@ -20,13 +24,14 @@ draw_resize(Draw *draw, unsigned int w, unsigned int h) { | ||||
| 		return; | ||||
| 	draw->w = w; | ||||
| 	draw->h = h; | ||||
| 	/* TODO: resize drawable */ | ||||
| 	XFreePixmap(draw->dpy, draw->drawable); | ||||
| 	draw->drawable = XCreatePixmap(draw->dpy, draw->win, w, h, DefaultDepth(draw->dpy, draw->screen)); | ||||
| } | ||||
|  | ||||
| void | ||||
| draw_free(Draw *draw) { | ||||
| 	/* TODO: deallocate DDCs */ | ||||
| 	/* TODO: deallocate drawable */ | ||||
| 	XFreePixmap(draw->dpy, draw->drawable); | ||||
| 	XFreeGC(draw->dpy, draw->gc); | ||||
| 	free(draw); | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								draw.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								draw.h
									
									
									
									
									
								
							| @@ -7,6 +7,8 @@ typedef struct _XDraw Draw; | ||||
| struct _XDraw { | ||||
| 	unsigned int w, h; | ||||
| 	Display *dpy; | ||||
| 	int screen; | ||||
| 	Window win; | ||||
| 	Drawable drawable; | ||||
| 	GC gc; | ||||
| 	DDC *dc; | ||||
| @@ -46,7 +48,7 @@ typedef struct { | ||||
| } TextExtents; | ||||
|  | ||||
| /* Drawable abstraction */ | ||||
| Draw *draw_create(Display *dpy, Window win, unsigned int w, unsigned int h); | ||||
| Draw *draw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h); | ||||
| void draw_resize(Draw *draw, unsigned int w, unsigned int h); | ||||
| void draw_free(Draw *draw); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user