Doxygen Source Code Documentation
glut_init.c File Reference
#include <stdlib.h>#include <string.h>#include <stdio.h>#include <X11/Xlib.h>#include <GL/glut.h>#include "glutint.h"Go to the source code of this file.
Functions | |
| void | __glutOpenXConnection (char *display) |
| void | __glutInitTime (struct timeval *beginning) |
| void | removeArgs (int *argcp, char **argv, int numToRemove) |
| void | glutInit (int *argcp, char **argv) |
| void | glutInitWindowPosition (int x, int y) |
| void | glutInitWindowSize (int width, int height) |
| void | glutInitDisplayMode (unsigned int mask) |
Variables | |
| char * | __glutProgramName = NULL |
| int | __glutArgc = 0 |
| char ** | __glutArgv = NULL |
| char * | __glutGeometry = NULL |
| Display * | __glutDisplay = NULL |
| int | __glutScreen |
| Window | __glutRoot |
| int | __glutScreenHeight |
| int | __glutScreenWidth |
| GLboolean | __glutIconic = GL_FALSE |
| GLboolean | __glutDebug = GL_FALSE |
| unsigned int | __glutDisplayMode |
| int | __glutConnectionFD |
| XSizeHints | __glutSizeHints = {0} |
| int | __glutInitWidth = 300 |
| int | __glutInitHeight = 300 |
| int | __glutInitX = -1 |
| int | __glutInitY = -1 |
| GLboolean | __glutForceDirect = GL_FALSE |
| GLboolean | __glutTryDirect = GL_TRUE |
| Atom | __glutWMDeleteWindow |
| Bool | synchronize = False |
Function Documentation
|
|
Definition at line 80 of file glut_init.c. References GETTIMEOFDAY. Referenced by glutGet(), and glutInit().
00081 {
00082 static int beenhere = 0;
00083 static struct timeval genesis;
00084
00085 if (!beenhere) {
00086 GETTIMEOFDAY(&genesis);
00087 beenhere = 1;
00088 }
00089 *beginning = genesis;
00090 }
|
|
|
Definition at line 55 of file glut_init.c. References __glutConnectionFD, __glutDisplay, __glutFatalError(), __glutRoot, __glutScreen, __glutScreenHeight, __glutScreenWidth, __glutWMDeleteWindow, and display. Referenced by __glutCreateWindow(), glutCreateMenu(), and glutInit().
00056 {
00057 int errorBase, eventBase;
00058
00059 __glutDisplay = XOpenDisplay(display);
00060 if (!__glutDisplay)
00061 __glutFatalError("could not open display: %s",
00062 XDisplayName(display));
00063 if (synchronize)
00064 XSynchronize(__glutDisplay, True);
00065 if (!glXQueryExtension(__glutDisplay, &errorBase, &eventBase))
00066 __glutFatalError(
00067 "OpenGL GLX extension not supported by display: %s",
00068 XDisplayName(display));
00069 __glutScreen = DefaultScreen(__glutDisplay);
00070 __glutRoot = RootWindow(__glutDisplay, __glutScreen);
00071 __glutScreenWidth = DisplayWidth(__glutDisplay, __glutScreen);
00072 __glutScreenHeight = DisplayHeight(__glutDisplay,
00073 __glutScreen);
00074 __glutConnectionFD = ConnectionNumber(__glutDisplay);
00075 __glutWMDeleteWindow = XInternAtom(__glutDisplay,
00076 "WM_DELETE_WINDOW", False);
00077 }
|
|
||||||||||||
|
Definition at line 105 of file glut_init.c. References __glutArgc, __glutArgv, __glutDebug, __glutDisplay, __glutFatalError(), __glutForceDirect, __glutIconic, __glutInitHeight, __glutInitTime(), __glutInitWidth, __glutInitX, __glutInitY, __glutOpenXConnection(), __glutProgramName, __glutScreen, __glutSizeHints, __glutTryDirect, __glutWarning(), display, flags, glutInitWindowPosition(), glutInitWindowSize(), i, malloc, removeArgs(), and synchronize.
00106 {
00107 char *display = NULL;
00108 char *str;
00109 struct timeval unused;
00110 int i;
00111
00112 if (__glutDisplay) {
00113 __glutWarning("glutInit being called a second time.");
00114 return;
00115 }
00116 /* determine temporary program name */
00117 str = strrchr(argv[0], '/');
00118 if (str == NULL) {
00119 __glutProgramName = argv[0];
00120 } else {
00121 __glutProgramName = str + 1;
00122 }
00123
00124 /* make private copy of command line arguments */
00125 __glutArgc = *argcp;
00126 __glutArgv = (char **) malloc(__glutArgc * sizeof(char *));
00127 if (!__glutArgv)
00128 __glutFatalError("out of memory.");
00129 for (i = 0; i < __glutArgc; i++) {
00130 __glutArgv[i] = strdup(argv[i]);
00131 if (!__glutArgv[i])
00132 __glutFatalError("out of memory.");
00133 }
00134
00135 /* determine permanent program name */
00136 str = strrchr(__glutArgv[0], '/');
00137 if (str == NULL) {
00138 __glutProgramName = __glutArgv[0];
00139 } else {
00140 __glutProgramName = str + 1;
00141 }
00142
00143 /* parse arguments for standard options */
00144 for (i = 1; i < __glutArgc; i++) {
00145 if (!strcmp(__glutArgv[i], "-display")) {
00146 if (++i >= __glutArgc) {
00147 __glutFatalError(
00148 "follow -display option with X display name.");
00149 }
00150 display = __glutArgv[i];
00151 removeArgs(argcp, &argv[1], 2);
00152 } else if (!strcmp(__glutArgv[i], "-geometry")) {
00153 int flags, x, y, width, height;
00154
00155 if (++i >= __glutArgc) {
00156 __glutFatalError(
00157 "follow -geometry option with geometry parameter.");
00158 }
00159 /* Fix bogus "{width|height} may be used before set"
00160 warning */
00161 width = 0;
00162 height = 0;
00163
00164 flags = XParseGeometry(__glutArgv[i], &x, &y,
00165 (unsigned int *) &width, (unsigned int *) &height);
00166 if (WidthValue & flags) {
00167 /* Careful because X does not allow zero or negative
00168 width windows */
00169 if (width > 0)
00170 __glutInitWidth = width;
00171 }
00172 if (HeightValue & flags) {
00173 /* Careful because X does not allow zero or negative
00174 height windows */
00175 if (height > 0)
00176 __glutInitHeight = height;
00177 }
00178 glutInitWindowSize(__glutInitWidth, __glutInitHeight);
00179 if (XValue & flags) {
00180 if (XNegative & flags)
00181 x = DisplayWidth(__glutDisplay, __glutScreen) +
00182 x - __glutSizeHints.width;
00183 /* Play safe: reject negative X locations */
00184 if (x >= 0)
00185 __glutInitX = x;
00186 }
00187 if (YValue & flags) {
00188 if (YNegative & flags)
00189 y = DisplayHeight(__glutDisplay, __glutScreen) +
00190 y - __glutSizeHints.height;
00191 /* Play safe: reject negative Y locations */
00192 if (y >= 0)
00193 __glutInitY = y;
00194 }
00195 glutInitWindowPosition(__glutInitX, __glutInitY);
00196 removeArgs(argcp, &argv[1], 2);
00197 } else if (!strcmp(__glutArgv[i], "-direct")) {
00198 if (!__glutTryDirect)
00199 __glutFatalError(
00200 "cannot force both direct and indirect rendering.");
00201 __glutForceDirect = GL_TRUE;
00202 removeArgs(argcp, &argv[1], 1);
00203 } else if (!strcmp(__glutArgv[i], "-indirect")) {
00204 if (__glutForceDirect)
00205 __glutFatalError(
00206 "cannot force both direct and indirect rendering.");
00207 __glutTryDirect = GL_FALSE;
00208 removeArgs(argcp, &argv[1], 1);
00209 } else if (!strcmp(__glutArgv[i], "-iconic")) {
00210 __glutIconic = GL_TRUE;
00211 removeArgs(argcp, &argv[1], 1);
00212 } else if (!strcmp(__glutArgv[i], "-gldebug")) {
00213 __glutDebug = GL_TRUE;
00214 removeArgs(argcp, &argv[1], 1);
00215 } else if (!strcmp(__glutArgv[i], "-sync")) {
00216 synchronize = GL_TRUE;
00217 removeArgs(argcp, &argv[1], 1);
00218 } else {
00219 /* once unknown option encountered, stop command line
00220 processing */
00221 break;
00222 }
00223 }
00224 __glutOpenXConnection(display);
00225 __glutInitTime(&unused);
00226 }
|
|
|
Definition at line 257 of file glut_init.c. References __glutDisplayMode.
00258 {
00259 __glutDisplayMode = mask;
00260 }
|
|
||||||||||||
|
Definition at line 229 of file glut_init.c. References __glutInitX, __glutInitY, and __glutSizeHints. Referenced by glutInit().
00230 {
00231 __glutInitX = x;
00232 __glutInitY = y;
00233 if (x >= 0 && y >= 0) {
00234 __glutSizeHints.x = x;
00235 __glutSizeHints.y = y;
00236 __glutSizeHints.flags |= USPosition;
00237 } else {
00238 __glutSizeHints.flags &= ~USPosition;
00239 }
00240 }
|
|
||||||||||||
|
Definition at line 243 of file glut_init.c. References __glutInitHeight, __glutInitWidth, and __glutSizeHints. Referenced by glutInit().
00244 {
00245 __glutInitWidth = width;
00246 __glutInitHeight = height;
00247 if (width > 0 && height > 0) {
00248 __glutSizeHints.width = width;
00249 __glutSizeHints.height = height;
00250 __glutSizeHints.flags |= USSize;
00251 } else {
00252 __glutSizeHints.flags &= ~USSize;
00253 }
00254 }
|
|
||||||||||||||||
|
Definition at line 93 of file glut_init.c. References i. Referenced by glutInit().
|
Variable Documentation
|
|
Definition at line 18 of file glut_init.c. Referenced by glutInit(). |
|
|
Definition at line 19 of file glut_init.c. Referenced by glutInit(). |
|
|
Definition at line 30 of file glut_init.c. Referenced by __glutOpenXConnection(). |
|
|
Definition at line 27 of file glut_init.c. Referenced by glutInit(). |
|
|
Definition at line 21 of file glut_init.c. Referenced by __glutOpenXConnection(), and glutInit(). |
|
|
Initial value: Definition at line 28 of file glut_init.c. Referenced by glutInitDisplayMode(). |
|
|
Definition at line 34 of file glut_init.c. Referenced by glutInit(). |
|
|
Definition at line 20 of file glut_init.c. |
|
|
Definition at line 26 of file glut_init.c. Referenced by glutInit(). |
|
|
Definition at line 32 of file glut_init.c. Referenced by glutInit(), and glutInitWindowSize(). |
|
|
Definition at line 32 of file glut_init.c. Referenced by glutInit(), and glutInitWindowSize(). |
|
|
Definition at line 33 of file glut_init.c. Referenced by glutInit(), and glutInitWindowPosition(). |
|
|
Definition at line 33 of file glut_init.c. Referenced by glutInit(), and glutInitWindowPosition(). |
|
|
Definition at line 17 of file glut_init.c. Referenced by glutInit(). |
|
|
Definition at line 23 of file glut_init.c. Referenced by __glutOpenXConnection(). |
|
|
Definition at line 22 of file glut_init.c. Referenced by __glutOpenXConnection(), and glutInit(). |
|
|
Definition at line 24 of file glut_init.c. Referenced by __glutOpenXConnection(). |
|
|
Definition at line 25 of file glut_init.c. Referenced by __glutOpenXConnection(). |
|
|
Definition at line 31 of file glut_init.c. Referenced by glutInit(), glutInitWindowPosition(), and glutInitWindowSize(). |
|
|
Definition at line 35 of file glut_init.c. Referenced by glutInit(). |
|
|
Definition at line 36 of file glut_init.c. Referenced by __glutOpenXConnection(). |
|
|
Definition at line 38 of file glut_init.c. Referenced by glutInit(). |