continued, distinction of Draw and DDC is bad, needs to be merged
This commit is contained in:
		
							parent
							
								
									3aabc08ede
								
							
						
					
					
						commit
						0a673ad7a3
					
				
					 2 changed files with 14 additions and 7 deletions
				
			
		
							
								
								
									
										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);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue