mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	Add docs and comments
This commit is contained in:
		
							parent
							
								
									0365b587f0
								
							
						
					
					
						commit
						c6aab6f56c
					
				
					 3 changed files with 32 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -5,6 +5,11 @@
 | 
			
		|||
#include <pixman.h>
 | 
			
		||||
#include <wayland-server.h>
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Damage tracking requires to keep track of previous frames' damage. To allow
 | 
			
		||||
 * damage tracking to work with triple buffering, an history of two frames is
 | 
			
		||||
 * required.
 | 
			
		||||
 */
 | 
			
		||||
#define ROOTS_OUTPUT_PREVIOUS_DAMAGE_LEN 2
 | 
			
		||||
 | 
			
		||||
struct roots_desktop;
 | 
			
		||||
| 
						 | 
				
			
			@ -20,6 +25,7 @@ struct roots_output {
 | 
			
		|||
	pixman_region32_t damage;
 | 
			
		||||
	bool frame_pending;
 | 
			
		||||
 | 
			
		||||
	// circular queue for previous damage
 | 
			
		||||
	pixman_region32_t previous_damage[ROOTS_OUTPUT_PREVIOUS_DAMAGE_LEN];
 | 
			
		||||
	size_t previous_damage_idx;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,8 +33,6 @@ struct wlr_output_cursor {
 | 
			
		|||
	struct wl_listener surface_destroy;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define WLR_OUTPUT_PREVIOUS_DAMAGE_COUNT 2
 | 
			
		||||
 | 
			
		||||
struct wlr_output_impl;
 | 
			
		||||
 | 
			
		||||
struct wlr_output {
 | 
			
		||||
| 
						 | 
				
			
			@ -51,21 +49,21 @@ struct wlr_output {
 | 
			
		|||
	char serial[16];
 | 
			
		||||
	int32_t phys_width, phys_height; // mm
 | 
			
		||||
 | 
			
		||||
	// Note: some backends may have zero modes
 | 
			
		||||
	struct wl_list modes;
 | 
			
		||||
	struct wlr_output_mode *current_mode;
 | 
			
		||||
	int32_t width, height;
 | 
			
		||||
	int32_t refresh; // mHz, may be zero
 | 
			
		||||
 | 
			
		||||
	bool enabled;
 | 
			
		||||
	float scale;
 | 
			
		||||
	enum wl_output_subpixel subpixel;
 | 
			
		||||
	enum wl_output_transform transform;
 | 
			
		||||
 | 
			
		||||
	bool needs_swap;
 | 
			
		||||
	pixman_region32_t damage;
 | 
			
		||||
	pixman_region32_t damage; // damage for cursors and fullscreen surface
 | 
			
		||||
	float transform_matrix[16];
 | 
			
		||||
 | 
			
		||||
	// Note: some backends may have zero modes
 | 
			
		||||
	struct wl_list modes;
 | 
			
		||||
	struct wlr_output_mode *current_mode;
 | 
			
		||||
	int32_t width, height;
 | 
			
		||||
	int32_t refresh; // mHz
 | 
			
		||||
 | 
			
		||||
	struct {
 | 
			
		||||
		struct wl_signal frame;
 | 
			
		||||
		struct wl_signal needs_swap;
 | 
			
		||||
| 
						 | 
				
			
			@ -107,16 +105,18 @@ void wlr_output_destroy(struct wlr_output *output);
 | 
			
		|||
void wlr_output_effective_resolution(struct wlr_output *output,
 | 
			
		||||
	int *width, int *height);
 | 
			
		||||
/**
 | 
			
		||||
 * Makes the output GL context current.
 | 
			
		||||
 * Makes the output rendering context current.
 | 
			
		||||
 *
 | 
			
		||||
 * `buffer_age` is set to the drawing buffer age in number of frames or -1 if
 | 
			
		||||
 * unknown.
 | 
			
		||||
 * unknown. This is useful for damage tracking.
 | 
			
		||||
 */
 | 
			
		||||
bool wlr_output_make_current(struct wlr_output *output, int *buffer_age);
 | 
			
		||||
/**
 | 
			
		||||
 * Swaps the output buffers. If the time of the frame isn't known, set `when` to
 | 
			
		||||
 * NULL. If the compositor doesn't support damage tracking, set `damage` to
 | 
			
		||||
 * NULL.
 | 
			
		||||
 *
 | 
			
		||||
 * Swapping buffers schedules a `frame` event.
 | 
			
		||||
 */
 | 
			
		||||
bool wlr_output_swap_buffers(struct wlr_output *output, struct timespec *when,
 | 
			
		||||
	pixman_region32_t *damage);
 | 
			
		||||
| 
						 | 
				
			
			@ -126,6 +126,7 @@ uint32_t wlr_output_get_gamma_size(struct wlr_output *output);
 | 
			
		|||
void wlr_output_set_fullscreen_surface(struct wlr_output *output,
 | 
			
		||||
	struct wlr_surface *surface);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct wlr_output_cursor *wlr_output_cursor_create(struct wlr_output *output);
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the cursor image. The image must be already scaled for the output.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue