#ifndef R300_SCREEN_BUFFER_H
#define R300_SCREEN_BUFFER_H
+#include <stdio.h>
#include "pipe/p_compiler.h"
#include "pipe/p_state.h"
#include "r300_screen.h"
#define R300_BUFFER_MAGIC 0xabcd1234
+struct r300_buffer_range {
+ uint32_t start;
+ uint32_t end;
+};
+#define R300_BUFFER_MAX_RANGES 32
+
struct r300_buffer
{
struct pipe_buffer base;
struct r300_winsys_buffer *buf;
void *user_buffer;
+ struct r300_buffer_range ranges[R300_BUFFER_MAX_RANGES];
+ unsigned num_ranges;
+
+ void *map;
};
static INLINE struct r300_buffer *
unsigned index_size,
unsigned start,
unsigned count);
+
+boolean r300_buffer_is_referenced(struct r300_context *r300,
+ struct pipe_buffer *buf);
#endif