mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 15:38:09 +02:00
Undo indexOffset change (I think, git???)
This commit is contained in:
parent
3733b1f2e9
commit
11ce6244a7
6 changed files with 18 additions and 12 deletions
|
|
@ -47,7 +47,7 @@ static void failover_destroy( struct pipe_context *pipe )
|
|||
|
||||
static boolean failover_draw_elements( struct pipe_context *pipe,
|
||||
struct pipe_buffer_handle *indexBuffer,
|
||||
unsigned indexSize,
|
||||
unsigned indexSize, unsigned indexOffset,
|
||||
unsigned prim, unsigned start, unsigned count)
|
||||
{
|
||||
struct failover_context *failover = failover_context( pipe );
|
||||
|
|
@ -65,6 +65,7 @@ static boolean failover_draw_elements( struct pipe_context *pipe,
|
|||
if (!failover->hw->draw_elements( failover->hw,
|
||||
indexBuffer,
|
||||
indexSize,
|
||||
indexOffset,
|
||||
prim,
|
||||
start,
|
||||
count )) {
|
||||
|
|
@ -84,6 +85,7 @@ static boolean failover_draw_elements( struct pipe_context *pipe,
|
|||
failover->sw->draw_elements( failover->sw,
|
||||
indexBuffer,
|
||||
indexSize,
|
||||
indexOffset,
|
||||
prim,
|
||||
start,
|
||||
count );
|
||||
|
|
@ -102,7 +104,7 @@ static boolean failover_draw_elements( struct pipe_context *pipe,
|
|||
static boolean failover_draw_arrays( struct pipe_context *pipe,
|
||||
unsigned prim, unsigned start, unsigned count)
|
||||
{
|
||||
return failover_draw_elements(pipe, NULL, 0, prim, start, count);
|
||||
return failover_draw_elements(pipe, NULL, 0, 0, prim, start, count);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ i915_end_query(struct pipe_context *pipe, struct pipe_query_object *q)
|
|||
static boolean
|
||||
i915_draw_elements( struct pipe_context *pipe,
|
||||
struct pipe_buffer_handle *indexBuffer,
|
||||
unsigned indexSize,
|
||||
unsigned indexSize, unsigned indexOffset,
|
||||
unsigned prim, unsigned start, unsigned count)
|
||||
{
|
||||
struct i915_context *i915 = i915_context( pipe );
|
||||
|
|
@ -202,9 +202,10 @@ i915_draw_elements( struct pipe_context *pipe,
|
|||
}
|
||||
/* Map index buffer, if present */
|
||||
if (indexBuffer) {
|
||||
void *mapped_indexes
|
||||
ubyte *mapped_indexes
|
||||
= pipe->winsys->buffer_map(pipe->winsys, indexBuffer,
|
||||
PIPE_BUFFER_FLAG_READ);
|
||||
mapped_indexes += indexOffset;
|
||||
draw_set_mapped_element_buffer(draw, indexSize, mapped_indexes);
|
||||
}
|
||||
else {
|
||||
|
|
@ -262,7 +263,7 @@ i915_draw_elements( struct pipe_context *pipe,
|
|||
static boolean i915_draw_arrays( struct pipe_context *pipe,
|
||||
unsigned prim, unsigned start, unsigned count)
|
||||
{
|
||||
return i915_draw_elements(pipe, NULL, 0, prim, start, count);
|
||||
return i915_draw_elements(pipe, NULL, 0, 0, prim, start, count);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ struct pipe_context {
|
|||
|
||||
boolean (*draw_elements)( struct pipe_context *pipe,
|
||||
struct pipe_buffer_handle *indexBuffer,
|
||||
unsigned indexSize,
|
||||
unsigned indexSize, unsigned indexOffset,
|
||||
unsigned mode, unsigned start, unsigned count);
|
||||
|
||||
/** Clear a surface to given value (no scissor; clear whole surface) */
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ boolean
|
|||
softpipe_draw_arrays(struct pipe_context *pipe, unsigned mode,
|
||||
unsigned start, unsigned count)
|
||||
{
|
||||
return softpipe_draw_elements(pipe, NULL, 0, mode, start, count);
|
||||
return softpipe_draw_elements(pipe, NULL, 0, 0, mode, start, count);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -90,7 +90,7 @@ softpipe_draw_arrays(struct pipe_context *pipe, unsigned mode,
|
|||
boolean
|
||||
softpipe_draw_elements(struct pipe_context *pipe,
|
||||
struct pipe_buffer_handle *indexBuffer,
|
||||
unsigned indexSize,
|
||||
unsigned indexSize, unsigned indexOffset,
|
||||
unsigned mode, unsigned start, unsigned count)
|
||||
{
|
||||
struct softpipe_context *sp = softpipe_context(pipe);
|
||||
|
|
@ -130,9 +130,10 @@ softpipe_draw_elements(struct pipe_context *pipe,
|
|||
}
|
||||
/* Map index buffer, if present */
|
||||
if (indexBuffer) {
|
||||
void *mapped_indexes
|
||||
ubyte *mapped_indexes
|
||||
= pipe->winsys->buffer_map(pipe->winsys, indexBuffer,
|
||||
PIPE_BUFFER_FLAG_READ);
|
||||
mapped_indexes += indexOffset;
|
||||
draw_set_mapped_element_buffer(draw, indexSize, mapped_indexes);
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ boolean softpipe_draw_arrays(struct pipe_context *pipe, unsigned mode,
|
|||
|
||||
boolean softpipe_draw_elements(struct pipe_context *pipe,
|
||||
struct pipe_buffer_handle *indexBuffer,
|
||||
unsigned indexSize,
|
||||
unsigned indexSize, unsigned indexOffset,
|
||||
unsigned mode, unsigned start, unsigned count);
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ st_draw_vbo(GLcontext *ctx,
|
|||
/* indexed primitive */
|
||||
struct gl_buffer_object *bufobj = ib->obj;
|
||||
struct pipe_buffer_handle *indexBuf = NULL;
|
||||
unsigned indexSize, i;
|
||||
unsigned indexSize, indexOffset, i;
|
||||
|
||||
switch (ib->type) {
|
||||
case GL_UNSIGNED_INT:
|
||||
|
|
@ -218,17 +218,19 @@ st_draw_vbo(GLcontext *ctx,
|
|||
/* elements/indexes are in a real VBO */
|
||||
struct st_buffer_object *stobj = st_buffer_object(bufobj);
|
||||
winsys->buffer_reference(winsys, &indexBuf, stobj->buffer);
|
||||
indexOffset = (unsigned) ib->ptr;
|
||||
}
|
||||
else {
|
||||
/* element/indicies are in user space memory */
|
||||
indexBuf = winsys->user_buffer_create(winsys,
|
||||
(void *) ib->ptr,
|
||||
ib->count * indexSize);
|
||||
indexOffset = 0;
|
||||
}
|
||||
|
||||
/* draw */
|
||||
for (i = 0; i < nr_prims; i++) {
|
||||
pipe->draw_elements(pipe, indexBuf, indexSize,
|
||||
pipe->draw_elements(pipe, indexBuf, indexSize, indexOffset,
|
||||
prims[i].mode, prims[i].start, prims[i].count);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue