mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-06-18 22:28:31 +02:00
gl: Cleanup selection of multisampling mode
Fold the choice of multisampling mode into the cairo_gl_composite_t structure itself. This makes it more similar to other settings.
This commit is contained in:
parent
7d02e2d62d
commit
21db1c9910
3 changed files with 22 additions and 21 deletions
|
|
@ -108,6 +108,12 @@ _cairo_gl_composite_set_spans (cairo_gl_composite_t *setup)
|
|||
setup->spans = TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
_cairo_gl_composite_set_multisample (cairo_gl_composite_t *setup)
|
||||
{
|
||||
setup->multisample = TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
_cairo_gl_composite_set_clip_region (cairo_gl_composite_t *setup,
|
||||
cairo_region_t *clip_region)
|
||||
|
|
@ -623,9 +629,8 @@ _cairo_gl_composite_setup_clipping (cairo_gl_composite_t *setup,
|
|||
}
|
||||
|
||||
cairo_status_t
|
||||
_cairo_gl_composite_begin_multisample (cairo_gl_composite_t *setup,
|
||||
cairo_gl_context_t **ctx_out,
|
||||
cairo_bool_t multisampling)
|
||||
_cairo_gl_composite_begin (cairo_gl_composite_t *setup,
|
||||
cairo_gl_context_t **ctx_out)
|
||||
{
|
||||
unsigned int dst_size, src_size, mask_size, vertex_size;
|
||||
cairo_gl_context_t *ctx;
|
||||
|
|
@ -639,7 +644,7 @@ _cairo_gl_composite_begin_multisample (cairo_gl_composite_t *setup,
|
|||
if (unlikely (status))
|
||||
return status;
|
||||
|
||||
_cairo_gl_context_set_destination (ctx, setup->dst, multisampling);
|
||||
_cairo_gl_context_set_destination (ctx, setup->dst, setup->multisample);
|
||||
|
||||
glEnable (GL_BLEND);
|
||||
|
||||
|
|
@ -716,13 +721,6 @@ FAIL:
|
|||
return status;
|
||||
}
|
||||
|
||||
cairo_status_t
|
||||
_cairo_gl_composite_begin (cairo_gl_composite_t *setup,
|
||||
cairo_gl_context_t **ctx_out)
|
||||
{
|
||||
return _cairo_gl_composite_begin_multisample (setup, ctx_out, FALSE);
|
||||
}
|
||||
|
||||
static inline void
|
||||
_cairo_gl_composite_draw_tristrip (cairo_gl_context_t *ctx)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -371,7 +371,9 @@ _cairo_gl_msaa_compositor_mask (const cairo_compositor_t *compositor,
|
|||
|
||||
/* We always use multisampling here, because we do not yet have the smarts
|
||||
to calculate when the clip or the source requires it. */
|
||||
status = _cairo_gl_composite_begin_multisample (&setup, &ctx, TRUE);
|
||||
_cairo_gl_composite_set_multisample (&setup);
|
||||
|
||||
status = _cairo_gl_composite_begin (&setup, &ctx);
|
||||
if (unlikely (status))
|
||||
goto finish;
|
||||
|
||||
|
|
@ -539,9 +541,10 @@ _cairo_gl_msaa_compositor_stroke (const cairo_compositor_t *compositor,
|
|||
goto finish;
|
||||
|
||||
_cairo_gl_msaa_compositor_set_clip (composite, &info.setup);
|
||||
if (antialias != CAIRO_ANTIALIAS_NONE)
|
||||
_cairo_gl_composite_set_multisample (&info.setup);
|
||||
|
||||
status = _cairo_gl_composite_begin_multisample (&info.setup, &info.ctx,
|
||||
antialias != CAIRO_ANTIALIAS_NONE);
|
||||
status = _cairo_gl_composite_begin (&info.setup, &info.ctx);
|
||||
if (unlikely (status))
|
||||
goto finish;
|
||||
|
||||
|
|
@ -628,9 +631,10 @@ _cairo_gl_msaa_compositor_fill (const cairo_compositor_t *compositor,
|
|||
goto cleanup_setup;
|
||||
|
||||
_cairo_gl_msaa_compositor_set_clip (composite, &setup);
|
||||
if (antialias != CAIRO_ANTIALIAS_NONE)
|
||||
_cairo_gl_composite_set_multisample (&setup);
|
||||
|
||||
status = _cairo_gl_composite_begin_multisample (&setup, &ctx,
|
||||
antialias != CAIRO_ANTIALIAS_NONE);
|
||||
status = _cairo_gl_composite_begin (&setup, &ctx);
|
||||
if (unlikely (status))
|
||||
goto cleanup_setup;
|
||||
|
||||
|
|
|
|||
|
|
@ -372,6 +372,7 @@ typedef struct _cairo_gl_composite {
|
|||
cairo_bool_t spans;
|
||||
|
||||
cairo_clip_t *clip;
|
||||
cairo_bool_t multisample;
|
||||
} cairo_gl_composite_t;
|
||||
|
||||
typedef struct _cairo_gl_font {
|
||||
|
|
@ -531,15 +532,13 @@ _cairo_gl_composite_set_mask_operand (cairo_gl_composite_t *setup,
|
|||
cairo_private void
|
||||
_cairo_gl_composite_set_spans (cairo_gl_composite_t *setup);
|
||||
|
||||
cairo_private void
|
||||
_cairo_gl_composite_set_multisample (cairo_gl_composite_t *setup);
|
||||
|
||||
cairo_private cairo_status_t
|
||||
_cairo_gl_composite_begin (cairo_gl_composite_t *setup,
|
||||
cairo_gl_context_t **ctx);
|
||||
|
||||
cairo_private cairo_status_t
|
||||
_cairo_gl_composite_begin_multisample (cairo_gl_composite_t *setup,
|
||||
cairo_gl_context_t **ctx_out,
|
||||
cairo_bool_t multisampling);
|
||||
|
||||
cairo_private void
|
||||
_cairo_gl_composite_emit_rect (cairo_gl_context_t *ctx,
|
||||
GLfloat x1,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue