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 radeonSetCliprects(radeonContextPtr radeon);
10 void radeonUpdateScissor( struct gl_context *ctx );
11 void radeonScissor(struct gl_context *ctx);
12 
13 extern uint32_t radeonGetAge(radeonContextPtr radeon);
14 
15 void radeonFlush(struct gl_context *ctx, unsigned gallium_flush_flags);
16 void radeonFinish(struct gl_context * ctx);
17 void radeonEmitState(radeonContextPtr radeon);
18 GLuint radeonCountStateEmitSize(radeonContextPtr radeon);
19 
20 void radeon_clear_tris(struct gl_context *ctx, GLbitfield mask);
21 
22 void radeon_window_moved(radeonContextPtr radeon);
23 void radeon_draw_buffer(struct gl_context *ctx, struct gl_framebuffer *fb);
24 void radeonDrawBuffer(struct gl_context *ctx);
25 void radeonReadBuffer( struct gl_context *ctx, GLenum mode );
26 void radeon_viewport(struct gl_context *ctx);
27 void radeon_fbo_init(struct radeon_context *radeon);
28 void
29 radeon_renderbuffer_set_bo(struct radeon_renderbuffer *rb,
30 			   struct radeon_bo *bo);
31 struct radeon_renderbuffer *
32 radeon_create_renderbuffer(mesa_format format, __DRIdrawable *driDrawPriv);
33 
34 void
35 radeonReadPixels(struct gl_context * ctx,
36 				GLint x, GLint y, GLsizei width, GLsizei height,
37 				GLenum format, GLenum type,
38 				const struct gl_pixelstore_attrib *pack, GLvoid * pixels);
39 
radeon_renderbuffer(struct gl_renderbuffer * rb)40 static inline struct radeon_renderbuffer *radeon_renderbuffer(struct gl_renderbuffer *rb)
41 {
42 	struct radeon_renderbuffer *rrb = (struct radeon_renderbuffer *)rb;
43 	radeon_print(RADEON_MEMORY, RADEON_TRACE,
44 		"%s(rb %p)\n",
45 		__func__, (void *) rb);
46 	if (rrb && rrb->base.Base.ClassID == RADEON_RB_CLASS)
47 		return rrb;
48 	else
49 		return NULL;
50 }
51 
radeon_get_renderbuffer(struct gl_framebuffer * fb,int att_index)52 static inline struct radeon_renderbuffer *radeon_get_renderbuffer(struct gl_framebuffer *fb, int att_index)
53 {
54 	radeon_print(RADEON_MEMORY, RADEON_TRACE,
55 		"%s(fb %p, index %d)\n",
56 		__func__, (void *) fb, att_index);
57 
58 	if (att_index >= 0)
59 		return radeon_renderbuffer(fb->Attachment[att_index].Renderbuffer);
60 	else
61 		return NULL;
62 }
63 
radeon_get_depthbuffer(radeonContextPtr rmesa)64 static inline struct radeon_renderbuffer *radeon_get_depthbuffer(radeonContextPtr rmesa)
65 {
66 	struct radeon_renderbuffer *rrb;
67 	rrb = radeon_renderbuffer(rmesa->state.depth.rb);
68 	if (!rrb)
69 		return NULL;
70 
71 	return rrb;
72 }
73 
radeon_get_colorbuffer(radeonContextPtr rmesa)74 static inline struct radeon_renderbuffer *radeon_get_colorbuffer(radeonContextPtr rmesa)
75 {
76 	struct radeon_renderbuffer *rrb;
77 
78 	rrb = radeon_renderbuffer(rmesa->state.color.rb);
79 	if (!rrb)
80 		return NULL;
81 	return rrb;
82 }
83 
84 #include "radeon_cmdbuf.h"
85 
86 
87 #endif
88