diff options
author | Marek Olšák <[email protected]> | 2013-12-04 00:56:24 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-12-12 18:48:04 +0100 |
commit | 164dc6216a8e4d46ef7db9f54bcecd58ff556b83 (patch) | |
tree | ccea5726b9951f5012a53d1e905efd0da5b63ec6 /src/gallium/state_trackers | |
parent | 0612005aa66f211753f44bb4ffdfdcc9316281ac (diff) |
gallium: allow choosing which colorbuffers to clear
Required for glClearBuffer, which only clears one colorbuffer attachment.
Example:
If the first colorbuffer is float and the second one is int:
pipe->clear(pipe, PIPE_CLEAR_COLOR0, float_clear_color, ...);
pipe->clear(pipe, PIPE_CLEAR_COLOR1, int_clear_color, ...);
This doesn't need any driver changes yet, because all drivers just use:
if (flags & PIPE_CLEAR_COLOR) ..
The drivers which support GL 3.0 will have to implement it properly though.
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r-- | src/gallium/state_trackers/vega/api_masks.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/vega/api_masks.c b/src/gallium/state_trackers/vega/api_masks.c index 0ddcdfb75c1..48dc8445c02 100644 --- a/src/gallium/state_trackers/vega/api_masks.c +++ b/src/gallium/state_trackers/vega/api_masks.c @@ -97,7 +97,7 @@ void vegaClear(VGint x, VGint y, clear_color.f[1] = ctx->state.vg.clear_color[1]; clear_color.f[2] = ctx->state.vg.clear_color[2]; clear_color.f[3] = ctx->state.vg.clear_color[3]; - ctx->pipe->clear(ctx->pipe, PIPE_CLEAR_COLOR | PIPE_CLEAR_DEPTHSTENCIL, + ctx->pipe->clear(ctx->pipe, PIPE_CLEAR_COLOR0 | PIPE_CLEAR_DEPTHSTENCIL, &clear_color, 1., 0); } else if (renderer_clear_begin(ctx->renderer)) { /* XXX verify coord round-off */ |