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

This commit is contained in:
Kristian Høgsberg 2011-05-06 14:03:12 -04:00
parent 7981d00a59
commit 4d07a1c213
2 changed files with 15 additions and 13 deletions

View File

@ -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;

View File

@ -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);