aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/glamor/glamor_copyarea.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/glamor/glamor_copyarea.c')
-rw-r--r--xorg-server/glamor/glamor_copyarea.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/xorg-server/glamor/glamor_copyarea.c b/xorg-server/glamor/glamor_copyarea.c
index 996611c6c..e1988225f 100644
--- a/xorg-server/glamor/glamor_copyarea.c
+++ b/xorg-server/glamor/glamor_copyarea.c
@@ -70,7 +70,7 @@ glamor_copy_n_to_n_fbo_blit(DrawablePtr src,
pixmap_priv_get_fbo_off(dst_pixmap_priv, &fbo_x_off, &fbo_y_off);
pixmap_priv_get_fbo_off(src_pixmap_priv, &src_fbo_x_off, &src_fbo_y_off);
- glamor_get_context(glamor_priv);
+ glamor_make_current(glamor_priv);
glBindFramebuffer(GL_READ_FRAMEBUFFER_EXT, src_pixmap_priv->base.fbo->fb);
glamor_get_drawable_deltas(dst, dst_pixmap, &dst_x_off, &dst_y_off);
glamor_get_drawable_deltas(src, src_pixmap, &src_x_off, &src_y_off);
@@ -112,7 +112,6 @@ glamor_copy_n_to_n_fbo_blit(DrawablePtr src,
GL_COLOR_BUFFER_BIT, GL_NEAREST);
}
}
- glamor_put_context(glamor_priv);
glamor_priv->state = BLIT_STATE;
return TRUE;
}
@@ -155,7 +154,7 @@ glamor_copy_n_to_n_textured(DrawablePtr src,
glamor_get_drawable_deltas(dst, dst_pixmap, &dst_x_off, &dst_y_off);
- glamor_get_context(glamor_priv);
+ glamor_make_current(glamor_priv);
glamor_set_destination_pixmap_priv_nc(dst_pixmap_priv);
glVertexAttribPointer(GLAMOR_VERTEX_POS, 2, GL_FLOAT,
@@ -206,7 +205,6 @@ glamor_copy_n_to_n_textured(DrawablePtr src,
glDisableVertexAttribArray(GLAMOR_VERTEX_POS);
glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE);
/* The source texture is bound to a fbo, we have to flush it here. */
- glamor_put_context(glamor_priv);
glamor_priv->state = RENDER_STATE;
glamor_priv->render_idle_cnt = 0;
return TRUE;
@@ -367,12 +365,10 @@ _glamor_copy_n_to_n(DrawablePtr src,
if (gc) {
if (!glamor_set_planemask(dst_pixmap, gc->planemask))
goto fall_back;
- glamor_get_context(glamor_priv);
+ glamor_make_current(glamor_priv);
if (!glamor_set_alu(screen, gc->alu)) {
- glamor_put_context(glamor_priv);
- goto fail;
+ goto fail_noregion;
}
- glamor_put_context(glamor_priv);
}
if (!src_pixmap_priv) {
@@ -537,7 +533,6 @@ _glamor_copy_n_to_n(DrawablePtr src,
if (n_dst_region == 0)
ok = TRUE;
free(clipped_dst_regions);
- RegionUninit(&region);
}
else {
ok = __glamor_copy_n_to_n(src, dst, gc, box, nbox, dx, dy,
@@ -545,9 +540,10 @@ _glamor_copy_n_to_n(DrawablePtr src,
}
fail:
- glamor_get_context(glamor_priv);
+ RegionUninit(&region);
+ fail_noregion:
+ glamor_make_current(glamor_priv);
glamor_set_alu(screen, GXcopy);
- glamor_put_context(glamor_priv);
if (ok)
return TRUE;