1ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul/*
2ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * Mesa 3-D graphics library
3ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * Version:  6.5
4ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul *
5ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
6ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul *
7ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * Permission is hereby granted, free of charge, to any person obtaining a
8ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * copy of this software and associated documentation files (the "Software"),
9ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * to deal in the Software without restriction, including without limitation
10ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * and/or sell copies of the Software, and to permit persons to whom the
12ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * Software is furnished to do so, subject to the following conditions:
13ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul *
14ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * The above copyright notice and this permission notice shall be included
15ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * in all copies or substantial portions of the Software.
16ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul *
17ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul */
24ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
25ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
26379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul#ifndef S_RENDERBUFFER_H
27379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul#define S_RENDERBUFFER_H
28379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul
29379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul#include "main/glheader.h"
30ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
31ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
32ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulstruct gl_context;
33ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulstruct gl_framebuffer;
34ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulstruct gl_renderbuffer;
35ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
36ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
37ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulextern struct gl_renderbuffer *
38379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul_swrast_new_soft_renderbuffer(struct gl_context *ctx, GLuint name);
39ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
40ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulextern void
41379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul_swrast_map_soft_renderbuffer(struct gl_context *ctx,
42379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                              struct gl_renderbuffer *rb,
43379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                              GLuint x, GLuint y, GLuint w, GLuint h,
44379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                              GLbitfield mode,
45379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                              GLubyte **out_map,
46379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                              GLint *out_stride);
47ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
48ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulextern void
49379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul_swrast_unmap_soft_renderbuffer(struct gl_context *ctx,
50379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                                struct gl_renderbuffer *rb);
51ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
52ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulextern void
53379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul_swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb);
54ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
55ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
56ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paulextern void
57379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul_swrast_add_soft_renderbuffers(struct gl_framebuffer *fb,
58379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                               GLboolean color,
59379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                               GLboolean depth,
60379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                               GLboolean stencil,
61379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                               GLboolean accum,
62379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                               GLboolean alpha,
63379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul                               GLboolean aux);
64ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
65ff8e6420fbbbd80c8fd7327f2f2b68e016b7f5c0Brian Paul
66379e0a3ada995b4cf57d142e0dd4618022e0aadcBrian Paul#endif /* S_RENDERBUFFER_H */
67