GNU Octave 11.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 
Loading...
Searching...
No Matches
oct-opengl.h
Go to the documentation of this file.
1////////////////////////////////////////////////////////////////////////
2//
3// Copyright (C) 2016-2026 The Octave Project Developers
4//
5// See the file COPYRIGHT.md in the top-level directory of this
6// distribution or <https://octave.org/copyright/>.
7//
8// This file is part of Octave.
9//
10// Octave is free software: you can redistribute it and/or modify it
11// under the terms of the GNU General Public License as published by
12// the Free Software Foundation, either version 3 of the License, or
13// (at your option) any later version.
14//
15// Octave is distributed in the hope that it will be useful, but
16// WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18// GNU General Public License for more details.
19//
20// You should have received a copy of the GNU General Public License
21// along with Octave; see the file COPYING. If not, see
22// <https://www.gnu.org/licenses/>.
23//
24////////////////////////////////////////////////////////////////////////
25
26#if ! defined (octave_oct_opengl_h)
27#define octave_oct_opengl_h 1
28
29#include "octave-config.h"
30
31#if defined (HAVE_OPENGL)
32
33# if defined (HAVE_GL_GL_H)
34# include <GL/gl.h>
35# elif defined (HAVE_OPENGL_GL_H) || defined (HAVE_FRAMEWORK_OPENGL)
36# include <OpenGL/gl.h>
37# endif
38
39# if defined (HAVE_GL_GLU_H)
40# include <GL/glu.h>
41# elif defined (HAVE_OPENGL_GLU_H) || defined (HAVE_FRAMEWORK_OPENGL)
42# include <OpenGL/glu.h>
43# endif
44
45# if defined (HAVE_GL_GLEXT_H)
46# include <GL/glext.h>
47# elif defined (HAVE_OPENGL_GLEXT_H) || defined (HAVE_FRAMEWORK_OPENGL)
48# include <OpenGL/glext.h>
49# endif
50
51#endif
52
54
56{
57public:
58
60
62
63 opengl_functions& operator = (const opengl_functions&) = default;
64
65 virtual ~opengl_functions () = default;
66
67#if defined (HAVE_OPENGL)
68
69 // If OpenGL is not available, opengl_functions will be a dummy
70 // class that does nothing. This makes the implementation of
71 // other things that rely on this class slightly simpler.
72
73 virtual void glAlphaFunc (GLenum fcn, GLclampf ref)
74 {
75 ::glAlphaFunc (fcn, ref);
76 }
77
78 virtual void glBegin (GLenum mode)
79 {
80 ::glBegin (mode);
81 }
82
83 virtual void glBindTexture (GLenum target, GLuint texture)
84 {
85 ::glBindTexture (target, texture);
86 }
87
88 virtual void glBitmap (GLsizei width, GLsizei height, GLfloat xorig,
89 GLfloat yorig, GLfloat xmove, GLfloat ymove,
90 const GLubyte *bitmap)
91 {
92 ::glBitmap (width, height, xorig, yorig, xmove, ymove, bitmap);
93 }
94
95 virtual void glBlendFunc (GLenum sfactor, GLenum dfactor)
96 {
97 ::glBlendFunc (sfactor, dfactor);
98 }
99
100#if defined (HAVE_GLBLENDFUNCSEPARATE)
101 virtual void glBlendFuncSeparate (GLenum sfactor, GLenum dfactor,
102 GLenum salpha, GLenum dalpha)
103 {
104 ::glBlendFuncSeparate (sfactor, dfactor, salpha, dalpha);
105 }
106#endif
107
108 virtual void glCallList (GLuint list)
109 {
110 ::glCallList (list);
111 }
112
113 virtual void glClearColor (GLclampf red, GLclampf green, GLclampf blue,
114 GLclampf alpha)
115 {
116 ::glClearColor (red, green, blue, alpha);
117 }
118
119 virtual void glClear (GLbitfield mask)
120 {
121 ::glClear (mask);
122 }
123
124 virtual void glClipPlane (GLenum plane, const GLdouble *equation)
125 {
126 ::glClipPlane (plane, equation);
127 }
128
129 virtual void glColor3dv (const GLdouble *v)
130 {
131 ::glColor3dv (v);
132 }
133
134 virtual void glColor3f (GLfloat red, GLfloat green, GLfloat blue)
135 {
136 ::glColor3f (red, green, blue);
137 }
138
139 virtual void glColor3fv (const GLfloat *v)
140 {
141 ::glColor3fv (v);
142 }
143
144 virtual void glColor4d (GLdouble red, GLdouble green, GLdouble blue,
145 GLdouble alpha)
146 {
147 ::glColor4d (red, green, blue, alpha);
148 }
149
150 virtual void glColor4f (GLfloat red, GLfloat green, GLfloat blue,
151 GLfloat alpha)
152 {
153 ::glColor4f (red, green, blue, alpha);
154 }
155
156 virtual void glColor4fv (const GLfloat *v)
157 {
158 ::glColor4fv (v);
159 }
160
161 virtual void glDeleteLists (GLuint list, GLsizei range)
162 {
163 ::glDeleteLists (list, range);
164 }
165
166 virtual void glDeleteTextures (GLsizei n, const GLuint *textures)
167 {
168 ::glDeleteTextures (n, textures);
169 }
170
171 virtual void glDepthFunc (GLenum fcn)
172 {
173 ::glDepthFunc (fcn);
174 }
175
176 virtual void glDisable (GLenum cap)
177 {
178 ::glDisable (cap);
179 }
180
181 virtual void glDrawPixels (GLsizei width, GLsizei height, GLenum format,
182 GLenum type, const GLvoid *pixels)
183 {
184 ::glDrawPixels (width, height, format, type, pixels);
185 }
186
187 virtual void glEdgeFlag (GLboolean flag)
188 {
189 ::glEdgeFlag (flag);
190 }
191
192 virtual void glEnable (GLenum cap)
193 {
194 ::glEnable (cap);
195 }
196
197 virtual void glEndList ()
198 {
199 ::glEndList ();
200 }
201
202 virtual void glEnd ()
203 {
204 ::glEnd ();
205 }
206
207 virtual void glFinish ()
208 {
209 ::glFinish ();
210 }
211
212 virtual GLuint glGenLists (GLsizei range)
213 {
214 return ::glGenLists (range);
215 }
216
217 virtual void glGenTextures (GLsizei n, GLuint *textures)
218 {
219 ::glGenTextures (n, textures);
220 }
221
222 virtual void glGetBooleanv (GLenum pname, GLboolean *data)
223 {
224 ::glGetBooleanv (pname, data);
225 }
226
227 virtual void glGetDoublev (GLenum pname, GLdouble *data)
228 {
229 ::glGetDoublev (pname, data);
230 }
231
232 virtual GLenum glGetError ()
233 {
234 return ::glGetError ();
235 }
236
237 virtual void glGetFloatv (GLenum pname, GLfloat *data)
238 {
239 ::glGetFloatv (pname, data);
240 }
241
242 virtual void glGetIntegerv (GLenum pname, GLint *data)
243 {
244 ::glGetIntegerv (pname, data);
245 }
246
247 virtual const GLubyte * glGetString (GLenum name)
248 {
249 return ::glGetString (name);
250 }
251
252 virtual void glHint (GLenum target, GLenum mode)
253 {
254 ::glHint (target, mode);
255 }
256
257 virtual void glInitNames ()
258 {
259 ::glInitNames ();
260 }
261
262 virtual GLboolean glIsEnabled (GLenum cap)
263 {
264 return ::glIsEnabled (cap);
265 }
266
267 virtual void glLightfv (GLenum light, GLenum pname, const GLfloat *params)
268 {
269 ::glLightfv (light, pname, params);
270 }
271
272 virtual void glLineStipple (GLint factor, GLushort pattern)
273 {
274 ::glLineStipple (factor, pattern);
275 }
276
277 virtual void glLineWidth (GLfloat width)
278 {
279 ::glLineWidth (width);
280 }
281
282 virtual void glLoadIdentity ()
283 {
284 ::glLoadIdentity ();
285 }
286
287 virtual void glMaterialf (GLenum face, GLenum pname, GLfloat param)
288 {
289 ::glMaterialf (face, pname, param);
290 }
291
292 virtual void glMaterialfv (GLenum face, GLenum pname, const GLfloat *params)
293 {
294 ::glMaterialfv (face, pname, params);
295 }
296
297 virtual void glMatrixMode (GLenum mode)
298 {
299 ::glMatrixMode (mode);
300 }
301
302 virtual void glMultMatrixd (const GLdouble *m)
303 {
304 ::glMultMatrixd (m);
305 }
306
307 virtual void glNewList (GLuint list, GLenum mode)
308 {
309 ::glNewList (list, mode);
310 }
311
312 virtual void glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz)
313 {
314 ::glNormal3d (nx, ny, nz);
315 }
316
317 virtual void glNormal3dv (const GLdouble *v)
318 {
319 ::glNormal3dv (v);
320 }
321
322 virtual void glOrtho (GLdouble left, GLdouble right, GLdouble bottom,
323 GLdouble top, GLdouble near_val, GLdouble far_val)
324 {
325 ::glOrtho (left, right, bottom, top, near_val, far_val);
326 }
327
328 virtual void glPixelStorei (GLenum pname, GLint param)
329 {
330 ::glPixelStorei (pname, param);
331 }
332
333 virtual void glPixelZoom (GLfloat xfactor, GLfloat yfactor)
334 {
335 ::glPixelZoom (xfactor, yfactor);
336 }
337
338 virtual void glPolygonMode (GLenum face, GLenum mode)
339 {
340 ::glPolygonMode (face, mode);
341 }
342
343 virtual void glPolygonOffset (GLfloat factor, GLfloat units)
344 {
345 ::glPolygonOffset (factor, units);
346 }
347
348 virtual void glPopAttrib ()
349 {
350 ::glPopAttrib ();
351 }
352
353 virtual void glPopMatrix ()
354 {
355 ::glPopMatrix ();
356 }
357
358 virtual void glPopName ()
359 {
360 ::glPopName ();
361 }
362
363 virtual void glPushAttrib (GLbitfield mask)
364 {
365 ::glPushAttrib (mask);
366 }
367
368 virtual void glPushMatrix ()
369 {
370 ::glPushMatrix ();
371 }
372
373 virtual void glPushName (GLuint name)
374 {
375 ::glPushName (name);
376 }
377
378 virtual void glRasterPos3d (GLdouble x, GLdouble y, GLdouble z)
379 {
380 ::glRasterPos3d (x, y, z);
381 }
382
383 virtual void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height,
384 GLenum format, GLenum type, GLvoid *pixels)
385 {
386 ::glReadPixels (x, y, width, height, format, type, pixels);
387 }
388
389 virtual GLint glRenderMode (GLenum mode)
390 {
391 return ::glRenderMode (mode);
392 }
393
394 virtual void glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
395 {
396 ::glRotated (angle, x, y, z);
397 }
398
399 virtual void glScaled (GLdouble x, GLdouble y, GLdouble z)
400 {
401 ::glScaled (x, y, z);
402 }
403
404 virtual void glScalef (GLfloat x, GLfloat y, GLfloat z)
405 {
406 ::glScalef (x, y, z);
407 }
408
409 virtual void glSelectBuffer (GLsizei size, GLuint *buffer)
410 {
411 ::glSelectBuffer (size, buffer);
412 }
413
414 virtual void glShadeModel (GLenum mode)
415 {
416 ::glShadeModel (mode);
417 }
418
419 virtual void glTexCoord2d (GLdouble s, GLdouble t)
420 {
421 ::glTexCoord2d (s, t);
422 }
423
424 virtual void glTexImage2D (GLenum target, GLint level, GLint internalFormat,
425 GLsizei width, GLsizei height, GLint border,
426 GLenum format, GLenum type, const GLvoid *pixels)
427 {
428 ::glTexImage2D (target, level, internalFormat, width, height, border,
429 format, type, pixels);
430 }
431
432 virtual void glTexParameteri (GLenum target, GLenum pname, GLint param)
433 {
434 ::glTexParameteri (target, pname, param);
435 }
436
437 virtual void glTranslated (GLdouble x, GLdouble y, GLdouble z)
438 {
439 ::glTranslated (x, y, z);
440 }
441
442 virtual void glTranslatef (GLfloat x, GLfloat y, GLfloat z)
443 {
444 ::glTranslatef (x, y, z);
445 }
446
447 virtual void glVertex2d (GLdouble x, GLdouble y)
448 {
449 ::glVertex2d (x, y);
450 }
451
452 virtual void glVertex3d (GLdouble x, GLdouble y, GLdouble z)
453 {
454 ::glVertex3d (x, y, z);
455 }
456
457 virtual void glVertex3dv (const GLdouble *v)
458 {
459 ::glVertex3dv (v);
460 }
461
462 virtual void glViewport (GLint x, GLint y, GLsizei width, GLsizei height)
463 {
464 ::glViewport (x, y, width, height);
465 }
466
467#endif
468};
469
470OCTAVE_END_NAMESPACE(octave)
471
472
473#endif
virtual void glPushName(GLuint name)
Definition oct-opengl.h:373
virtual GLboolean glIsEnabled(GLenum cap)
Definition oct-opengl.h:262
virtual void glHint(GLenum target, GLenum mode)
Definition oct-opengl.h:252
virtual void glGetIntegerv(GLenum pname, GLint *data)
Definition oct-opengl.h:242
virtual void glBegin(GLenum mode)
Definition oct-opengl.h:78
virtual void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
Definition oct-opengl.h:383
virtual void glClipPlane(GLenum plane, const GLdouble *equation)
Definition oct-opengl.h:124
virtual void glGetFloatv(GLenum pname, GLfloat *data)
Definition oct-opengl.h:237
virtual void glMatrixMode(GLenum mode)
Definition oct-opengl.h:297
virtual void glBindTexture(GLenum target, GLuint texture)
Definition oct-opengl.h:83
virtual void glEndList()
Definition oct-opengl.h:197
virtual ~opengl_functions()=default
virtual void glVertex2d(GLdouble x, GLdouble y)
Definition oct-opengl.h:447
virtual void glNewList(GLuint list, GLenum mode)
Definition oct-opengl.h:307
virtual void glPopMatrix()
Definition oct-opengl.h:353
virtual void glDeleteTextures(GLsizei n, const GLuint *textures)
Definition oct-opengl.h:166
virtual void glVertex3d(GLdouble x, GLdouble y, GLdouble z)
Definition oct-opengl.h:452
virtual void glLineStipple(GLint factor, GLushort pattern)
Definition oct-opengl.h:272
virtual void glLoadIdentity()
Definition oct-opengl.h:282
virtual void glPolygonOffset(GLfloat factor, GLfloat units)
Definition oct-opengl.h:343
virtual void glSelectBuffer(GLsizei size, GLuint *buffer)
Definition oct-opengl.h:409
virtual void glLineWidth(GLfloat width)
Definition oct-opengl.h:277
virtual void glColor3fv(const GLfloat *v)
Definition oct-opengl.h:139
virtual void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
Definition oct-opengl.h:462
virtual void glScalef(GLfloat x, GLfloat y, GLfloat z)
Definition oct-opengl.h:404
virtual void glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
Definition oct-opengl.h:144
virtual const GLubyte * glGetString(GLenum name)
Definition oct-opengl.h:247
virtual void glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
Definition oct-opengl.h:394
virtual void glGenTextures(GLsizei n, GLuint *textures)
Definition oct-opengl.h:217
virtual GLint glRenderMode(GLenum mode)
Definition oct-opengl.h:389
virtual void glTranslatef(GLfloat x, GLfloat y, GLfloat z)
Definition oct-opengl.h:442
virtual void glDisable(GLenum cap)
Definition oct-opengl.h:176
virtual void glCallList(GLuint list)
Definition oct-opengl.h:108
virtual void glTexCoord2d(GLdouble s, GLdouble t)
Definition oct-opengl.h:419
virtual void glDepthFunc(GLenum fcn)
Definition oct-opengl.h:171
virtual void glClear(GLbitfield mask)
Definition oct-opengl.h:119
virtual void glNormal3dv(const GLdouble *v)
Definition oct-opengl.h:317
virtual void glColor3f(GLfloat red, GLfloat green, GLfloat blue)
Definition oct-opengl.h:134
virtual void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
Definition oct-opengl.h:150
virtual void glVertex3dv(const GLdouble *v)
Definition oct-opengl.h:457
virtual void glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz)
Definition oct-opengl.h:312
virtual void glEnd()
Definition oct-opengl.h:202
virtual void glAlphaFunc(GLenum fcn, GLclampf ref)
Definition oct-opengl.h:73
virtual void glMaterialf(GLenum face, GLenum pname, GLfloat param)
Definition oct-opengl.h:287
virtual void glPolygonMode(GLenum face, GLenum mode)
Definition oct-opengl.h:338
virtual void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
Definition oct-opengl.h:113
virtual void glColor3dv(const GLdouble *v)
Definition oct-opengl.h:129
virtual GLuint glGenLists(GLsizei range)
Definition oct-opengl.h:212
virtual void glDeleteLists(GLuint list, GLsizei range)
Definition oct-opengl.h:161
virtual void glColor4fv(const GLfloat *v)
Definition oct-opengl.h:156
virtual void glTexParameteri(GLenum target, GLenum pname, GLint param)
Definition oct-opengl.h:432
virtual void glPopAttrib()
Definition oct-opengl.h:348
virtual void glEnable(GLenum cap)
Definition oct-opengl.h:192
virtual void glGetBooleanv(GLenum pname, GLboolean *data)
Definition oct-opengl.h:222
virtual void glBlendFunc(GLenum sfactor, GLenum dfactor)
Definition oct-opengl.h:95
virtual void glShadeModel(GLenum mode)
Definition oct-opengl.h:414
virtual void glEdgeFlag(GLboolean flag)
Definition oct-opengl.h:187
virtual void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val)
Definition oct-opengl.h:322
virtual void glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
Definition oct-opengl.h:88
virtual void glRasterPos3d(GLdouble x, GLdouble y, GLdouble z)
Definition oct-opengl.h:378
virtual void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
Definition oct-opengl.h:424
virtual void glGetDoublev(GLenum pname, GLdouble *data)
Definition oct-opengl.h:227
virtual void glPushAttrib(GLbitfield mask)
Definition oct-opengl.h:363
virtual void glMultMatrixd(const GLdouble *m)
Definition oct-opengl.h:302
virtual void glPixelStorei(GLenum pname, GLint param)
Definition oct-opengl.h:328
virtual void glPushMatrix()
Definition oct-opengl.h:368
virtual void glScaled(GLdouble x, GLdouble y, GLdouble z)
Definition oct-opengl.h:399
opengl_functions(const opengl_functions &)=default
virtual void glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
Definition oct-opengl.h:181
virtual void glPopName()
Definition oct-opengl.h:358
virtual void glLightfv(GLenum light, GLenum pname, const GLfloat *params)
Definition oct-opengl.h:267
virtual GLenum glGetError()
Definition oct-opengl.h:232
virtual void glTranslated(GLdouble x, GLdouble y, GLdouble z)
Definition oct-opengl.h:437
virtual void glInitNames()
Definition oct-opengl.h:257
virtual void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
Definition oct-opengl.h:292
virtual void glPixelZoom(GLfloat xfactor, GLfloat yfactor)
Definition oct-opengl.h:333
virtual void glFinish()
Definition oct-opengl.h:207
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
F77_RET_T const F77_DBLE * x
std::size_t format(std::ostream &os, const char *fmt,...)
Definition utils.cc:1514