/usr/include/Gem/Gem/Manager.h is in gem-dev 1:0.93.3-10.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 | /*-----------------------------------------------------------------
LOG
GEM - Graphics Environment for Multimedia
The base functions and structures
Also includes gemwin header file
Copyright (c) 1997-2000 Mark Danks.mark@danks.org
Copyright (c) Günther Geiger. geiger@epy.co.at
Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.
-----------------------------------------------------------------*/
#ifndef _INCLUDE__GEM_GEM_MANAGER_H_
#define _INCLUDE__GEM_GEM_MANAGER_H_
#include "Gem/GemGL.h"
#include "Utils/GLUtil.h"
#include "Gem/ExportDef.h"
#include <string>
class gemhead;
class GemState;
class WindowInfo;
namespace gem {
class Context;
};
/*-----------------------------------------------------------------
-------------------------------------------------------------------
CLASS
GemMan
A static class to create windows, etc.
DESCRIPTION
-----------------------------------------------------------------*/
class GEM_EXTERN GemMan
{
public:
//////////
// Should only be called once (usually by GemSetup)
static void initGem(void);
//////////
static void addObj(gemhead *obj, float priority);
//////////
static void removeObj(gemhead *obj, float priority);
//////////
// Is there a window.
static int windowExists(void);
//////////
// Are we rendering.
static int getRenderState(void);
//////////
// is there a context (has its meaning under X)
static void createContext(char* disp);
static int contextExists(void);
//////////
// If an object needs to know if the window changed.
// This is important for display lists.
static int windowNumber(void);
//////////
// reset to the initial state
static void resetState(void);
//////////
// Just send out one frame (if double buffered, will swap buffers)
static void render(void *);
static void renderChain(t_symbol *head, bool start);
static void renderChain(t_symbol *head, GemState *state);
//////////
// Start a clock to do rendering.
static void startRendering(void);
//////////
// Stop the clock to do rendering.
static void stopRendering(void);
//////////
// Create the window with the current parameters
static int createWindow(char* disp = 0);
//////////
// Destroy the window
static void destroyWindow(void);
// Destroy the window after a minimal delay
static void destroyWindowSoon(void);
//////////
// Swap the buffers.
// If single buffered, just clears the window
static void swapBuffers(void);
//////////
// Set the frame rate
static void frameRate(float framespersecond);
//////////
// Get the frame rate
static float getFramerate(void);
static int getProfileLevel(void);
static void getDimen(int*width, int*height);
static void getRealDimen(int*width, int*height);
static void getOffset(int*x, int*y);
//////////
// Turn on/off lighting
static void lightingOnOff(int state);
//////////
// Turn on/off cursor
static void cursorOnOff(int state);
//////////
// Turn on/off topmost position
static void topmostOnOff(int state);
//////////
// Request a lighting value - it is yours until you free it.
// The return can be 0, in which there are too many lights
// [in] specific - If you want a specific light. == 0 means that you don't care.
static GLenum requestLight(int specific = 0);
//////////
// Free a lighting value
static void freeLight(GLenum lightNum);
//////////
// Print out information
static void printInfo(void);
//////////
static void fillGemState(GemState &);
static int texture_rectangle_supported;
enum GemStackId { STACKMODELVIEW, STACKCOLOR, STACKTEXTURE, STACKPROJECTION };
static GLint maxStackDepth[4]; // for push/pop of matrix-stacks
static float m_perspect[6]; // values for the perspective matrix
static float m_lookat[9]; // values for the lookat matrix
// LATER make this private (right now it is needed in gem2pdp)
static int m_buffer; // single(1) or double(2)
private:
//////////
// computer and window information
static std::string m_title; // title to be displayed
static int m_fullscreen; // fullscreen (1) or not (0!)
static int m_menuBar; // hide (0), show(1), hide but autoshow(-1)
static int m_secondscreen; // set the second screen
static int m_height; // window height
static int m_width; // window width
static int m_w; // the real window width (reported by gemCreateWindow())
static int m_h; // the real window height
static int m_xoffset; // window offset (x)
static int m_yoffset; // window offset (y)
static int m_border; // window border
static int m_stereo; // stereoscopic
static int m_profile; // off(0), on(1), w/o image caching(2)
static int m_rendering;
static float m_fog; // fog density
enum FOG_TYPE
{ FOG_OFF = 0, FOG_LINEAR, FOG_EXP, FOG_EXP2 };
static FOG_TYPE m_fogMode; // what kind of fog we have
static GLfloat m_fogColor[4]; // colour of the fog
static float m_fogStart; // start of the linear fog
static float m_fogEnd; // start of the linear fog
static float m_motionBlur; // motion-blur factor in double-buffer mode
static float fps;
static int fsaa;
static bool pleaseDestroy;
//////////
// Changing these variables is likely to crash GEM
// This is current rendering window information
// The window is created and destroyed by the user, so
// if there is no window, this will contain NULL pointers.
static WindowInfo &getWindowInfo(void);
//////////
// Changing these variables is likely to crash GEM
// This is constant rendering window information
// This window is always avaliable (although not visible)
static WindowInfo &getConstWindowInfo(void);
static int createConstWindow(char* disp = 0);
// gemwin is allowed to modifying "global" window attributes
friend class gemwin;
friend class gem::Context;
static GLfloat m_clear_color[4]; // the frame buffer clear
static GLbitfield m_clear_mask; // the clear bitmask
static GLfloat m_mat_ambient[4]; // default ambient material
static GLfloat m_mat_specular[4]; // default specular material
static GLfloat m_mat_shininess; // default shininess material
static GLfloat m_stereoSep; // stereo seperation
static GLfloat m_stereoFocal; // distance to focal point
static bool m_stereoLine; // draw a line between 2 stereo-screens
static double m_lastRenderTime; // the time of the last rendered frame
// gemwin should not touch the following member variables and member functions
static int m_windowState;
static int m_windowNumber;
static int m_windowContext;
static int m_cursor;
static int m_topmost;
static void windowInit(void);
static void windowCleanup(void);
static void resetValues(void);
static void resizeCallback(int xsize, int ysize, void*);
static void dispatchWinmessCallback(void);
//////////
// check for supported openGL extensions we might need
static void checkOpenGLExtensions(void);
};
#endif
|