st/nine: Decompose nine_context_set_indices
Part of the refactor to move all gallium calls to nine_state.c, and have all internal states required for those calls in nine_context. Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
@@ -1244,23 +1244,39 @@ nine_context_set_stream_source_freq(struct NineDevice9 *device,
|
||||
context->changed.group |= NINE_STATE_STREAMFREQ;
|
||||
}
|
||||
|
||||
static void
|
||||
nine_context_set_indices_apply(struct NineDevice9 *device,
|
||||
struct pipe_resource *res,
|
||||
UINT IndexSize,
|
||||
UINT OffsetInBytes)
|
||||
{
|
||||
struct nine_context *context = &device->context;
|
||||
|
||||
context->idxbuf.index_size = IndexSize;
|
||||
context->idxbuf.offset = OffsetInBytes;
|
||||
pipe_resource_reference(&context->idxbuf.buffer, res);
|
||||
context->idxbuf.user_buffer = NULL;
|
||||
|
||||
context->changed.group |= NINE_STATE_IDXBUF;
|
||||
}
|
||||
|
||||
void
|
||||
nine_context_set_indices(struct NineDevice9 *device,
|
||||
struct NineIndexBuffer9 *idxbuf)
|
||||
{
|
||||
struct nine_context *context = &device->context;
|
||||
const struct pipe_index_buffer *pipe_idxbuf;
|
||||
struct pipe_resource *res = NULL;
|
||||
UINT IndexSize = 0;
|
||||
UINT OffsetInBytes = 0;
|
||||
|
||||
if (idxbuf) {
|
||||
pipe_idxbuf = NineIndexBuffer9_GetBuffer(idxbuf);
|
||||
context->idxbuf.index_size = pipe_idxbuf->index_size;
|
||||
pipe_resource_reference(&context->idxbuf.buffer, pipe_idxbuf->buffer);
|
||||
context->idxbuf.offset = pipe_idxbuf->offset;
|
||||
context->idxbuf.user_buffer = NULL;
|
||||
} else
|
||||
pipe_resource_reference(&context->idxbuf.buffer, NULL);
|
||||
IndexSize = pipe_idxbuf->index_size;
|
||||
res = pipe_idxbuf->buffer;
|
||||
OffsetInBytes = pipe_idxbuf->offset;
|
||||
}
|
||||
|
||||
context->changed.group |= NINE_STATE_IDXBUF;
|
||||
nine_context_set_indices_apply(device, res, IndexSize, OffsetInBytes);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user