1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
|
/*
** ClanLib SDK
** Copyright (c) 1997-2005 The ClanLib Team
**
** This software is provided 'as-is', without any express or implied
** warranty. In no event will the authors be held liable for any damages
** arising from the use of this software.
**
** Permission is granted to anyone to use this software for any purpose,
** including commercial applications, and to alter it and redistribute it
** freely, subject to the following restrictions:
**
** 1. The origin of this software must not be misrepresented; you must not
** claim that you wrote the original software. If you use this software
** in a product, an acknowledgment in the product documentation would be
** appreciated but is not required.
** 2. Altered source versions must be plainly marked as such, and must not be
** misrepresented as being the original software.
** 3. This notice may not be removed or altered from any source distribution.
**
** Note: Some of the libraries ClanLib may link to may have additional
** requirements or restrictions.
**
** File Author(s):
**
** Magnus Norddahl
** (if your name is missing here, please add it)
*/
//! clanGL="Display 2D"
//! header=gl.h
#ifndef header_opengl_window_description
#define header_opengl_window_description
#ifdef CL_API_DLL
#ifdef CL_GL_EXPORT
#define CL_API_GL __declspec(dllexport)
#else
#define CL_API_GL __declspec(dllimport)
#endif
#else
#define CL_API_GL
#endif
#if _MSC_VER > 1000
#pragma once
#endif
#include "../Display/display_window_description.h"
class CL_OpenGLWindowDescription_Generic;
//: OpenGL specific display window description.
//- !group=GL/Display 2D!
//- !header=gl.h!
//- <p>Use this class to setup OpenGL specific settings for a top level
//- window:</p>
//- <pre>
//- CL_OpenGLWindowDescription desc;
//- dest.set_title("OpenGL window with stereo visual");
//- desc.set_stereo(true);
//- desc.set_stencil_size(4);
//- CL_DisplayWindow window(desc);
//- </pre>
class CL_API_GL CL_OpenGLWindowDescription : public CL_DisplayWindowDescription
{
//! Construction:
public:
//: Constructs a window description with default values.
CL_OpenGLWindowDescription();
virtual ~CL_OpenGLWindowDescription();
//! Attributes:
public:
//: Returns true if only TrueColor and DirectColor visuals are considered.
//- <p>If not enabled, only PseudoColor and StaticColor visuals are considered.</p>
bool get_rgba() const;
//: Returns true if only double-buffered visuals are considered.
//- <p>If not enabled, only single-buffered visuals are considered.</p>
bool get_doublebuffer() const;
//: Returns true if only stereo visuals are considered.
//- <p>If not enabled, only monoscopic visuals are considered.</p>
bool get_stereo() const;
//: Returns the desired color index buffer size.
//- <p>Ignored in GLX (X11) if the RGBA flag is set.</p>
//- <p>In WGL (Windows) it specifies the size of the color buffer, excluding the alpha bitplanes.</p>
int get_buffer_size() const;
//: Returns the required buffer level.
//- <p>Buffer level zero corresponds to the main frame buffer of the display. Buffer
//- level one is the first overlay frame buffer, level two the second overlay frame
//- buffer, and so on. Negative buffer levels correspond to underlay frame buffers.</p>
int get_level() const;
//: Returns the desired number of auxilary buffers.
int get_aux_buffers() const;
//: Returns the minimum required red buffer.
int get_red_size() const;
//: Returns the minimum required green buffer.
int get_green_size() const;
//: Returns the minimum required blue buffer.
int get_blue_size() const;
//: Returns the minimum required alpha buffer.
int get_alpha_size() const;
//: Returns the minimum required depth buffer.
int get_depth_size() const;
//: Returns the minimum required stencil buffer.
int get_stencil_size() const;
//: Returns the minimum required red accumulation buffer.
int get_accum_red_size() const;
//: Returns the minimum required green accumulation buffer.
int get_accum_green_size() const;
//: Returns the minimum required blue accumulation buffer.
int get_accum_blue_size() const;
//: Returns the minimum required alpha accumulation buffer.
int get_accum_alpha_size() const;
//! Operations:
public:
//: Sets if only TrueColor and DirectColor visuals are considered.
//- <p>If not enabled, only PseudoColor and StaticColor visuals are considered.</p>
void set_rgba(bool value);
//: Sets if only double-buffered visuals are considered.
//- <p>If not enabled, only single-buffered visuals are considered.</p>
void set_doublebuffer(bool value);
//: Sets if only stereo visuals are to be considered.
//- <p>If not enabled, only monoscopic visuals are considered.</p>
void set_stereo(bool value);
//: Sets the desired color index buffer size.
//- <p>Ignored in GLX (X11) if the RGBA flag is set.</p>
//- <p>In WGL (Windows) it specifies the size of the color buffer, excluding the alpha bitplanes.</p>
void set_buffer_size(int value);
//: Sets the required buffer level.
//- <p>Buffer level zero corresponds to the main frame buffer of the display. Buffer
//- level one is the first overlay frame buffer, level two the second overlay frame
//- buffer, and so on. Negative buffer levels correspond to underlay frame buffers.</p>
void set_level(int value);
//: Sets the desired number of auxilary buffers.
//- <p>Visuals with the smallest number of auxiliary buffers that meets or exceeds
//- the specified number are preferred.</p>
void set_aux_buffers(int value);
//: Sets the minimum required red buffer.
//- <p>If this value is zero, the smallest available red buffer is preferred. Otherwise,
//- the largest available red buffer of at least the minimum size is preferred.</p>
void set_red_size(int value);
//: Sets the minimum required green buffer.
//- <p>If this value is zero, the smallest available green buffer is preferred. Otherwise,
//- the largest available green buffer of at least the minimum size is preferred.</p>
void set_green_size(int value);
//: Sets the minimum required blue buffer.
//- <p>If this value is zero, the smallest available blue buffer is preferred. Otherwise,
//- the largest available blue buffer of at least the minimum size is preferred.</p>
void set_blue_size(int value);
//: Sets the minimum required alpha buffer.
//- <p>If this value is zero, the smallest available alpha buffer is preferred. Otherwise,
//- the largest available alpha buffer of at least the minimum size is preferred.</p>
void set_alpha_size(int value);
//: Sets the minimum required depth buffer.
//- <p>If this value is zero, the smallest available depth buffer is preferred. Otherwise,
//- the largest available depth buffer of at least the minimum size is preferred.</p>
void set_depth_size(int value);
//: Sets the minimum required stencil buffer.
//- <p>If this value is zero, the smallest available stencil buffer is preferred. Otherwise,
//- the largest available stencil buffer of at least the minimum size is preferred.</p>
void set_stencil_size(int value);
//: Sets the minimum required red accumulation buffer.
//- <p>If this value is zero, the smallest available red accumulation buffer is preferred. Otherwise,
//- the largest available red accumulation buffer of at least the minimum size is preferred.</p>
void set_accum_red_size(int value);
//: Sets the minimum required green accumulation buffer.
//- <p>If this value is zero, the smallest available green accumulation buffer is preferred. Otherwise,
//- the largest available green accumulation buffer of at least the minimum size is preferred.</p>
void set_accum_green_size(int value);
//: Sets the minimum required blue accumulation buffer.
//- <p>If this value is zero, the smallest available blue accumulation buffer is preferred. Otherwise,
//- the largest available blue accumulation buffer of at least the minimum size is preferred.</p>
void set_accum_blue_size(int value);
//: Sets the minimum required alpha accumulation buffer.
//- <p>If this value is zero, the smallest available alpha accumulation buffer is preferred. Otherwise,
//- the largest available alpha accumulation buffer of at least the minimum size is preferred.</p>
void set_accum_alpha_size(int value);
//! Implementation:
private:
};
#endif
|