compositor: Scanout client buffers even if they're not map_fullscreen
This commit is contained in:
parent
7981d00a59
commit
4d07a1c213
@ -144,7 +144,9 @@ drm_output_prepare_scanout_surface(struct wlsc_output *output_base,
|
||||
int ret;
|
||||
uint32_t fb_id = 0;
|
||||
|
||||
if (es->width != output->base.width ||
|
||||
if (es->x != output->base.x ||
|
||||
es->y != output->base.y ||
|
||||
es->width != output->base.width ||
|
||||
es->height != output->base.height ||
|
||||
es->image == EGL_NO_IMAGE_KHR)
|
||||
return -1;
|
||||
|
@ -703,19 +703,19 @@ wlsc_output_repaint(struct wlsc_output *output)
|
||||
using_hardware_cursor = 0;
|
||||
|
||||
es = container_of(ec->surface_list.next, struct wlsc_surface, link);
|
||||
if (es->fullscreen_output == output) {
|
||||
if (es->visual == &ec->compositor.rgb_visual &&
|
||||
using_hardware_cursor) {
|
||||
if (output->prepare_scanout_surface(output, es) == 0) {
|
||||
/* We're drawing nothing now,
|
||||
* draw the damaged regions later. */
|
||||
pixman_region32_union(&ec->damage_region,
|
||||
&ec->damage_region,
|
||||
&total_damage);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (es->visual == &ec->compositor.rgb_visual && using_hardware_cursor) {
|
||||
if (output->prepare_scanout_surface(output, es) == 0) {
|
||||
/* We're drawing nothing now,
|
||||
* draw the damaged regions later. */
|
||||
pixman_region32_union(&ec->damage_region,
|
||||
&ec->damage_region,
|
||||
&total_damage);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (es->fullscreen_output == output) {
|
||||
if (es->width < output->width ||
|
||||
es->height < output->height)
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
Loading…
x
Reference in New Issue
Block a user