71a6b0367456f76fb6ec3acfb6983238f10f1909
[occt.git] / src / Shaders / Shaders_DeclarationsImpl_glsl.pxx
1 // This file has been automatically generated from resource file src/Shaders/DeclarationsImpl.glsl
2
3 static const char Shaders_DeclarationsImpl_glsl[] =
4   "\n"
5   "//! @file DeclarationsImpl.glsl includes implementation of common functions and properties accessors\n"
6   "#if defined(FRAGMENT_SHADER)\n"
7   "//! Output color (and coverage for accumulation by OIT algorithm).\n"
8   "void occSetFragColor (in vec4 theColor)\n"
9   "{\n"
10   "#if defined(OCC_ALPHA_TEST)\n"
11   "  if (theColor.a < occAlphaCutoff) discard;\n"
12   "#endif\n"
13   "#if defined(OCC_WRITE_WEIGHT_OIT_COVERAGE)\n"
14   "  float aWeight     = theColor.a * clamp (1e+2 * pow (1.0 - gl_FragCoord.z * occOitDepthFactor, 3.0), 1e-2, 1e+2);\n"
15   "  occFragCoverage.r = theColor.a * aWeight;\n"
16   "  occFragColor      = vec4 (theColor.rgb * theColor.a * aWeight, theColor.a);\n"
17   "#else\n"
18   "  occFragColor = theColor;\n"
19   "#endif\n"
20   "}\n"
21   "#endif\n"
22   "\n"
23   "#if defined(THE_MAX_LIGHTS) && (THE_MAX_LIGHTS > 0)\n"
24   "// arrays of light sources\n"
25   "uniform THE_PREC_ENUM ivec2 occLightSourcesTypes[THE_MAX_LIGHTS]; //!< packed light sources types\n"
26   "uniform               vec4  occLightSources[THE_MAX_LIGHTS * 4];  //!< packed light sources parameters\n"
27   "#endif\n"
28   "\n"
29   "// material state\n"
30   "uniform vec4 occFrontMaterial[5];\n"
31   "uniform vec4 occBackMaterial[5];\n"
32   "\n"
33   "// front material properties accessors\n"
34   "vec4  occFrontMaterial_Ambient(void)      { return occFrontMaterial[0]; }\n"
35   "vec4  occFrontMaterial_Diffuse(void)      { return occFrontMaterial[1]; }\n"
36   "vec4  occFrontMaterial_Specular(void)     { return occFrontMaterial[2]; }\n"
37   "vec4  occFrontMaterial_Emission(void)     { return occFrontMaterial[3]; }\n"
38   "float occFrontMaterial_Shininess(void)    { return occFrontMaterial[4].x; }\n"
39   "float occFrontMaterial_Transparency(void) { return occFrontMaterial[4].y; }\n"
40   "\n"
41   "// back material properties accessors\n"
42   "vec4  occBackMaterial_Ambient(void)       { return occBackMaterial[0]; }\n"
43   "vec4  occBackMaterial_Diffuse(void)       { return occBackMaterial[1]; }\n"
44   "vec4  occBackMaterial_Specular(void)      { return occBackMaterial[2]; }\n"
45   "vec4  occBackMaterial_Emission(void)      { return occBackMaterial[3]; }\n"
46   "float occBackMaterial_Shininess(void)     { return occBackMaterial[4].x; }\n"
47   "float occBackMaterial_Transparency(void)  { return occBackMaterial[4].y; }\n"
48   "\n"
49   "// 2D texture coordinates transformation\n"
50   "vec2  occTextureTrsf_Translation(void) { return occTexTrsf2d[0].xy; }\n"
51   "vec2  occTextureTrsf_Scale(void)       { return occTexTrsf2d[0].zw; }\n"
52   "float occTextureTrsf_RotationSin(void) { return occTexTrsf2d[1].x; }\n"
53   "float occTextureTrsf_RotationCos(void) { return occTexTrsf2d[1].y; }\n"
54   "//! @endfile DeclarationsImpl.glsl\n";