unsigned y0 = quads[0]->input.y0;
uint8_t ALIGN16_ATTRIB src[NUM_CHANNELS][TILE_VECTOR_HEIGHT*TILE_VECTOR_WIDTH];
uint8_t ALIGN16_ATTRIB mask[16];
+ uint8_t *tile = lp_get_cached_tile(llvmpipe->cbuf_cache[cbuf], x0, y0);
uint8_t *dst;
- struct llvmpipe_cached_tile *tile
- = lp_get_cached_tile(llvmpipe->cbuf_cache[cbuf], x0, y0);
assert(nr * QUAD_SIZE == TILE_VECTOR_HEIGHT * TILE_VECTOR_WIDTH);
assert(x0 % TILE_VECTOR_WIDTH == 0);
assert(y0 % TILE_VECTOR_HEIGHT == 0);
- dst = &TILE_PIXEL(tile->data.color, x0 & (TILE_SIZE-1), y0 & (TILE_SIZE-1), 0);
+ dst = &TILE_PIXEL(tile, x0 & (TILE_SIZE-1), y0 & (TILE_SIZE-1), 0);
for (q = 0; q < nr; ++q) {
struct quad_header *quad = quads[q];
* Get a tile from the cache.
* \param x, y position of tile, in pixels
*/
-struct llvmpipe_cached_tile *
+void *
lp_find_cached_tile(struct llvmpipe_tile_cache *tc,
union tile_address addr )
{
}
tc->last_tile = tile;
- return tile;
+
+ return tile->data.color;
}
lp_tile_cache_clear(struct llvmpipe_tile_cache *tc, const float *rgba,
uint clearValue);
-extern struct llvmpipe_cached_tile *
+extern void *
lp_find_cached_tile(struct llvmpipe_tile_cache *tc,
union tile_address addr );
/* Quickly retrieve tile if it matches last lookup.
*/
-static INLINE struct llvmpipe_cached_tile *
+static INLINE void *
lp_get_cached_tile(struct llvmpipe_tile_cache *tc,
int x, int y )
{
union tile_address addr = tile_address( x, y, 0, 0, 0 );
if (tc->last_tile->addr.value == addr.value)
- return tc->last_tile;
+ return &tc->last_tile->data.color;
return lp_find_cached_tile( tc, addr );
}