Overte C++ Documentation
gpu/src/gpu/ShaderConstants.h
1 // <!
2 // Created by Bradley Austin Davis on 2018/05/25
3 // Copyright 2013-2018 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 // !>
8 
9 // <@if not GPU_SHADER_CONSTANTS_H@>
10 // <@def GPU_SHADER_CONSTANTS_H@>
11 
12 // Hack comment to absorb the extra '//' scribe prepends
13 
14 #ifndef GPU_SHADER_CONSTANTS_H
15 #define GPU_SHADER_CONSTANTS_H
16 
17 #define GPU_BUFFER_TRANSFORM_CAMERA 15
18 #define GPU_BUFFER_TEXTURE_TABLE0 16
19 #define GPU_BUFFER_TEXTURE_TABLE1 17
20 #define GPU_BUFFER_CAMERA_CORRECTION 18
21 
22 #define GPU_TEXTURE_TRANSFORM_OBJECT 31
23 
24 #define GPU_RESOURCE_BUFFER_SLOT0_TEXTURE 35
25 #define GPU_RESOURCE_BUFFER_SLOT1_TEXTURE 36
26 #define GPU_RESOURCE_BUFFER_SLOT0_STORAGE 0
27 #define GPU_RESOURCE_BUFFER_SLOT1_STORAGE 1
28 
29 // Mip creation
30 #define GPU_TEXTURE_MIP_CREATION_INPUT 30
31 
32 #define GPU_STORAGE_TRANSFORM_OBJECT 7
33 
34 #define GPU_ATTR_POSITION 0
35 #define GPU_ATTR_NORMAL 1
36 #define GPU_ATTR_COLOR 2
37 #define GPU_ATTR_TEXCOORD0 3
38 #define GPU_ATTR_TANGENT 4
39 #define GPU_ATTR_SKIN_CLUSTER_INDEX 5
40 #define GPU_ATTR_SKIN_CLUSTER_WEIGHT 6
41 #define GPU_ATTR_TEXCOORD1 7
42 #define GPU_ATTR_TEXCOORD2 8
43 #define GPU_ATTR_TEXCOORD3 9
44 #define GPU_ATTR_TEXCOORD4 10
45 #define GPU_ATTR_STEREO_SIDE 14
46 #define GPU_ATTR_DRAW_CALL_INFO 15
47 
48 // OSX seems to have an issue using 14 as an attribute location for passing from the vertex to the fragment shader
49 #define GPU_ATTR_V2F_STEREO_SIDE 8
50 
51 #define GPU_UNIFORM_EXTRA0 110
52 #define GPU_UNIFORM_EXTRA1 111
53 #define GPU_UNIFORM_EXTRA2 112
54 #define GPU_UNIFORM_EXTRA3 113
55 #define GPU_UNIFORM_EXTRA4 114
56 #define GPU_UNIFORM_EXTRA5 115
57 #define GPU_UNIFORM_EXTRA6 116
58 #define GPU_UNIFORM_EXTRA7 117
59 #define GPU_UNIFORM_EXTRA8 118
60 #define GPU_UNIFORM_EXTRA9 119
61 
62 // <!
63 
64 namespace gpu { namespace slot {
65 
66 namespace buffer {
67 enum Buffer {
68  CameraTransform = GPU_BUFFER_TRANSFORM_CAMERA,
69  TextureTable0 = GPU_BUFFER_TEXTURE_TABLE0,
70  TextureTable1 = GPU_BUFFER_TEXTURE_TABLE1,
71  CameraCorrection = GPU_BUFFER_CAMERA_CORRECTION,
72 };
73 } // namespace buffer
74 
75 namespace texture {
76 enum Texture {
77  ObjectTransforms = GPU_TEXTURE_TRANSFORM_OBJECT,
78  MipCreationInput = GPU_TEXTURE_MIP_CREATION_INPUT,
79 };
80 } // namespace texture
81 
82 namespace storage {
83 enum Storage {
84  ObjectTransforms = GPU_STORAGE_TRANSFORM_OBJECT,
85 };
86 } // namespace storage
87 
88 namespace attr {
89 enum Attribute {
90  Position = GPU_ATTR_POSITION,
91  Normal = GPU_ATTR_NORMAL,
92  Color = GPU_ATTR_COLOR,
93  TexCoord0 = GPU_ATTR_TEXCOORD0,
94  Tangent = GPU_ATTR_TANGENT,
95  SkinClusterIndex = GPU_ATTR_SKIN_CLUSTER_INDEX,
96  SkinClusterWeight = GPU_ATTR_SKIN_CLUSTER_WEIGHT,
97  TexCoord1 = GPU_ATTR_TEXCOORD1,
98  TexCoord2 = GPU_ATTR_TEXCOORD2,
99  TexCoord3 = GPU_ATTR_TEXCOORD3,
100  TexCoord4 = GPU_ATTR_TEXCOORD4,
101  StereoSide = GPU_ATTR_STEREO_SIDE,
102  DrawCallInfo = GPU_ATTR_DRAW_CALL_INFO,
103 };
104 } // namespace attr
105 
106 } } // namespace gpu::slot
107 
108 // !>
109 
110 // Hack Comment
111 #endif // GPU_SHADER_CONSTANTS_H
112 
113 // <@if 1@>
114 // Trigger Scribe include
115 // <@endif@> <!def that !>
116 
117 // <@endif@>
118 
119 // Hack Comment
A simple object wrapper for an OpenGL texture.
Definition: material-networking/src/material-networking/TextureCache.h:39