Пример #1
0
/**
 * Copies the image's contents at its level into the object's miptree,
 * and updates the image to point at the object's miptree.
 */
static void
copy_image_data_to_tree(struct intel_context *intel,
                        struct intel_texture_object *intelObj,
                        struct intel_texture_image *intelImage)
{
   if (intelImage->mt) {
      /* Copy potentially with the blitter:
       */
      intel_miptree_image_copy(intel,
                               intelObj->mt,
                               intelImage->face,
                               intelImage->level, intelImage->mt);

      intel_miptree_release(intel, &intelImage->mt);
   }
   else {
      assert(intelImage->base.Data != NULL);

      /* More straightforward upload.  
       */
      intel_miptree_image_data(intel,
                               intelObj->mt,
                               intelImage->face,
                               intelImage->level,
                               intelImage->base.Data,
                               intelImage->base.RowStride,
                               intelImage->base.RowStride *
                               intelImage->base.Height);
      _mesa_align_free(intelImage->base.Data);
      intelImage->base.Data = NULL;
   }

   intel_miptree_reference(&intelImage->mt, intelObj->mt);
}
Пример #2
0
static GLboolean copy_image_data_to_tree( struct intel_context *intel,
					  struct intel_texture_object *intelObj,
					  struct gl_texture_image *texImage,
					  GLuint face,
					  GLuint level)
{
   return intel_miptree_image_data(intel,
				   intelObj->mt,
				   face,
				   level,
				   texImage->Data,
				   texImage->RowStride,
				   (texImage->RowStride * 
				    texImage->Height * 
				    texImage->TexFormat->TexelBytes));
}