r200r300: start merging span code
[mesa.git] / src / mesa / drivers / dri / radeon / common_misc.h
1 #ifndef COMMON_MISC_H
2 #define COMMON_MISC_H
3
4 #include "common_context.h"
5 void radeonRecalcScissorRects(radeonContextPtr radeon);
6 void radeonSetCliprects(radeonContextPtr radeon);
7 void radeonUpdateScissor( GLcontext *ctx );
8
9 void radeonWaitForIdleLocked(radeonContextPtr radeon);
10 extern uint32_t radeonGetAge(radeonContextPtr radeon);
11 void radeonCopyBuffer( __DRIdrawablePrivate *dPriv,
12 const drm_clip_rect_t *rect);
13 void radeonPageFlip( __DRIdrawablePrivate *dPriv );
14 void radeon_common_finish(GLcontext * ctx);
15 void radeonSwapBuffers(__DRIdrawablePrivate * dPriv);
16 void radeonCopySubBuffer(__DRIdrawablePrivate * dPriv,
17 int x, int y, int w, int h );
18
19 void radeonUpdatePageFlipping(radeonContextPtr rmesa);
20
21 GLboolean radeonInitContext(radeonContextPtr radeon,
22 struct dd_function_table* functions,
23 const __GLcontextModes * glVisual,
24 __DRIcontextPrivate * driContextPriv,
25 void *sharedContextPrivate);
26
27 void radeonCleanupContext(radeonContextPtr radeon);
28 void radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable);
29 GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv,
30 __DRIdrawablePrivate * driDrawPriv,
31 __DRIdrawablePrivate * driReadPriv);
32
33 void rcommon_emit_vector(GLcontext * ctx, struct radeon_aos *aos,
34 GLvoid * data, int size, int stride, int count);
35 void radeon_print_state_atom( struct radeon_state_atom *state );
36
37 struct gl_texture_image *radeonNewTextureImage(GLcontext *ctx);
38 void radeonFreeTexImageData(GLcontext *ctx, struct gl_texture_image *timage);
39
40 void radeon_teximage_map(radeon_texture_image *image, GLboolean write_enable);
41 void radeon_teximage_unmap(radeon_texture_image *image);
42 void radeonMapTexture(GLcontext *ctx, struct gl_texture_object *texObj);
43 void radeonUnmapTexture(GLcontext *ctx, struct gl_texture_object *texObj);
44 void radeon_generate_mipmap(GLcontext* ctx, GLenum target, struct gl_texture_object *texObj);
45 int radeon_validate_texture_miptree(GLcontext * ctx, struct gl_texture_object *texObj);
46 GLuint radeon_face_for_target(GLenum target);
47 const struct gl_texture_format *radeonChooseTextureFormat(GLcontext * ctx,
48 GLint internalFormat,
49 GLenum format,
50 GLenum type);
51
52 void radeonTexImage1D(GLcontext * ctx, GLenum target, GLint level,
53 GLint internalFormat,
54 GLint width, GLint border,
55 GLenum format, GLenum type, const GLvoid * pixels,
56 const struct gl_pixelstore_attrib *packing,
57 struct gl_texture_object *texObj,
58 struct gl_texture_image *texImage);
59 void radeonTexImage2D(GLcontext * ctx, GLenum target, GLint level,
60 GLint internalFormat,
61 GLint width, GLint height, GLint border,
62 GLenum format, GLenum type, const GLvoid * pixels,
63 const struct gl_pixelstore_attrib *packing,
64 struct gl_texture_object *texObj,
65 struct gl_texture_image *texImage);
66 void radeonCompressedTexImage2D(GLcontext * ctx, GLenum target,
67 GLint level, GLint internalFormat,
68 GLint width, GLint height, GLint border,
69 GLsizei imageSize, const GLvoid * data,
70 struct gl_texture_object *texObj,
71 struct gl_texture_image *texImage);
72 void radeonTexImage3D(GLcontext * ctx, GLenum target, GLint level,
73 GLint internalFormat,
74 GLint width, GLint height, GLint depth,
75 GLint border,
76 GLenum format, GLenum type, const GLvoid * pixels,
77 const struct gl_pixelstore_attrib *packing,
78 struct gl_texture_object *texObj,
79 struct gl_texture_image *texImage);
80 void radeonTexSubImage1D(GLcontext * ctx, GLenum target, GLint level,
81 GLint xoffset,
82 GLsizei width,
83 GLenum format, GLenum type,
84 const GLvoid * pixels,
85 const struct gl_pixelstore_attrib *packing,
86 struct gl_texture_object *texObj,
87 struct gl_texture_image *texImage);
88 void radeonTexSubImage2D(GLcontext * ctx, GLenum target, GLint level,
89 GLint xoffset, GLint yoffset,
90 GLsizei width, GLsizei height,
91 GLenum format, GLenum type,
92 const GLvoid * pixels,
93 const struct gl_pixelstore_attrib *packing,
94 struct gl_texture_object *texObj,
95 struct gl_texture_image *texImage);
96 void radeonCompressedTexSubImage2D(GLcontext * ctx, GLenum target,
97 GLint level, GLint xoffset,
98 GLint yoffset, GLsizei width,
99 GLsizei height, GLenum format,
100 GLsizei imageSize, const GLvoid * data,
101 struct gl_texture_object *texObj,
102 struct gl_texture_image *texImage);
103
104 void radeonTexSubImage3D(GLcontext * ctx, GLenum target, GLint level,
105 GLint xoffset, GLint yoffset, GLint zoffset,
106 GLsizei width, GLsizei height, GLsizei depth,
107 GLenum format, GLenum type,
108 const GLvoid * pixels,
109 const struct gl_pixelstore_attrib *packing,
110 struct gl_texture_object *texObj,
111 struct gl_texture_image *texImage);
112
113 void radeonSpanRenderStart(GLcontext * ctx);
114 void radeonSpanRenderFinish(GLcontext * ctx);
115 GLubyte *radeon_ptr(const struct radeon_renderbuffer * rrb,
116 GLint x, GLint y);
117 GLubyte *radeon_ptr16(const struct radeon_renderbuffer * rrb,
118 GLint x, GLint y);
119 GLubyte *radeon_ptr32(const struct radeon_renderbuffer * rrb,
120 GLint x, GLint y);
121 #endif