]> git.cworth.org Git - vogl/blob - src/voglcommon/vogl_replay_window.h
Initial vogl checkin
[vogl] / src / voglcommon / vogl_replay_window.h
1 /**************************************************************************
2  *
3  * Copyright 2013-2014 RAD Game Tools and Valve Software
4  * All Rights Reserved.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  *
24  **************************************************************************/
25
26 // File: vogl_replay_window.h
27 #ifndef VOGL_REPLAY_WINDOW_H
28 #define VOGL_REPLAY_WINDOW_H
29
30 #include "vogl_common.h"
31
32 //----------------------------------------------------------------------------------------------------------------------
33 // class vogl_replay_window
34 //----------------------------------------------------------------------------------------------------------------------
35 class vogl_replay_window
36 {
37 public:
38     vogl_replay_window();
39
40     ~vogl_replay_window();
41
42     bool is_opened() const
43     {
44         return (m_width > 0) && (m_dpy != NULL);
45     }
46
47     bool open(int width, int height);
48
49     void set_title(const char *pTitle);
50
51     bool resize(int new_width, int new_height);
52
53     void clear_window();
54
55     void close();
56
57     inline Display *get_display() const
58     {
59         return m_dpy;
60     }
61     inline Window get_xwindow() const
62     {
63         return m_win;
64     }
65     inline int get_width() const
66     {
67         return m_width;
68     }
69     inline int get_height() const
70     {
71         return m_height;
72     }
73
74     void update_dimensions();
75
76     GLXFBConfig *get_fb_configs() const
77     {
78         return m_pFB_configs;
79     }
80     uint get_num_fb_configs() const
81     {
82         return m_num_fb_configs;
83     }
84
85     bool get_actual_dimensions(uint &width, uint &height) const;
86
87 private:
88     Display *m_dpy;
89     Window m_win;
90     int m_width;
91     int m_height;
92
93     GLXFBConfig *m_pFB_configs;
94     int m_num_fb_configs;
95
96     bool check_glx_version();
97 };
98
99 #endif // VOGL_REPLAY_WINDOW_H