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 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
|
#ifndef _H_os_gl
#define _H_os_gl
#include"os_predef.h"
#include"os_proprietary.h"
#define _PYMOL_ARB_SHADERS
#define GL_LABEL_SCREEN_SHADER 0xfff0
#define GL_LABEL_SHADER 0xfffa
#define GL_BACKGROUND_SHADER 0xfffb
#define GL_DEFAULT_SHADER_SCREEN 0xfffc
#define GL_DEFAULT_SHADER 0xfffd
#define GL_SHADER_LIGHTING 0xfffe
#define GL_SCREEN_SHADER 0xfff1
#define GL_RAMP_SHADER 0xfff2
#ifndef WIN32
#define GL_GLEXT_PROTOTYPES
#endif
#include<GL/glew.h>
#include<GL/gl.h>
#include<GL/glu.h>
#include<GL/glext.h>
#define GLDOUBLEMULTMATRIX glMultMatrixd
#define GLDOUBLETRANSLATE glTranslated
#ifdef PURE_OPENGL_ES_2
#define GLLIGHTMODELI(arg1, arg2) /* nothing */
#else
#define GLLIGHTMODELI glLightModeli
#endif
void PyMOLReadPixels(GLint x,
GLint y,
GLsizei width,
GLsizei height, GLenum format, GLenum type, GLvoid * pixels);
void PyMOLDrawPixels(GLsizei width,
GLsizei height, GLenum format, GLenum type, const GLvoid * pixels);
#define P_GLUT_BUTTON_SCROLL_FORWARD 3
#define P_GLUT_BUTTON_SCROLL_BACKWARD 4
#define P_GLUT_DOUBLE_LEFT 200
#define P_GLUT_DOUBLE_MIDDLE 201
#define P_GLUT_DOUBLE_RIGHT 202
#define P_GLUT_SINGLE_LEFT 100
#define P_GLUT_SINGLE_MIDDLE 101
#define P_GLUT_SINGLE_RIGHT 102
int PyMOLCheckOpenGLErr(const char *pos);
/* determine whether or not we have a real GLUT */
#ifdef _PYMOL_NO_GLUT
#define _PYMOL_PRETEND_GLUT
#endif
#ifdef _PYMOL_ACTIVEX_OLD
#define _PYMOL_WX_GLUT
#endif
/*
#ifdef _EPYMOL
#define _PYMOL_WX_GLUT
#endif
*/
#ifdef _PYMOL_MIN_GLUT
#define _PYMOL_PRETEND_GLUT
#endif
#ifdef _PYMOL_WX_GLUT
#define _PYMOL_PRETEND_GLUT
#define _PYMOL_PRETEND_GLUT_FONT
#endif
#ifdef _PYMOL_NO_MAIN
#define _PYMOL_PRETEND_GLUT
#define _PYMOL_NO_GLUT
#endif
#ifndef _PYMOL_PRETEND_GLUT
/* ============ REAL GLUT BEING USED ============= */
#ifndef _PYMOL_OSX
#include<GL/glut.h>
#else
#import <GLUT/glut.h>
#endif
#ifdef FREEGLUT
#include<GL/freeglut_ext.h>
#endif
/* These are the only glut constants and functions that PyMOL uses ... */
#define P_GLUT_ACTIVE_ALT GLUT_ACTIVE_ALT
#define P_GLUT_ACTIVE_CTRL GLUT_ACTIVE_CTRL
#define P_GLUT_ACTIVE_SHIFT GLUT_ACTIVE_SHIFT
#define P_GLUT_BITMAP_8_BY_13 GLUT_BITMAP_8_BY_13
#define P_GLUT_DEPTH GLUT_DEPTH
#define P_GLUT_DISPLAY_MODE_POSSIBLE GLUT_DISPLAY_MODE_POSSIBLE
#define P_GLUT_DOUBLE GLUT_DOUBLE
#define P_GLUT_DOWN GLUT_DOWN
#define P_GLUT_KEY_DOWN GLUT_KEY_DOWN
#define P_GLUT_KEY_LEFT GLUT_KEY_LEFT
#define P_GLUT_KEY_RIGHT GLUT_KEY_RIGHT
#define P_GLUT_KEY_UP GLUT_KEY_UP
#define P_GLUT_LEFT_BUTTON GLUT_LEFT_BUTTON
#define P_GLUT_MIDDLE_BUTTON GLUT_MIDDLE_BUTTON
#define P_GLUT_RGBA GLUT_RGBA
#define P_GLUT_RIGHT_BUTTON GLUT_RIGHT_BUTTON
#define P_GLUT_STEREO GLUT_STEREO
#define P_GLUT_UP GLUT_UP
#define P_GLUT_MULTISAMPLE GLUT_MULTISAMPLE
#define P_GLUT_STENCIL GLUT_STENCIL
#define P_GLUT_ACCUM GLUT_ACCUM
#define P_GLUT_WINDOW_X GLUT_WINDOW_X
#define P_GLUT_WINDOW_Y GLUT_WINDOW_Y
#define P_GLUT_WINDOW_WIDTH GLUT_WINDOW_WIDTH
#define P_GLUT_WINDOW_HEIGHT GLUT_WINDOW_HEIGHT
#define P_GLUT_SCREEN_HEIGHT GLUT_SCREEN_HEIGHT
#define P_GLUT_SCREEN_WIDTH GLUT_SCREEN_WIDTH
#define P_GLUT_WINDOW_BORDER_WIDTH GLUT_WINDOW_BORDER_WIDTH
#define P_GLUT_WINDOW_HEADER_HEIGHT GLUT_WINDOW_HEADER_HEIGHT
#define p_glutGameModeString glutGameModeString
#define p_glutEnterGameMode glutEnterGameMode
#define p_glutLeaveGameMode glutLeaveGameMode
#define p_glutBitmapCharacter glutBitmapCharacter
#define p_glutSwapBuffers glutSwapBuffers
#define p_glutCreateWindow glutCreateWindow
#define p_glutPopWindow glutPopWindow
#define p_glutShowWindow glutShowWindow
#define p_glutHideWindow glutHideWindow
#define p_glutReshapeWindow glutReshapeWindow
#define p_glutDestroyWindow glutDestroyWindow
#define p_glutFullScreen glutFullScreen
#define p_glutPostRedisplay glutPostRedisplay
#define p_glutInit glutInit
#define p_glutInitDisplayMode glutInitDisplayMode
#define p_glutInitWindowPosition glutInitWindowPosition
#define p_glutInitWindowSize glutInitWindowSize
#define p_glutPositionWindow glutPositionWindow
#define p_glutGet glutGet
#define p_glutGetModifiers glutGetModifiers
#define p_glutDisplayFunc glutDisplayFunc
#define p_glutReshapeFunc glutReshapeFunc
#define p_glutKeyboardFunc glutKeyboardFunc
#define p_glutMouseFunc glutMouseFunc
#define p_glutMotionFunc glutMotionFunc
#define p_glutPassiveMotionFunc glutPassiveMotionFunc
#define p_glutSpecialFunc glutSpecialFunc
#define p_glutIdleFunc glutIdleFunc
#define p_glutMainLoop glutMainLoop
#else
/* we're pretending we have glut...*/
int p_glutGet(GLenum type);
/* ============ GLUT EMULATION MODE ============= */
#ifndef _PYMOL_NO_GLUT
#define P_GLUT_IDLE_EVENT 0
#define P_GLUT_DISPLAY_EVENT 1
#define P_GLUT_RESHAPE_EVENT 2
#define P_GLUT_MOUSE_EVENT 3
#define P_GLUT_MOTION_EVENT 4
#define P_GLUT_CHAR_EVENT 5
#define P_GLUT_SPECIAL_EVENT 6
#define P_GLUT_PASSIVE_MOTION_EVENT 7
typedef struct {
int event_code;
int x, y;
int input, state, mod;
} p_glut_event;
/* here is the pretend GLUT event handler */
void p_glutHandleEvent(p_glut_event * ev);
int p_glutGetRedisplay(void);
#endif
/* here is the interface and constants for pretend or no GLUT */
#define P_GLUT_RGBA 0
#define P_GLUT_DOUBLE 2
#define P_GLUT_ACTIVE_ALT 4
#define P_GLUT_ACTIVE_CTRL 2
#define P_GLUT_ACTIVE_SHIFT 1
#define P_GLUT_BITMAP_8_BY_13 ((void*)3)
#define P_GLUT_DEPTH 16
#define P_GLUT_DISPLAY_MODE_POSSIBLE 400
#define P_GLUT_DOWN 0
#define P_GLUT_UP 1
#define P_GLUT_STEREO 256
#define P_GLUT_MULTISAMPLE 128
#define P_GLUT_STENCIL 32
#define P_GLUT_KEY_F1 1
#define P_GLUT_KEY_F2 2
#define P_GLUT_KEY_F3 3
#define P_GLUT_KEY_F4 4
#define P_GLUT_KEY_F5 5
#define P_GLUT_KEY_F6 6
#define P_GLUT_KEY_F7 7
#define P_GLUT_KEY_F8 8
#define P_GLUT_KEY_F9 9
#define P_GLUT_KEY_F10 10
#define P_GLUT_KEY_F11 11
#define P_GLUT_KEY_F12 12
#define P_GLUT_KEY_LEFT 100
#define P_GLUT_KEY_UP 101
#define P_GLUT_KEY_RIGHT 102
#define P_GLUT_KEY_DOWN 103
#define P_GLUT_KEY_PAGE_UP 104
#define P_GLUT_KEY_PAGE_DOWN 105
#define P_GLUT_KEY_HOME 106
#define P_GLUT_KEY_END 107
#define P_GLUT_KEY_INSERT 108
#define P_GLUT_LEFT_BUTTON 0
#define P_GLUT_MIDDLE_BUTTON 1
#define P_GLUT_RIGHT_BUTTON 2
#define P_GLUT_WINDOW_X 5
#define P_GLUT_WINDOW_Y 6
#define P_GLUT_WINDOW_WIDTH 7
#define P_GLUT_WINDOW_HEIGHT 8
#define P_GLUT_SCREEN_WIDTH 9
#define P_GLUT_SCREEN_HEIGHT 10
#define P_GLUT_WINDOW_BORDER_WIDTH 11
#define P_GLUT_WINDOW_HEADER_HEIGHT 12
#ifndef _PYMOL_NO_GLUT
void p_glutGameModeString(char *str);
void p_glutEnterGameMode(void);
void p_glutLeaveGameMode(void);
void p_glutBitmapCharacter(void *font, int character);
void p_glutSwapBuffers(void);
int p_glutCreateWindow(const char *title); /* NOTE: once this function called,
* we need to have a valid GL rendering context */
void p_glutPopWindow(void);
void p_glutShowWindow(void);
void p_glutReshapeWindow(int width, int height);
void p_glutDestroyWindow(int theWindow);
void p_glutFullScreen(void);
void p_glutPostRedisplay(void);
void p_glutInit(int *argcp, char **argv);
void p_glutInitDisplayMode(unsigned int mode);
void p_glutInitDisplayString(const char *string);
void p_glutInitWindowPosition(int x, int y);
void p_glutInitWindowSize(int width, int height);
int p_glutGet(GLenum type);
int p_glutGetModifiers(void);
void p_glutDisplayFunc(void (*func) (void));
void p_glutReshapeFunc(void (*func) (int width, int height));
void p_glutKeyboardFunc(void (*func) (unsigned char key, int x, int y));
void p_glutMouseFunc(void (*func) (int button, int state, int x, int y));
void p_glutMotionFunc(void (*func) (int x, int y));
void p_glutSpecialFunc(void (*func) (int key, int x, int y));
void p_glutIdleFunc(void (*func) (void));
void p_glutPositionWindow(int x, int y);
void p_glutMainLoop(void);
#endif
#endif
#define GL_C_INT_TYPE uint
#define GL_C_INT_ENUM GL_UNSIGNED_INT
#define SceneGLClearColor(red,green,blue,alpha) glClearColor(red,green,blue,alpha);
#ifndef GL_FRAGMENT_PROGRAM_ARB
#define GL_FRAGMENT_PROGRAM_ARB 0x8804
#endif
#endif
|