This file is indexed.

/usr/include/geomview/private/mgopenglP.h is in libgeomview-dev 1.9.4-3.

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
/* Copyright (C) 1992-1998 The Geometry Center
 * Copyright (C) 1998-2000 Stuart Levy, Tamara Munzner, Mark Phillips
 *
 * This file is part of Geomview.
 * 
 * Geomview 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, or (at your option)
 * any later version.
 * 
 * Geomview 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 Geomview; see the file COPYING.  If not, write
 * to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
 * USA, or visit http://www.gnu.org.
 */


/* Authors: Charlie Gunn, Stuart Levy, Tamara Munzner, Mark Phillips */

#include "mgopengl.h"

#ifdef GLUT
# include <GL/glut.h>
#else
# define GL_GLEXT_PROTOTYPES
# include <GL/gl.h>
# include <GL/glu.h>
# include <GL/glx.h>
#endif

#include "bsptree.h"

enum { SGL=0, DBL=1 };

typedef struct mgopenglcontext {
  struct mgcontext mgctx;	/* The mgcontext */
  int born;			/* Has window been displayed on the screen? */
  int win;			/* GL window ID, or 0 */
  double zmin, zmax;		/* max z-buffer value */
  ColorA Cd;			/* Cached diffuse color = mat->diffuse * Kd */
  int lmcolor;			/* lmcolor: GL_DIFFUSE or XXX lmc_COLOR */

  double znudge;		/* _mgc.zfnudge in integer Z-buffer units */
  double znear, zfar;		/* Current Z-buffer glDepthRange(, $2) limits */
  int oldopts;			/* For knowing when we need to reconfigure */
  vvec room;			/* Scratch space */
#ifdef _WIN32

  short used4f;			/* Windows VC++ doesn't like us to use the */
  short useevn3f; 		/* above function pointers. Use flags instead.*/

#  define D4F_ON()	_mgopenglc->used4f = 1
#  define D4F_OFF()	_mgopenglc->used4f = 0
#  define D4F(c)   {	if(_mgopenglc->used4f) mgopengl_d4f(c); \
			else glColor4fv(c); \
		   }
#  define N3F_NOEVERT()	_mgopenglc->useevn3f = 0
#  define N3F_EVERT()	_mgopenglc->useevn3f = 1
#  define N3F(n,p) {	if(_mgopenglc->useevn3f) mgopengl_n3fevert(n,p); \
			else glNormal3fv(n); \
		   }

#else /* use function pointers if the compiler permits */

  void (*d4f)();		/* For shaded colors: apply mat.kd or no? */
  void (*n3f)();		/* Evert normals to face viewer? */
#  define D4F_ON()					\
  if (_mgc->astk->mat.valid & MTF_ALPHA &&		\
      _mgc->astk->mat.override & MTF_ALPHA) {		\
    _mgopenglc->d4f = mgopengl_d4f_shaded_alpha;	\
  } else {						\
    _mgopenglc->d4f = mgopengl_d4f_shaded;		\
  }
#  define D4F_OFF()					\
  if (_mgc->astk->mat.valid & MTF_ALPHA &&		\
      _mgc->astk->mat.override & MTF_ALPHA) {		\
    _mgopenglc->d4f = mgopengl_d4f_constant_alpha;	\
  } else {						\
    _mgopenglc->d4f = glColor4fv;			\
  }
#  define D4F(c)	(*_mgopenglc->d4f)(c)
#  define N3F_EVERT()	_mgopenglc->n3f = mgopengl_n3fevert
#  define N3F_NOEVERT()	_mgopenglc->n3f = glNormal3fv
#  define N3F(n,p)	(*_mgopenglc->n3f)(n,p)

#endif

#ifndef GLUT
  void *GLXdisplay;		/* X11 Display pointer; if non-NULL, mixed model */
  GLXContext cam_ctx[2];	/* single[0] and double-buf[1] OGL contexts */
  GLXContext curctx;		/* Current OpenGL context */
#endif
  int winids[2];		/* single[0] and double-buffered[1] X win ids */
  int should_lighting, is_lighting; /* Lighting flags so we can turn off
					lighting for points&lines */
  int tevbound;                 /* Texturing currently enabled? */
  TxUser *curtex;		/* Currently-bound texture (NULL if none) */
  int dither;			/* Dither enabled? */
  char *bgimagefile;            /* compatibility: bgimage file name */

  GLuint *light_lists;
  int n_light_lists;
  GLuint *texture_lists;
  int n_texture_lists;
  GLuint *translucent_lists;
  int n_translucent_lists;
  int translucent_seq;
} mgopenglcontext;

#define DPYLIST_INCR 10

#define	MAXZNUDGE	8	/* Max possible depth of mgopengl_closer()/farther() calls */

/* We save the current W2C/C2W xforms on each call to mgopengl_worldbegin()
 * because the ModelView matrix stack actually stores both our object
 * xform and the view matrix:
 *
 *   ModelView = [ obj xform ] * [ W2C ]
 *
 * Since we use the GL ModelView stack to keep track of our object xform,
 * instead of using the actual stack in the mgcontext struct, having
 * ModelView = W2C corresponds to [ obj xform ] = identity.  We save W2C
 * and C2W on each mgopengl_worldbegin() because _mgc->cam might change
 * during the course of the frame, but isn't supposed to be reinterpreted
 * until the next mgopengl_worldbegin().
 */

#define _mgopenglc		((mgopenglcontext*)_mgc)

#if 0
extern void mgopengl_d4f( float c[4] );
#else
extern void mgopengl_d4f_shaded(float c[4]);
extern void mgopengl_d4f_shaded_alpha(float c[4]);
extern void mgopengl_d4f_constant_alpha(float c[4]);
#endif
extern void mgopengl_n3fevert( Point3 *n, HPoint3 *p );

extern void mgopengl_notexture(void);
extern void mgopengl_needtexture(void);
extern void mgopengl_closer(void);
extern void mgopengl_farther(void);
extern void mgopengl_setshader(mgshadefunc shader);
extern void mgopengl_drawnormal(HPoint3 *p, Point3 *n);
extern void mgopengl_init_zrange();
extern void mgopengl_v4fcloser(HPoint3 *);
extern void mgopengl_txpurge(TxUser *);
extern void mgopengl_lights(LmLighting *lm, struct mgastk *astk);

extern void mgopengl_appearance( struct mgastk *ma, int mask );

extern GLuint *mgopengl_realloc_lists(GLuint *lists, int *n_lists);
extern GLuint mgopengl_new_translucent(Transform T);
extern void mgopengl_end_translucent(void);
extern void mgopengl_bsptree(BSPTree *bsptree);

#ifdef _WIN32
extern void mgopengl_c4f(float *);
extern void mgopengl_n3f(float *);
#else
#define mgopengl_c4f glColor4fv
#define mgopengl_n3f glNormal3fv
#endif

#define	MAY_LIGHT()  { \
	if(_mgopenglc->should_lighting && !_mgopenglc->is_lighting) { \
	    glEnable(GL_LIGHTING); \
	    _mgopenglc->is_lighting = 1; \
	} }

#define DONT_LIGHT() { \
	    if(_mgopenglc->is_lighting) { \
		glDisable(GL_LIGHTING); \
		_mgopenglc->is_lighting = 0; \
	    } \
	}

/*
 * Local Variables: ***
 * c-basic-offset: 2 ***
 * End: ***
 */