Switch fragment/vertex shaders to the new caching semantics.
[mesa.git] / src / mesa / state_tracker / st_mipmap_tree.h
index ea3b52ca425a381ded5ed8755229ba5c7cef1466..3e7fd7fa0ceb84de8a3d71c23449a206dbfbcced 100644 (file)
@@ -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