X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Futil%2Fu_linear.c;h=eed7df966be15d66100dc085dc0cc3af83ba7a7c;hb=35fab1ba3395604f748cd13ba82991372ca0cae7;hp=ba6204d6f7726785c2e44e9138e95b5d74479715;hpb=81374d1ebed16aa3eed336295e80be0dfebfad75;p=mesa.git diff --git a/src/gallium/auxiliary/util/u_linear.c b/src/gallium/auxiliary/util/u_linear.c index ba6204d6f77..eed7df966be 100644 --- a/src/gallium/auxiliary/util/u_linear.c +++ b/src/gallium/auxiliary/util/u_linear.c @@ -1,19 +1,50 @@ +/************************************************************************** + * + * Copyright 2009 VMware, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ -#include "pipe/p_debug.h" +/** + * Functions for converting tiled data to linear and vice versa. + */ + + +#include "util/u_debug.h" #include "u_linear.h" void -pipe_linear_to_tile(size_t src_stride, void *src_ptr, +pipe_linear_to_tile(size_t src_stride, const void *src_ptr, struct pipe_tile_info *t, void *dst_ptr) { - int x, y, z; + unsigned x, y, z; char *ptr; size_t bytes = t->cols * t->block.size; char *dst_ptr2 = (char *) dst_ptr; assert(pipe_linear_check_tile(t)); - /* lets write lineary to the tiled buffer */ + /* lets write linearly to the tiled buffer */ for (y = 0; y < t->tiles_y; y++) { for (x = 0; x < t->tiles_x; x++) { /* this inner loop could be replace with SSE magic */ @@ -27,15 +58,15 @@ pipe_linear_to_tile(size_t src_stride, void *src_ptr, } } -void pipe_linear_from_tile(struct pipe_tile_info *t, void *src_ptr, +void pipe_linear_from_tile(struct pipe_tile_info *t, const void *src_ptr, size_t dst_stride, void *dst_ptr) { - int x, y, z; + unsigned x, y, z; char *ptr; size_t bytes = t->cols * t->block.size; const char *src_ptr2 = (const char *) src_ptr; - /* lets read lineary from the tiled buffer */ + /* lets read linearly from the tiled buffer */ for (y = 0; y < t->tiles_y; y++) { for (x = 0; x < t->tiles_x; x++) { /* this inner loop could be replace with SSE magic */ @@ -51,7 +82,7 @@ void pipe_linear_from_tile(struct pipe_tile_info *t, void *src_ptr, void pipe_linear_fill_info(struct pipe_tile_info *t, - struct pipe_format_block *block, + const struct u_linear_format_block *block, unsigned tile_width, unsigned tile_height, unsigned tiles_x, unsigned tiles_y) {