17117f1b4Smrg/**
27117f1b4Smrg * \file buffers.h
37117f1b4Smrg * Frame buffer management functions declarations.
47117f1b4Smrg */
57117f1b4Smrg
67117f1b4Smrg/*
77117f1b4Smrg * Mesa 3-D graphics library
87117f1b4Smrg *
9c1f859d4Smrg * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
107117f1b4Smrg *
117117f1b4Smrg * Permission is hereby granted, free of charge, to any person obtaining a
127117f1b4Smrg * copy of this software and associated documentation files (the "Software"),
137117f1b4Smrg * to deal in the Software without restriction, including without limitation
147117f1b4Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
157117f1b4Smrg * and/or sell copies of the Software, and to permit persons to whom the
167117f1b4Smrg * Software is furnished to do so, subject to the following conditions:
177117f1b4Smrg *
187117f1b4Smrg * The above copyright notice and this permission notice shall be included
197117f1b4Smrg * in all copies or substantial portions of the Software.
207117f1b4Smrg *
217117f1b4Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
227117f1b4Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
237117f1b4Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
24af69d88dSmrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
25af69d88dSmrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
26af69d88dSmrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
27af69d88dSmrg * OTHER DEALINGS IN THE SOFTWARE.
287117f1b4Smrg */
297117f1b4Smrg
307117f1b4Smrg
317117f1b4Smrg
327117f1b4Smrg#ifndef BUFFERS_H
337117f1b4Smrg#define BUFFERS_H
347117f1b4Smrg
357117f1b4Smrg
363464ebd5Sriastradh#include "glheader.h"
3701e04c3fSmrg#include "menums.h"
387117f1b4Smrg
393464ebd5Sriastradhstruct gl_context;
4001e04c3fSmrgstruct gl_framebuffer;
4101e04c3fSmrg
4201e04c3fSmrg
4301e04c3fSmrgvoid GLAPIENTRY
4401e04c3fSmrg_mesa_DrawBuffer_no_error(GLenum mode);
457117f1b4Smrg
467117f1b4Smrgextern void GLAPIENTRY
477117f1b4Smrg_mesa_DrawBuffer( GLenum mode );
487117f1b4Smrg
4901e04c3fSmrgvoid GLAPIENTRY
5001e04c3fSmrg_mesa_NamedFramebufferDrawBuffer_no_error(GLuint framebuffer, GLenum buf);
5101e04c3fSmrg
5201e04c3fSmrgextern void GLAPIENTRY
5301e04c3fSmrg_mesa_NamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf);
5401e04c3fSmrg
5501e04c3fSmrgvoid GLAPIENTRY
5601e04c3fSmrg_mesa_DrawBuffers_no_error(GLsizei n, const GLenum *buffers);
5701e04c3fSmrg
587117f1b4Smrgextern void GLAPIENTRY
59af69d88dSmrg_mesa_DrawBuffers(GLsizei n, const GLenum *buffers);
607117f1b4Smrg
6101e04c3fSmrgvoid GLAPIENTRY
6201e04c3fSmrg_mesa_NamedFramebufferDrawBuffers_no_error(GLuint framebuffer, GLsizei n,
6301e04c3fSmrg                                           const GLenum *bufs);
6401e04c3fSmrg
6501e04c3fSmrgextern void GLAPIENTRY
6601e04c3fSmrg_mesa_NamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n,
6701e04c3fSmrg                                  const GLenum *bufs);
6801e04c3fSmrg
697117f1b4Smrgextern void
7001e04c3fSmrg_mesa_drawbuffers(struct gl_context *ctx, struct gl_framebuffer *fb,
7101e04c3fSmrg                  GLuint n, const GLenum16 *buffers,
727117f1b4Smrg                  const GLbitfield *destMask);
737117f1b4Smrg
74c1f859d4Smrgextern void
7501e04c3fSmrg_mesa_readbuffer(struct gl_context *ctx, struct gl_framebuffer *fb,
7601e04c3fSmrg                 GLenum buffer, gl_buffer_index bufferIndex);
773464ebd5Sriastradh
783464ebd5Sriastradhextern void
793464ebd5Sriastradh_mesa_update_draw_buffers(struct gl_context *ctx);
803464ebd5Sriastradh
817ec681f3Smrgextern GLenum
827ec681f3Smrg_mesa_back_to_front_if_single_buffered(const struct gl_framebuffer *fb,
837ec681f3Smrg                                       GLenum buffer);
847ec681f3Smrg
8501e04c3fSmrgvoid GLAPIENTRY
8601e04c3fSmrg_mesa_ReadBuffer_no_error(GLenum mode);
877117f1b4Smrg
887117f1b4Smrgextern void GLAPIENTRY
89c1f859d4Smrg_mesa_ReadBuffer( GLenum mode );
907117f1b4Smrg
9101e04c3fSmrgvoid GLAPIENTRY
9201e04c3fSmrg_mesa_NamedFramebufferReadBuffer_no_error(GLuint framebuffer, GLenum src);
9301e04c3fSmrg
9401e04c3fSmrgextern void GLAPIENTRY
9501e04c3fSmrg_mesa_NamedFramebufferReadBuffer(GLuint framebuffer, GLenum src);
9601e04c3fSmrg
977ec681f3Smrgextern void GLAPIENTRY
987ec681f3Smrg_mesa_FramebufferDrawBufferEXT(GLuint framebuffer, GLenum buf);
997117f1b4Smrg
1007ec681f3Smrgextern void GLAPIENTRY
1017ec681f3Smrg_mesa_FramebufferReadBufferEXT(GLuint framebuffer, GLenum buf);
1027ec681f3Smrg
1037ec681f3Smrgextern void GLAPIENTRY
1047ec681f3Smrg_mesa_FramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n,
1057ec681f3Smrg                                const GLenum *bufs);
1067117f1b4Smrg#endif
107