1db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca/**************************************************************************
2db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
3db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
4db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * All Rights Reserved.
5db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
6db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * Permission is hereby granted, free of charge, to any person obtaining a
7db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * copy of this software and associated documentation files (the
8db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * "Software"), to deal in the Software without restriction, including
9db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * without limitation the rights to use, copy, modify, merge, publish,
10db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * distribute, sub license, and/or sell copies of the Software, and to
11db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * permit persons to whom the Software is furnished to do so, subject to
12db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * the following conditions:
13db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
14db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * The above copyright notice and this permission notice (including the
15db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * next paragraph) shall be included in all copies or substantial portions
16db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * of the Software.
17db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
18db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
26db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca **************************************************************************/
27db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
28cbd368e91be121f1381ef132b64839f5638009f7Keith Whitwell#ifndef STW_CONTEXT_H
29cbd368e91be121f1381ef132b64839f5638009f7Keith Whitwell#define STW_CONTEXT_H
30db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
31db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca#include <windows.h>
32db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
33192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wustruct stw_framebuffer;
34192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wustruct st_context_iface;
35db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
36cbd368e91be121f1381ef132b64839f5638009f7Keith Whitwellstruct stw_context
37db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca{
38192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wu   struct st_context_iface *st;
3931f1571d1f6e325c16833afbb6e15b61561e5f1fJosé Fonseca   DHGLRC dhglrc;
40fe69b6bdc7bbde2cefec856ff338788d7be20f4eJosé Fonseca   int iPixelFormat;
41db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc;
42192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wu
43192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wu   struct stw_framebuffer *current_framebuffer;
44db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca};
45db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
460c6a2c78fdd8b4ae620a9f449cab65c4be21a9a1Morgan ArmandDHGLRC stw_create_context_attribs( HDC hdc, INT iLayerPlane, DHGLRC hShareContext,
470c6a2c78fdd8b4ae620a9f449cab65c4be21a9a1Morgan Armand                                   int majorVersion, int minorVersion, int contextFlags, int profileMask );
480c6a2c78fdd8b4ae620a9f449cab65c4be21a9a1Morgan Armand
4931f1571d1f6e325c16833afbb6e15b61561e5f1fJosé FonsecaDHGLRC stw_get_current_context( void );
5031f1571d1f6e325c16833afbb6e15b61561e5f1fJosé Fonseca
5131f1571d1f6e325c16833afbb6e15b61561e5f1fJosé FonsecaHDC stw_get_current_dc( void );
5231f1571d1f6e325c16833afbb6e15b61561e5f1fJosé Fonseca
5331f1571d1f6e325c16833afbb6e15b61561e5f1fJosé FonsecaBOOL stw_make_current( HDC hdc, DHGLRC dhglrc );
5431f1571d1f6e325c16833afbb6e15b61561e5f1fJosé Fonseca
55192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wuvoid stw_flush_current_locked( struct stw_framebuffer *fb );
56192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wuvoid stw_notify_current_locked( struct stw_framebuffer *fb );
57192f06adca5e79b4824d92dc41186592ed57f71eChia-I Wu
58cbd368e91be121f1381ef132b64839f5638009f7Keith Whitwell#endif /* STW_CONTEXT_H */
59