mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	output: make wlr_output_enable return a bool
This commit is contained in:
		
							parent
							
								
									769a8e9917
								
							
						
					
					
						commit
						cb293f09e7
					
				
					 5 changed files with 16 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -342,17 +342,17 @@ static void drm_connector_start_renderer(struct wlr_drm_connector *conn) {
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void enable_drm_connector(struct wlr_output *output, bool enable) {
 | 
			
		||||
bool enable_drm_connector(struct wlr_output *output, bool enable) {
 | 
			
		||||
	struct wlr_drm_connector *conn = (struct wlr_drm_connector *)output;
 | 
			
		||||
	if (conn->state != WLR_DRM_CONN_CONNECTED
 | 
			
		||||
			&& conn->state != WLR_DRM_CONN_NEEDS_MODESET) {
 | 
			
		||||
		return;
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	struct wlr_drm_backend *drm = (struct wlr_drm_backend *)output->backend;
 | 
			
		||||
	bool ok = drm->iface->conn_enable(drm, conn, enable);
 | 
			
		||||
	if (!ok) {
 | 
			
		||||
		return;
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (enable) {
 | 
			
		||||
| 
						 | 
				
			
			@ -360,6 +360,7 @@ void enable_drm_connector(struct wlr_output *output, bool enable) {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	wlr_output_update_enabled(&conn->output, enable);
 | 
			
		||||
	return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void realloc_planes(struct wlr_drm_backend *drm, const uint32_t *crtc_in,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -143,6 +143,6 @@ void finish_drm_resources(struct wlr_drm_backend *drm);
 | 
			
		|||
void restore_drm_outputs(struct wlr_drm_backend *drm);
 | 
			
		||||
void scan_drm_connectors(struct wlr_drm_backend *state);
 | 
			
		||||
int handle_drm_event(int fd, uint32_t mask, void *data);
 | 
			
		||||
void enable_drm_connector(struct wlr_output *output, bool enable);
 | 
			
		||||
bool enable_drm_connector(struct wlr_output *output, bool enable);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@
 | 
			
		|||
#include <wlr/types/wlr_output.h>
 | 
			
		||||
 | 
			
		||||
struct wlr_output_impl {
 | 
			
		||||
	void (*enable)(struct wlr_output *output, bool enable);
 | 
			
		||||
	bool (*enable)(struct wlr_output *output, bool enable);
 | 
			
		||||
	bool (*set_mode)(struct wlr_output *output, struct wlr_output_mode *mode);
 | 
			
		||||
	bool (*set_custom_mode)(struct wlr_output *output, int32_t width,
 | 
			
		||||
		int32_t height, int32_t refresh);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -124,11 +124,15 @@ struct wlr_output_event_swap_buffers {
 | 
			
		|||
 | 
			
		||||
struct wlr_surface;
 | 
			
		||||
 | 
			
		||||
void wlr_output_enable(struct wlr_output *output, bool enable);
 | 
			
		||||
/**
 | 
			
		||||
 * Enables or disables the output. A disabled output is turned off and doesn't
 | 
			
		||||
 * emit `frame` events.
 | 
			
		||||
 */
 | 
			
		||||
bool wlr_output_enable(struct wlr_output *output, bool enable);
 | 
			
		||||
void wlr_output_create_global(struct wlr_output *output);
 | 
			
		||||
void wlr_output_destroy_global(struct wlr_output *output);
 | 
			
		||||
/**
 | 
			
		||||
 * Sets the output mode.
 | 
			
		||||
 * Sets the output mode. Enables the output if it's currently disabled.
 | 
			
		||||
 */
 | 
			
		||||
bool wlr_output_set_mode(struct wlr_output *output,
 | 
			
		||||
	struct wlr_output_mode *mode);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -142,14 +142,15 @@ static void output_update_matrix(struct wlr_output *output) {
 | 
			
		|||
		output->height, output->transform);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wlr_output_enable(struct wlr_output *output, bool enable) {
 | 
			
		||||
bool wlr_output_enable(struct wlr_output *output, bool enable) {
 | 
			
		||||
	if (output->enabled == enable) {
 | 
			
		||||
		return;
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (output->impl->enable) {
 | 
			
		||||
		output->impl->enable(output, enable);
 | 
			
		||||
		return output->impl->enable(output, enable);
 | 
			
		||||
	}
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool wlr_output_set_mode(struct wlr_output *output,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue