#ifndef __NOUVEAU_BUFFERS_H__ #define __NOUVEAU_BUFFERS_H__ #include #include "mtypes.h" #include "utils.h" #include "renderbuffer.h" typedef struct nouveau_mem_t { int type; uint64_t offset; uint64_t size; void *map; } nouveau_mem; extern nouveau_mem *nouveau_mem_alloc(GLcontext *, uint32_t flags, GLuint size, GLuint align); extern void nouveau_mem_free(GLcontext *, nouveau_mem *); extern uint32_t nouveau_mem_gpu_offset_get(GLcontext *, nouveau_mem *); extern GLboolean nouveau_memformat_flat_emit(GLcontext *, nouveau_mem *dst, nouveau_mem *src, GLuint dst_offset, GLuint src_offset, GLuint size); typedef struct nouveau_renderbuffer_t { struct gl_renderbuffer mesa; /* must be first! */ __DRIdrawablePrivate *dPriv; nouveau_mem *mem; void *map; int cpp; uint32_t offset; uint32_t pitch; } nouveau_renderbuffer; extern nouveau_renderbuffer *nouveau_renderbuffer_new(GLenum internalFormat, GLvoid *map, GLuint offset, GLuint pitch, __DRIdrawablePrivate *); extern void nouveau_window_moved(GLcontext *); extern GLboolean nouveau_build_framebuffer(GLcontext *, struct gl_framebuffer *); extern nouveau_renderbuffer *nouveau_current_draw_buffer(GLcontext *); extern void nouveauInitBufferFuncs(struct dd_function_table *); #endif