diff options
| author | Alexander Orzechowski <[email protected]> | 2022-04-06 07:59:54 -0400 | 
|---|---|---|
| committer | Alexander Orzechowski <[email protected]> | 2022-05-19 14:17:51 -0400 | 
| commit | eaf951ce47014da8bb98a094e52d72fbad09707b (patch) | |
| tree | a50febea8411474b57b3d32ca24175e8b56384d7 | |
| parent | 51f0d56f41a7e2da2d17a545475450eddc6e227f (diff) | |
wlr_scene: Make wlr_scene_render_output private
This function sidesteps damage tracking and output awareness on
buffers/surfaces. This function isn't a great fit for the API.
Let's also inline the function and simplify it.
| -rw-r--r-- | wlr_scene.c | 36 | 
1 files changed, 9 insertions, 27 deletions
diff --git a/wlr_scene.c b/wlr_scene.c index 52d8d00..3de721f 100644 --- a/wlr_scene.c +++ b/wlr_scene.c @@ -945,31 +945,6 @@ static void scene_node_for_each_node(struct wlr_scene_node *node,  	}  } -void wlr_scene_render_output(struct wlr_scene *scene, struct wlr_output *output, -		int lx, int ly, pixman_region32_t *damage) { -	pixman_region32_t full_region; -	pixman_region32_init_rect(&full_region, 0, 0, output->width, output->height); -	if (damage == NULL) { -		damage = &full_region; -	} - -	struct wlr_renderer *renderer = output->renderer; -	assert(renderer); - -	if (output->enabled && pixman_region32_not_empty(damage)) { -		struct render_data data = { -			.output = output, -			.damage = damage, -			.presentation = scene->presentation, -		}; -		scene_node_for_each_node(&scene->node, -lx, -ly, -			render_node_iterator, &data); -		wlr_renderer_scissor(renderer, NULL); -	} - -	pixman_region32_fini(&full_region); -} -  static void scene_handle_presentation_destroy(struct wl_listener *listener,  		void *data) {  	struct wlr_scene *scene = @@ -1254,8 +1229,15 @@ bool wlr_scene_output_commit(struct wlr_scene_output *scene_output) {  		wlr_renderer_clear(renderer, (float[4]){ 0.0, 0.0, 0.0, 1.0 });  	} -	wlr_scene_render_output(scene_output->scene, output, -		scene_output->x, scene_output->y, &damage); +	struct render_data data = { +		.output = output, +		.damage = &damage, +		.presentation = scene_output->scene->presentation, +	}; +	scene_node_for_each_node(&scene_output->scene->node, +		-scene_output->x, -scene_output->y, +		render_node_iterator, &data); +	wlr_renderer_scissor(renderer, NULL);  	wlr_output_render_software_cursors(output, &damage);  	wlr_renderer_end(renderer);  | 
