diff options
Diffstat (limited to 'xorg-server/glamor/glamor_copyarea.c')
-rw-r--r-- | xorg-server/glamor/glamor_copyarea.c | 18 |
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(®ion); } 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(®ion); + fail_noregion: + glamor_make_current(glamor_priv); glamor_set_alu(screen, GXcopy); - glamor_put_context(glamor_priv); if (ok) return TRUE; |