X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fstate_tracker%2Fst_mipmap_tree.h;h=3e7fd7fa0ceb84de8a3d71c23449a206dbfbcced;hb=daf5b0f41baa50951e7c2f9ea5cd90b119085a7f;hp=ea3b52ca425a381ded5ed8755229ba5c7cef1466;hpb=bc3b608317fcda659e7d910b4fab06426ae5f334;p=mesa.git diff --git a/src/mesa/state_tracker/st_mipmap_tree.h b/src/mesa/state_tracker/st_mipmap_tree.h index ea3b52ca425..3e7fd7fa0ce 100644 --- a/src/mesa/state_tracker/st_mipmap_tree.h +++ b/src/mesa/state_tracker/st_mipmap_tree.h @@ -36,70 +36,83 @@ struct pipe_mipmap_tree; struct pipe_region; -struct pipe_mipmap_tree *st_miptree_create(struct pipe_context *pipe, - GLenum target, - GLenum internal_format, - GLuint first_level, - GLuint last_level, - GLuint width0, - GLuint height0, - GLuint depth0, - GLuint cpp, - GLuint compress_byte); - -void st_miptree_reference(struct pipe_mipmap_tree **dst, - struct pipe_mipmap_tree *src); - -void st_miptree_release(struct pipe_context *pipe, - struct pipe_mipmap_tree **mt); +extern struct pipe_mipmap_tree * +st_miptree_create(struct pipe_context *pipe, + GLenum target, + GLenum internal_format, + GLuint first_level, + GLuint last_level, + GLuint width0, + GLuint height0, + GLuint depth0, + GLuint cpp, + GLuint compress_byte); + +extern void +st_miptree_reference(struct pipe_mipmap_tree **dst, + struct pipe_mipmap_tree *src); + +extern void +st_miptree_release(struct pipe_context *pipe, struct pipe_mipmap_tree **mt); + /* Check if an image fits an existing mipmap tree layout */ -GLboolean st_miptree_match_image(struct pipe_mipmap_tree *mt, - struct gl_texture_image *image, - GLuint face, GLuint level); +extern GLboolean +st_miptree_match_image(struct pipe_mipmap_tree *mt, + struct gl_texture_image *image, + GLuint face, GLuint level); /* Return a pointer to an image within a tree. Return image stride as * well. */ -GLubyte *st_miptree_image_map(struct pipe_context *pipe, - struct pipe_mipmap_tree *mt, - GLuint face, - GLuint level, - GLuint * row_stride, GLuint * image_stride); +extern GLubyte * +st_miptree_image_map(struct pipe_context *pipe, + struct pipe_mipmap_tree *mt, + GLuint face, GLuint level, + GLuint * row_stride, GLuint * image_stride); + +extern void +st_miptree_image_unmap(struct pipe_context *pipe, + struct pipe_mipmap_tree *mt); + -void st_miptree_image_unmap(struct pipe_context *pipe, - struct pipe_mipmap_tree *mt); +/* Return pointers to each 2d slice within an image. Indexed by depth + * value. + */ +extern const GLuint * +st_miptree_depth_offsets(struct pipe_mipmap_tree *mt, GLuint level); /* Return the linear offset of an image relative to the start of the * tree: */ -GLuint st_miptree_image_offset(struct pipe_mipmap_tree *mt, - GLuint face, GLuint level); +extern GLuint +st_miptree_image_offset(const struct pipe_mipmap_tree *mt, + GLuint face, GLuint level); -/* Return pointers to each 2d slice within an image. Indexed by depth - * value. - */ -const GLuint *st_miptree_depth_offsets(struct pipe_mipmap_tree *mt, - GLuint level); +extern GLuint +st_miptree_texel_offset(const struct pipe_mipmap_tree * mt, + GLuint face, GLuint level, + GLuint col, GLuint row, GLuint img); /* Upload an image into a tree */ -void st_miptree_image_data(struct pipe_context *pipe, - struct pipe_mipmap_tree *dst, - GLuint face, - GLuint level, - void *src, - GLuint src_row_pitch, GLuint src_image_pitch); +extern void +st_miptree_image_data(struct pipe_context *pipe, + struct pipe_mipmap_tree *dst, + GLuint face, GLuint level, void *src, + GLuint src_row_pitch, GLuint src_image_pitch); + /* Copy an image between two trees */ -void st_miptree_image_copy(struct pipe_context *pipe, - struct pipe_mipmap_tree *dst, - GLuint face, GLuint level, - struct pipe_mipmap_tree *src); +extern void +st_miptree_image_copy(struct pipe_context *pipe, + struct pipe_mipmap_tree *dst, + GLuint face, GLuint level, + struct pipe_mipmap_tree *src); #endif