mirror of
				https://github.com/labwc/labwc.git
				synced 2025-11-03 09:01:51 -05:00 
			
		
		
		
	scaled_{img,scene}_buffer: add architecture graph
This commit is contained in:
		
							parent
							
								
									5d287ebda4
								
							
						
					
					
						commit
						b58f8dab21
					
				
					 2 changed files with 63 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -18,6 +18,43 @@ struct scaled_img_buffer {
 | 
			
		|||
	int padding;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *                                                 |                 |
 | 
			
		||||
 *                                       .------------------.  .------------.
 | 
			
		||||
 *                   scaled_img_buffer   | new_output_scale |  | set_buffer |
 | 
			
		||||
 *                     architecture      ´------------------`  ´------------`
 | 
			
		||||
 *                                                 |                ^
 | 
			
		||||
 *                .--------------------------------|----------------|-------------.
 | 
			
		||||
 *                |                                v                |             |
 | 
			
		||||
 *                |  .-------------------.    .-------------------------.         |
 | 
			
		||||
 *                |  | scaled_img_buffer |----| wlr_buffer LRU cache(2) |<----,   |
 | 
			
		||||
 *                |  ´-------------------`    ´-------------------------`     |   |
 | 
			
		||||
 *                |            |                           |                  |   |
 | 
			
		||||
 *                |            |               .--------------------------.   |   |
 | 
			
		||||
 *                |            |               | wlr_buffer LRU cache of  |   |   |
 | 
			
		||||
 *   .-------.    |            |               | other scaled_img_buffers |   |   |
 | 
			
		||||
 *   | theme |    |            |               |   with lab_img_equal()   |   |   |
 | 
			
		||||
 *   ´-------`    |            |               ´--------------------------`   |   |
 | 
			
		||||
 *       |        |            |                  /              |            |   |
 | 
			
		||||
 *       |        |            |             not found         found          |   |
 | 
			
		||||
 *  .---------.   |        .---------.     .----------.    .------------.     |   |
 | 
			
		||||
 *  | lab_img |-img_copy-->| lab_img |-----| render() |--->| wlr_buffer |-----`   |
 | 
			
		||||
 *  ´---------`   |        ´---------`     ´----------`    ´------------`         |
 | 
			
		||||
 *           \    |           /                                                   |
 | 
			
		||||
 *            \   ´----------/----------------------------------------------------`
 | 
			
		||||
 *             \            /
 | 
			
		||||
 *           .----------------.                       lab_img provides:
 | 
			
		||||
 *           |  lab_img_data  |                       - render function
 | 
			
		||||
 *           |   refcount=2   |                       - list of modification functions
 | 
			
		||||
 *           |                `-----------------.       to apply on top of lib_img_data
 | 
			
		||||
 *           |                                  |       when rendering
 | 
			
		||||
 *           | provides (depending on backend): |     - lab_img_equal() comparing the
 | 
			
		||||
 *           | - librsvg handle                 |       lab_img_data reference and
 | 
			
		||||
 *           | - cairo surface                  |       modification function pointers
 | 
			
		||||
 *           ´----------------------------------`       of two given lab_img instances
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Create an auto scaling image buffer, providing a wlr_scene_buffer node for
 | 
			
		||||
 * display. It gets destroyed automatically when the backing scaled_scene_buffer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,6 +45,32 @@ struct scaled_scene_buffer {
 | 
			
		|||
	struct wl_list link; /* struct scaled_scene_buffer.cached_buffers */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 *                                  |                 |
 | 
			
		||||
 *                        .------------------.  .------------.
 | 
			
		||||
 *       scaled_buffer    | new_output_scale |  | set_buffer |
 | 
			
		||||
 *       architecture     ´------------------`  ´------------`
 | 
			
		||||
 *                                  |                ^
 | 
			
		||||
 *    .-----------------------------|----------------|-----------.
 | 
			
		||||
 *    |                             v                |           |
 | 
			
		||||
 *    |  .---------------.    .-------------------------.        |
 | 
			
		||||
 *    |  | scaled_buffer |----| wlr_buffer LRU cache(2) |<---,   |
 | 
			
		||||
 *    |  ´---------------`    ´-------------------------`    |   |
 | 
			
		||||
 *    |           |                       |                  |   |
 | 
			
		||||
 *    |        .------.       .--------------------------.   |   |
 | 
			
		||||
 *    |        | impl |       | wlr_buffer LRU cache of  |   |   |
 | 
			
		||||
 *    |        ´------`       |   other scaled_buffers   |   |   |
 | 
			
		||||
 *    |                       |   with impl->equal()     |   |   |
 | 
			
		||||
 *    |                       ´--------------------------`   |   |
 | 
			
		||||
 *    |                          /              |            |   |
 | 
			
		||||
 *    |                   not found           found          |   |
 | 
			
		||||
 *    |     .-----------------------.     .-----------.      |   |
 | 
			
		||||
 *    |     | impl->create_buffer() |--->| wlr_buffer |------`   |
 | 
			
		||||
 *    |     ´-----------------------`    ´------------`          |
 | 
			
		||||
 *    |                                                          |
 | 
			
		||||
 *    ´----------------------------------------------------------`
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Create an auto scaling buffer that creates a wlr_scene_buffer
 | 
			
		||||
 * and subscribes to its output_enter and output_leave signals.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue