- }
- }
-
- return true;
-}
-
-/**
- * \param mode bitmask of GL_MAP_READ_BIT, GL_MAP_WRITE_BIT
- */
-static void
-intel_tex_map_image_for_swrast(struct intel_context *intel,
- struct intel_texture_image *intel_image,
- GLbitfield mode)
-{
- int level;
- int face;
- struct intel_mipmap_tree *mt;
- unsigned int x, y;
-
- if (!intel_image || !intel_image->mt)
- return;
-
- level = intel_image->base.Base.Level;
- face = intel_image->base.Base.Face;
- mt = intel_image->mt;
-
- if (mt->target == GL_TEXTURE_3D ||
- mt->target == GL_TEXTURE_2D_ARRAY ||
- mt->target == GL_TEXTURE_1D_ARRAY) {
- int i;
-
- /* ImageOffsets[] is only used for swrast's fetch_texel_3d, so we can't
- * share code with the normal path.
- */
- for (i = 0; i < mt->level[level].depth; i++) {
- intel_miptree_get_image_offset(mt, level, face, i, &x, &y);
- intel_image->base.ImageOffsets[i] = x + y * mt->region->pitch;
- }
-
- DBG("%s \n", __FUNCTION__);
-
- intel_image->base.Map = intel_region_map(intel, mt->region, mode);
- } else {
- assert(intel_image->base.Base.Depth == 1);
- intel_miptree_get_image_offset(mt, level, face, 0, &x, &y);
-
- DBG("%s: (%d,%d) -> (%d, %d)/%d\n",
- __FUNCTION__, face, level, x, y, mt->region->pitch * mt->cpp);