mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
render: dogfood the clear buffer option
This commit is contained in:
parent
534266b3f8
commit
4cef4e0e56
10 changed files with 35 additions and 49 deletions
|
|
@ -92,16 +92,14 @@ static void output_handle_frame(struct wl_listener *listener, void *data) {
|
||||||
struct wlr_output_state state;
|
struct wlr_output_state state;
|
||||||
wlr_output_state_init(&state);
|
wlr_output_state_init(&state);
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &state, NULL,
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &state, NULL,
|
||||||
NULL);
|
&(struct wlr_buffer_pass_options){
|
||||||
|
.clear_buffer = true,
|
||||||
|
.clear_color = { 0.3, 0.3, 0.3, 1.0 },
|
||||||
|
});
|
||||||
if (pass == NULL) {
|
if (pass == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
|
||||||
.color = { 0.3, 0.3, 0.3, 1.0 },
|
|
||||||
.box = { .width = width, .height = height },
|
|
||||||
});
|
|
||||||
|
|
||||||
if (output->surface != NULL) {
|
if (output->surface != NULL) {
|
||||||
struct render_data rdata = {
|
struct render_data rdata = {
|
||||||
.output = output->wlr_output,
|
.output = output->wlr_output,
|
||||||
|
|
|
||||||
|
|
@ -96,11 +96,9 @@ static void output_handle_frame(struct wl_listener *listener, void *data) {
|
||||||
wlr_output_effective_resolution(output->wlr_output, &width, &height);
|
wlr_output_effective_resolution(output->wlr_output, &width, &height);
|
||||||
|
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &output_state,
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(output->wlr_output, &output_state,
|
||||||
NULL, NULL);
|
NULL, &(struct wlr_buffer_pass_options){
|
||||||
|
.clear_buffer = true,
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
.clear_color = { 0.3, 0.3, 0.3, 1 },
|
||||||
.box = { .width = width, .height = height },
|
|
||||||
.color = { 0.3, 0.3, 0.3, 1 },
|
|
||||||
});
|
});
|
||||||
|
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
|
|
||||||
|
|
@ -115,11 +115,10 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
struct wlr_output_state output_state;
|
struct wlr_output_state output_state;
|
||||||
wlr_output_state_init(&output_state);
|
wlr_output_state_init(&output_state);
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL);
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL,
|
||||||
|
&(struct wlr_buffer_pass_options){
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
.clear_buffer = true,
|
||||||
.box = { .width = wlr_output->width, .height = wlr_output->height },
|
.clear_color = { 0.25, 0.25, 0.25, 1 },
|
||||||
.color = { 0.25, 0.25, 0.25, 1 },
|
|
||||||
});
|
});
|
||||||
|
|
||||||
animate_cat(sample, output->output);
|
animate_cat(sample, output->output);
|
||||||
|
|
|
||||||
|
|
@ -102,10 +102,9 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
struct wlr_output_state output_state;
|
struct wlr_output_state output_state;
|
||||||
wlr_output_state_init(&output_state);
|
wlr_output_state_init(&output_state);
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL);
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, &(struct wlr_buffer_pass_options){
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
.clear_buffer = true,
|
||||||
.box = { .width = wlr_output->width, .height = wlr_output->height },
|
.clear_color = {
|
||||||
.color = {
|
|
||||||
state->clear_color[0],
|
state->clear_color[0],
|
||||||
state->clear_color[1],
|
state->clear_color[1],
|
||||||
state->clear_color[2],
|
state->clear_color[2],
|
||||||
|
|
|
||||||
|
|
@ -60,11 +60,10 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
struct wlr_output_state output_state;
|
struct wlr_output_state output_state;
|
||||||
wlr_output_state_init(&output_state);
|
wlr_output_state_init(&output_state);
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL);
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL,
|
||||||
|
&(struct wlr_buffer_pass_options){
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
.clear_buffer = true,
|
||||||
.box = { .width = wlr_output->width, .height = wlr_output->height },
|
.clear_color = { 0.25, 0.25, 0.25, 1 },
|
||||||
.color = { 0.25, 0.25, 0.25, 1 },
|
|
||||||
});
|
});
|
||||||
|
|
||||||
for (int y = -128 + (int)sample_output->y_offs; y < height; y += 128) {
|
for (int y = -128 + (int)sample_output->y_offs; y < height; y += 128) {
|
||||||
|
|
|
||||||
|
|
@ -64,10 +64,9 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
struct wlr_output_state state;
|
struct wlr_output_state state;
|
||||||
wlr_output_state_init(&state);
|
wlr_output_state_init(&state);
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &state, NULL, NULL);
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &state, NULL, &(struct wlr_buffer_pass_options){
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
.clear_buffer = true,
|
||||||
.box = { .width = wlr_output->width, .height = wlr_output->height },
|
.clear_color = {
|
||||||
.color = {
|
|
||||||
.r = sample->color[0],
|
.r = sample->color[0],
|
||||||
.g = sample->color[1],
|
.g = sample->color[1],
|
||||||
.b = sample->color[2],
|
.b = sample->color[2],
|
||||||
|
|
|
||||||
|
|
@ -88,11 +88,10 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
struct wlr_output_state output_state;
|
struct wlr_output_state output_state;
|
||||||
wlr_output_state_init(&output_state);
|
wlr_output_state_init(&output_state);
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL);
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL,
|
||||||
|
&(struct wlr_buffer_pass_options){
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
.clear_buffer = true,
|
||||||
.box = { .width = wlr_output->width, .height = wlr_output->height },
|
.clear_color = { 0.25, 0.25, 0.25, 1 },
|
||||||
.color = { 0.25, 0.25, 0.25, 1 },
|
|
||||||
});
|
});
|
||||||
|
|
||||||
float distance = 0.8f * (1 - sample->distance);
|
float distance = 0.8f * (1 - sample->distance);
|
||||||
|
|
|
||||||
|
|
@ -77,10 +77,10 @@ static void output_frame_notify(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
struct wlr_output_state output_state;
|
struct wlr_output_state output_state;
|
||||||
wlr_output_state_init(&output_state);
|
wlr_output_state_init(&output_state);
|
||||||
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL, NULL);
|
struct wlr_render_pass *pass = wlr_output_begin_render_pass(wlr_output, &output_state, NULL,
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
&(struct wlr_buffer_pass_options){
|
||||||
.box = { .width = width, .height = height },
|
.clear_buffer = true,
|
||||||
.color = { 0.25, 0.25, 0.25, 1 },
|
.clear_color = { 0.25, 0.25, 0.25, 1 },
|
||||||
});
|
});
|
||||||
|
|
||||||
struct touch_point *p;
|
struct touch_point *p;
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,9 @@ static struct wlr_buffer *render_cursor_buffer(struct wlr_output_cursor *cursor)
|
||||||
wlr_box_transform(&dst_box, &dst_box, wlr_output_transform_invert(output->transform),
|
wlr_box_transform(&dst_box, &dst_box, wlr_output_transform_invert(output->transform),
|
||||||
buffer->width, buffer->height);
|
buffer->width, buffer->height);
|
||||||
|
|
||||||
struct wlr_render_pass *pass = wlr_renderer_begin_buffer_pass(renderer, buffer, NULL);
|
struct wlr_render_pass *pass = wlr_renderer_begin_buffer_pass(renderer, buffer, &(struct wlr_buffer_pass_options){
|
||||||
|
.clear_buffer = true,
|
||||||
|
});
|
||||||
if (pass == NULL) {
|
if (pass == NULL) {
|
||||||
wlr_buffer_unlock(buffer);
|
wlr_buffer_unlock(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -240,10 +242,6 @@ static struct wlr_buffer *render_cursor_buffer(struct wlr_output_cursor *cursor)
|
||||||
enum wl_output_transform transform = wlr_output_transform_invert(cursor->transform);
|
enum wl_output_transform transform = wlr_output_transform_invert(cursor->transform);
|
||||||
transform = wlr_output_transform_compose(transform, output->transform);
|
transform = wlr_output_transform_compose(transform, output->transform);
|
||||||
|
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
|
||||||
.box = { .width = buffer->width, .height = buffer->height },
|
|
||||||
.blend_mode = WLR_RENDER_BLEND_MODE_NONE,
|
|
||||||
});
|
|
||||||
wlr_render_pass_add_texture(pass, &(struct wlr_render_texture_options){
|
wlr_render_pass_add_texture(pass, &(struct wlr_render_texture_options){
|
||||||
.texture = texture,
|
.texture = texture,
|
||||||
.src_box = cursor->src_box,
|
.src_box = cursor->src_box,
|
||||||
|
|
|
||||||
|
|
@ -61,17 +61,14 @@ static struct wlr_buffer *output_acquire_empty_buffer(struct wlr_output *output,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct wlr_render_pass *pass =
|
struct wlr_render_pass *pass =
|
||||||
wlr_renderer_begin_buffer_pass(output->renderer, buffer, NULL);
|
wlr_renderer_begin_buffer_pass(output->renderer, buffer, &(struct wlr_buffer_pass_options){
|
||||||
|
.clear_buffer = true,
|
||||||
|
});
|
||||||
if (pass == NULL) {
|
if (pass == NULL) {
|
||||||
wlr_buffer_unlock(buffer);
|
wlr_buffer_unlock(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
wlr_render_pass_add_rect(pass, &(struct wlr_render_rect_options){
|
|
||||||
.color = { 0, 0, 0, 0 },
|
|
||||||
.blend_mode = WLR_RENDER_BLEND_MODE_NONE,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!wlr_render_pass_submit(pass)) {
|
if (!wlr_render_pass_submit(pass)) {
|
||||||
wlr_buffer_unlock(buffer);
|
wlr_buffer_unlock(buffer);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue