1848b8605Smrg/*
2848b8605Smrg * Mesa 3-D graphics library
3848b8605Smrg *
4848b8605Smrg * Copyright (C) 2010 LunarG Inc.
5848b8605Smrg *
6848b8605Smrg * Permission is hereby granted, free of charge, to any person obtaining a
7848b8605Smrg * copy of this software and associated documentation files (the "Software"),
8848b8605Smrg * to deal in the Software without restriction, including without limitation
9848b8605Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10848b8605Smrg * and/or sell copies of the Software, and to permit persons to whom the
11848b8605Smrg * Software is furnished to do so, subject to the following conditions:
12848b8605Smrg *
13848b8605Smrg * The above copyright notice and this permission notice shall be included
14848b8605Smrg * in all copies or substantial portions of the Software.
15848b8605Smrg *
16848b8605Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17848b8605Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18848b8605Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19848b8605Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20848b8605Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21848b8605Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22848b8605Smrg * DEALINGS IN THE SOFTWARE.
23848b8605Smrg *
24848b8605Smrg * Authors:
25848b8605Smrg *    Chia-I Wu <olv@lunarg.com>
26848b8605Smrg */
27848b8605Smrg
28848b8605Smrg#ifndef ST_MANAGER_H
29848b8605Smrg#define ST_MANAGER_H
30848b8605Smrg
31b8e80941Smrg#include "main/menums.h"
32848b8605Smrg
33848b8605Smrg#include "pipe/p_compiler.h"
34848b8605Smrg
35848b8605Smrgstruct st_context;
36b8e80941Smrgstruct st_framebuffer;
37b8e80941Smrgstruct st_framebuffer_interface;
38b8e80941Smrgstruct st_renderbuffer;
39b8e80941Smrgstruct pipe_surface;
40848b8605Smrg
41848b8605Smrgvoid
42848b8605Smrgst_manager_flush_frontbuffer(struct st_context *st);
43848b8605Smrg
44848b8605Smrgvoid
45848b8605Smrgst_manager_validate_framebuffers(struct st_context *st);
46848b8605Smrg
47848b8605Smrgboolean
48848b8605Smrgst_manager_add_color_renderbuffer(struct st_context *st, struct gl_framebuffer *fb,
49848b8605Smrg                                  gl_buffer_index idx);
50848b8605Smrg
51b8e80941Smrgvoid
52b8e80941Smrgst_framebuffer_reference(struct st_framebuffer **ptr,
53b8e80941Smrg                         struct st_framebuffer *stfb);
54b8e80941Smrg
55b8e80941Smrgvoid
56b8e80941Smrgst_framebuffer_interface_destroy(struct st_framebuffer_interface *stfbi);
57b8e80941Smrg
58b8e80941Smrgvoid
59b8e80941Smrgst_manager_flush_swapbuffers(void);
60b8e80941Smrg
61b8e80941Smrgvoid
62b8e80941Smrgst_set_ws_renderbuffer_surface(struct st_renderbuffer *strb,
63b8e80941Smrg                               struct pipe_surface *surf);
64b8e80941Smrg
65848b8605Smrg#endif /* ST_MANAGER_H */
66