*The Cheat makes some The Cheat noises*
This commit is contained in:
		
							parent
							
								
									853ba89db0
								
							
						
					
					
						commit
						1dc9a1c90d
					
				
					 2 changed files with 29 additions and 0 deletions
				
			
		|  | @ -20,10 +20,16 @@ hexagram_window *hexagram_window_new_x11(const char *display, | ||||||
| 
 | 
 | ||||||
| void hexagram_window_destroy(hexagram_window *window); | void hexagram_window_destroy(hexagram_window *window); | ||||||
| 
 | 
 | ||||||
|  | Display *hexagram_window_get_display(hexagram_window *window); | ||||||
|  | 
 | ||||||
| int hexagram_window_get_display_fd(hexagram_window *window); | int hexagram_window_get_display_fd(hexagram_window *window); | ||||||
| 
 | 
 | ||||||
| int hexagram_window_show(hexagram_window *window); | int hexagram_window_show(hexagram_window *window); | ||||||
| 
 | 
 | ||||||
|  | int hexagram_window_repaint_bg(hexagram_window *window); | ||||||
|  | 
 | ||||||
|  | int hexagram_window_swap_buffer(hexagram_window *window); | ||||||
|  | 
 | ||||||
| cairo_t *hexagram_window_create_bg_context(hexagram_window *window); | cairo_t *hexagram_window_create_bg_context(hexagram_window *window); | ||||||
| 
 | 
 | ||||||
| cairo_t *hexagram_window_create_fg_context(hexagram_window *window); | cairo_t *hexagram_window_create_fg_context(hexagram_window *window); | ||||||
|  |  | ||||||
							
								
								
									
										23
									
								
								src/window.c
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								src/window.c
									
										
									
									
									
								
							|  | @ -1,3 +1,4 @@ | ||||||
|  | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| 
 | 
 | ||||||
| #include <X11/Xlib.h> | #include <X11/Xlib.h> | ||||||
|  | @ -165,6 +166,14 @@ void hexagram_window_destroy(hexagram_window *window) { | ||||||
|     (void)XDestroyWindow(window->display, window->win); |     (void)XDestroyWindow(window->display, window->win); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | Display *hexagram_window_get_display(hexagram_window *window) { | ||||||
|  |     return window->display; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int hexagram_window_get_display_fd(hexagram_window *window) { | ||||||
|  |     return ConnectionNumber(window->display); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| int hexagram_window_show(hexagram_window *window) { | int hexagram_window_show(hexagram_window *window) { | ||||||
|     if (XSelectInput(window->display, window->win, |     if (XSelectInput(window->display, window->win, | ||||||
|             ExposureMask | ButtonPressMask | KeyPressMask) == 0) { |             ExposureMask | ButtonPressMask | KeyPressMask) == 0) { | ||||||
|  | @ -181,6 +190,20 @@ error_x: | ||||||
|     return -1; |     return -1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | int hexagram_window_repaint_bg(hexagram_window *window) { | ||||||
|  |     return XCopyArea(window->display, | ||||||
|  |                      window->bg, | ||||||
|  |                      window->buf, | ||||||
|  |                      window->gc, | ||||||
|  |                      0, 0, | ||||||
|  |                      window->width, window->height, | ||||||
|  |                      0, 0) == 0? -1: 1; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int hexagram_window_swap_buffer(hexagram_window *window) { | ||||||
|  |     return XdbeSwapBuffers(window->display, &window->swapinfo, 1) == 0? -1: 1; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| cairo_t *hexagram_window_create_bg_context(hexagram_window *window) { | cairo_t *hexagram_window_create_bg_context(hexagram_window *window) { | ||||||
|     return cairo_create(window->surface_bg); |     return cairo_create(window->surface_bg); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue