}
#endif
+
+/**
+ * Allocate a new pipe_texture object
+ */
struct pipe_texture *
st_texture_create(struct st_context *st,
enum pipe_texture_target target,
}
-
-
-/* Can the image be pulled into a unified mipmap texture. This mirrors
- * the completeness test in a lot of ways.
+/**
+ * Check if a texture image be pulled into a unified mipmap texture.
+ * This mirrors the completeness test in a lot of ways.
*
* Not sure whether I want to pass gl_texture_image here.
*/
GLboolean
-st_texture_match_image(struct pipe_texture *pt,
- struct gl_texture_image *image,
- GLuint face, GLuint level)
+st_texture_match_image(const struct pipe_texture *pt,
+ const struct gl_texture_image *image,
+ GLuint face, GLuint level)
{
/* Images with borders are never pulled into mipmap textures.
*/
return pipe_surface_map(stImage->surface);
}
+
void
st_texture_image_unmap(struct st_texture_image *stImage)
{
-/* Upload data to a rectangular sub-region. Lots of choices how to do this:
+/**
+ * Upload data to a rectangular sub-region. Lots of choices how to do this:
*
* - memcpy by span to current destination
* - upload data as new buffer and blit
}
}
+
/* Copy mipmap image between textures
*/
void
st_texture_image_copy(struct pipe_context *pipe,
- struct pipe_texture *dst,
- GLuint face, GLuint level,
- struct pipe_texture *src)
+ struct pipe_texture *dst,
+ GLuint face, GLuint level,
+ struct pipe_texture *src)
{
GLuint width = src->width[level];
GLuint height = src->height[level];
if (dst->compressed)
height /= 4;
+
for (i = 0; i < depth; i++) {
dst_surface = pipe->get_tex_surface(pipe, dst, face, level, i);
src_surface = pipe->get_tex_surface(pipe, src, face, level, i);
pipe_surface_reference(&dst_surface, NULL);
pipe_surface_reference(&src_surface, NULL);
}
-
}
GLuint compress_byte);
-/* Check if an image fits an existing texture
+/* Check if an image fits into an existing texture object.
*/
extern GLboolean
-st_texture_match_image(struct pipe_texture *pt,
- struct gl_texture_image *image,
+st_texture_match_image(const struct pipe_texture *pt,
+ const struct gl_texture_image *image,
GLuint face, GLuint level);
/* Return a pointer to an image within a texture. Return image stride as
st_texture_depth_offsets(struct pipe_texture *pt, GLuint level);
-/* Return the linear offset of an image relative to the start of its region:
+/* Return the linear offset of an image relative to the start of its region.
*/
extern GLuint
st_texture_image_offset(const struct pipe_texture *pt,