This file is indexed.

/usr/src/castle-game-engine-4.1.1/x3d/opengl/glsl/template.vs is in castle-game-engine-src 4.1.1-1.

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
/* Generic GLSL vertex shader.
   Used by glrenderershader.pas to construct the final shader.

   This is converted to template.vs.inc, and is then compiled
   in program's binary.
   When you change this file, rerun `make' and then recompile Pascal sources.
*/

/* PLUG-DECLARATIONS */

varying vec4 castle_vertex_eye;
varying vec3 castle_normal_eye;

void main(void)
{
  vec4 vertex_object = gl_Vertex;
  vec3 normal_object = gl_Normal;
  /* PLUG: vertex_object_space_change (vertex_object, normal_object) */
  /* PLUG: vertex_object_space (vertex_object, normal_object) */

  castle_vertex_eye = gl_ModelViewMatrix * vertex_object;
  /* Although we will normalize it again in the fragment shader
     (otherwise interpolated result could be shorter < 1, imagine a case
     when normals point the almost opposite directions on the opposite
     vertexes), we also have to normalize it in vertex shader (otherwise
     a much longer normal on one vertex would pull all the interpolated
     normals, thus making their direction invalid in fragment shaders). */
  castle_normal_eye = normalize(gl_NormalMatrix * normal_object);

  /* PLUG: vertex_eye_space (castle_vertex_eye, castle_normal_eye) */

#ifndef LIT
  gl_FrontColor = gl_Color;
  gl_BackColor = gl_Color;
#endif

#ifdef VERTEX_OBJECT_SPACE_CHANGED
  gl_Position = gl_ProjectionMatrix * castle_vertex_eye;
#else
  gl_Position = ftransform();
#endif
}