compositor: Scanout client buffers even if they're not map_fullscreen

dev
Kristian Høgsberg 14 years ago
parent 7981d00a59
commit 4d07a1c213
  1. 4
      compositor/compositor-drm.c
  2. 22
      compositor/compositor.c

@ -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…
Cancel
Save