0389f5a0b642370e49fa1628285a8d9a8231ced9
[profile/ivi/mesa.git] / src / mesa / drivers / dri / radeon / radeon_common.h
1 #ifndef COMMON_MISC_H
2 #define COMMON_MISC_H
3
4 #include "radeon_common_context.h"
5 #include "radeon_dma.h"
6 #include "radeon_texture.h"
7
8 void radeonUserClear(struct gl_context *ctx, GLuint mask);
9 void radeonRecalcScissorRects(radeonContextPtr radeon);
10 void radeonSetCliprects(radeonContextPtr radeon);
11 void radeonUpdateScissor( struct gl_context *ctx );
12 void radeonScissor(struct gl_context* ctx, GLint x, GLint y, GLsizei w, GLsizei h);
13
14 void radeonWaitForIdleLocked(radeonContextPtr radeon);
15 extern uint32_t radeonGetAge(radeonContextPtr radeon);
16
17 void radeonUpdatePageFlipping(radeonContextPtr rmesa);
18
19 void radeonFlush(struct gl_context *ctx);
20 void radeonFinish(struct gl_context * ctx);
21 void radeonEmitState(radeonContextPtr radeon);
22 GLuint radeonCountStateEmitSize(radeonContextPtr radeon);
23
24 void radeon_clear_tris(struct gl_context *ctx, GLbitfield mask);
25
26 void radeon_window_moved(radeonContextPtr radeon);
27 void radeon_draw_buffer(struct gl_context *ctx, struct gl_framebuffer *fb);
28 void radeonDrawBuffer( struct gl_context *ctx, GLenum mode );
29 void radeonReadBuffer( struct gl_context *ctx, GLenum mode );
30 void radeon_viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height);
31 void radeon_get_cliprects(radeonContextPtr radeon,
32                           struct drm_clip_rect **cliprects,
33                           unsigned int *num_cliprects,
34                           int *x_off, int *y_off);
35 void radeon_fbo_init(struct radeon_context *radeon);
36 void
37 radeon_renderbuffer_set_bo(struct radeon_renderbuffer *rb,
38                            struct radeon_bo *bo);
39 struct radeon_renderbuffer *
40 radeon_create_renderbuffer(gl_format format, __DRIdrawable *driDrawPriv);
41
42 void
43 radeonReadPixels(struct gl_context * ctx,
44                                 GLint x, GLint y, GLsizei width, GLsizei height,
45                                 GLenum format, GLenum type,
46                                 const struct gl_pixelstore_attrib *pack, GLvoid * pixels);
47
48 void radeon_check_front_buffer_rendering(struct gl_context *ctx);
49 static inline struct radeon_renderbuffer *radeon_renderbuffer(struct gl_renderbuffer *rb)
50 {
51         struct radeon_renderbuffer *rrb = (struct radeon_renderbuffer *)rb;
52         radeon_print(RADEON_MEMORY, RADEON_TRACE,
53                 "%s(rb %p)\n",
54                 __func__, rb);
55         if (rrb && rrb->base.ClassID == RADEON_RB_CLASS)
56                 return rrb;
57         else
58                 return NULL;
59 }
60
61 static inline struct radeon_renderbuffer *radeon_get_renderbuffer(struct gl_framebuffer *fb, int att_index)
62 {
63         radeon_print(RADEON_MEMORY, RADEON_TRACE,
64                 "%s(fb %p, index %d)\n",
65                 __func__, fb, att_index);
66
67         if (att_index >= 0)
68                 return radeon_renderbuffer(fb->Attachment[att_index].Renderbuffer);
69         else
70                 return NULL;
71 }
72
73 static inline struct radeon_renderbuffer *radeon_get_depthbuffer(radeonContextPtr rmesa)
74 {
75         struct radeon_renderbuffer *rrb;
76         rrb = radeon_renderbuffer(rmesa->state.depth.rb);
77         if (!rrb)
78                 return NULL;
79
80         return rrb;
81 }
82
83 static inline struct radeon_renderbuffer *radeon_get_colorbuffer(radeonContextPtr rmesa)
84 {
85         struct radeon_renderbuffer *rrb;
86
87         rrb = radeon_renderbuffer(rmesa->state.color.rb);
88         if (!rrb)
89                 return NULL;
90         return rrb;
91 }
92
93 #include "radeon_cmdbuf.h"
94
95
96 #endif