diff options
author | Marek Olšák <[email protected]> | 2011-08-30 19:10:06 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-09-02 22:39:56 +0200 |
commit | 5572de8e7e71a15cefe6425b3e082c721052ef1e (patch) | |
tree | 75f5f7bdf80a9a1c8b478904562ecc30b59b031d /src/mesa/state_tracker | |
parent | 0a33ac5413d6217a30b70d4ec6e11389872616d0 (diff) |
mesa: handle zero-size buffers in MapBuffer and ranges in MapBufferRange (v3)
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_cb_bufferobjects.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c index a451b44049e..aab7444e201 100644 --- a/src/mesa/state_tracker/st_cb_bufferobjects.c +++ b/src/mesa/state_tracker/st_cb_bufferobjects.c @@ -229,13 +229,6 @@ st_bufferobj_data(struct gl_context *ctx, /** - * Dummy data whose's pointer is used for zero size buffers or ranges. - */ -static long st_bufferobj_zero_length = 0; - - - -/** * Called via glMapBufferRange(). */ static void * @@ -280,24 +273,15 @@ st_bufferobj_map_range(struct gl_context *ctx, assert(offset < obj->Size); assert(offset + length <= obj->Size); - /* - * We go out of way here to hide the degenerate yet valid case of zero - * length range from the pipe driver. - */ - if (!length) { - obj->Pointer = &st_bufferobj_zero_length; - } - else { - obj->Pointer = pipe_buffer_map_range(pipe, - st_obj->buffer, - offset, length, - flags, - &st_obj->transfer); - if (obj->Pointer) { - obj->Pointer = (ubyte *) obj->Pointer + offset; - } + obj->Pointer = pipe_buffer_map_range(pipe, + st_obj->buffer, + offset, length, + flags, + &st_obj->transfer); + if (obj->Pointer) { + obj->Pointer = (ubyte *) obj->Pointer + offset; } - + if (obj->Pointer) { obj->Offset = offset; obj->Length = length; |