Newer
Older
/***********************************************************************
* FXRuby -- the Ruby language bindings for the FOX GUI toolkit.
* Copyright (c) 2001-2009 by Lyle Johnson. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* For further information please contact the author by e-mail
* at "lyle@lylejohnson.name".
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
***********************************************************************/
class FXFont;
/// Visual describes pixel format of a drawable
class FXGLVisual : public FXVisual {
public:
%extend {
/// Construct default visual
FXGLVisual(FXApp* a,FXuint flags){
return new FXRbGLVisual(a,flags);
}
}
/**
* Test if OpenGL is possible, and what level is supported.
* Because of remote display capability, the display server may
* support a different level of OpenGL than the client; it may
* even support no OpenGL at all! This function returns the lesser
* of the client support level and the display server support level.
*/
%extend {
static FXbool supported(FXApp* application){
int major,minor;
FXbool answer=FXGLVisual::supported(application,major,minor);
return rb_ary_new3(3,answer?Qtrue:Qfalse,INT2NUM(major),INT2NUM(minor));
}
}
/// Get sizes for bit-planes
FXint getRedSize() const;
FXint getGreenSize() const;
FXint getBlueSize() const;
FXint getAlphaSize() const;
FXint getDepthSize() const;
FXint getStencilSize() const;
FXint getAccumRedSize() const;
FXint getAccumGreenSize() const;
FXint getAccumBlueSize() const;
FXint getAccumAlphaSize() const;
/// Set sizes for bit-planes
void setRedSize(FXint rs);
void setGreenSize(FXint gs);
void setBlueSize(FXint bs);
void setAlphaSize(FXint as);
void setDepthSize(FXint ds);
void setStencilSize(FXint ss);
void setAccumRedSize(FXint rs);
void setAccumGreenSize(FXint gs);
void setAccumBlueSize(FXint bs);
void setAccumAlphaSize(FXint as);
/// Get ACTUAL sizes for bit-planes
FXint getActualRedSize() const;
FXint getActualGreenSize() const;
FXint getActualBlueSize() const;
FXint getActualAlphaSize() const;
FXint getActualDepthSize() const;
FXint getActualStencilSize() const;
FXint getActualAccumRedSize() const;
FXint getActualAccumGreenSize() const;
FXint getActualAccumBlueSize() const;
FXint getActualAccumAlphaSize() const;
/// Is it double buffered?
FXbool isDoubleBuffer() const;
/// Is it stereo?
FXbool isStereo() const;
/// Is it hardware-accelerated?
FXbool isAccelerated() const;
/// Does it swap by copying instead of flipping buffers?
FXbool isBufferSwapCopy() const;
/// Destructor
virtual ~FXGLVisual();
};
DECLARE_FXOBJECT_VIRTUALS(FXGLVisual)
DECLARE_FXID_VIRTUALS(FXGLVisual)
/// Create a display list of bitmaps from font glyphs in a font
void glUseFXFont(FXFont* font,int first,int count,int list);