1 //
2 // Copyright 2016 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 //    names, trademarks, service marks, or product names of the Licensor
11 //    and its affiliates, except as required to comply with Section 4(c) of
12 //    the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 //     http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef PXR_IMAGING_HD_ST_TOKENS_H
25 #define PXR_IMAGING_HD_ST_TOKENS_H
26 
27 #include "pxr/pxr.h"
28 #include "pxr/imaging/hdSt/api.h"
29 #include "pxr/base/tf/staticTokens.h"
30 
31 PXR_NAMESPACE_OPEN_SCOPE
32 
33 #define HDST_GLSL_PROGRAM_TOKENS                \
34     (smoothNormalsFloatToFloat)                 \
35     (smoothNormalsFloatToPacked)                \
36     (smoothNormalsDoubleToDouble)               \
37     (smoothNormalsDoubleToPacked)               \
38     (flatNormalsTriFloatToFloat)                \
39     (flatNormalsTriFloatToPacked)               \
40     (flatNormalsTriDoubleToDouble)              \
41     (flatNormalsTriDoubleToPacked)              \
42     (flatNormalsQuadFloatToFloat)               \
43     (flatNormalsQuadFloatToPacked)              \
44     (flatNormalsQuadDoubleToDouble)             \
45     (flatNormalsQuadDoubleToPacked)             \
46     (quadrangulateFloat)                        \
47     (quadrangulateDouble)
48 
49 #define HDST_TOKENS                             \
50     (constantLighting)                          \
51     (packedSmoothNormals)                       \
52     (smoothNormals)                             \
53     (packedFlatNormals)                         \
54     (flatNormals)                               \
55     (scale)                                     \
56     (bias)                                      \
57     (rotation)                                  \
58     (translation)                               \
59     (sRGB)                                      \
60     (raw)                                       \
61     ((_double, "double"))                       \
62     ((_float, "float"))                         \
63     ((_int, "int"))                             \
64     ((colorSpaceAuto, "auto"))                  \
65     (fvarIndices)                               \
66     (fvarPatchParam)                            \
67     (coarseFaceIndex)                           \
68     (processedFaceCounts)                       \
69     (processedFaceIndices)                      \
70     (geomSubsetFaceIndices)
71 
72 #define HDST_TEXTURE_TOKENS                     \
73     (wrapS)                                     \
74     (wrapT)                                     \
75     (wrapR)                                     \
76     (black)                                     \
77     (clamp)                                     \
78     (mirror)                                    \
79     (repeat)                                    \
80     (useMetadata)                               \
81     (minFilter)                                 \
82     (magFilter)                                 \
83     (linear)                                    \
84     (nearest)                                   \
85     (linearMipmapLinear)                        \
86     (linearMipmapNearest)                       \
87     (nearestMipmapLinear)                       \
88     (nearestMipmapNearest)
89 
90 #define HDST_RENDER_BUFFER_TOKENS                       \
91     ((stormMsaaSampleCount, "storm:msaaSampleCount"))
92 
93 #define HDST_RENDER_SETTINGS_TOKENS             \
94     (enableTinyPrimCulling)                     \
95     (volumeRaymarchingStepSize)                 \
96     (volumeRaymarchingStepSizeLighting)         \
97     (volumeMaxTextureMemoryPerField)
98 
99 // Material tags help bucket prims into different queues for draw submission.
100 // The tags supported by Storm are:
101 //    defaultMaterialTag : opaque geometry
102 //    masked : opaque geometry that uses cutout masks (e.g., foliage)
103 //    translucentToSelection: opaque geometry that allows occluded selection
104 //                            to show through
105 //    additive : transparent geometry (cheap OIT solution w/o sorting)
106 //    translucent: transparent geometry (OIT solution w/ sorted fragment lists)
107 //    volume : transparent geoometry (raymarched)
108 #define HDST_MATERIAL_TAG_TOKENS                \
109     (defaultMaterialTag)                        \
110     (masked)                                    \
111     (translucentToSelection)                    \
112     (additive)                                  \
113     (translucent)                               \
114     (volume)
115 
116 #define HDST_SDR_METADATA_TOKENS                \
117     (swizzle)
118 
119 #define HDST_PERF_TOKENS                        \
120     (copyBufferGpuToGpu)                        \
121     (copyBufferCpuToGpu)                        \
122     (drawItemsCacheHit)                         \
123     (drawItemsCacheMiss)                        \
124     (drawItemsCacheStale)                       \
125     (drawItemsFetched)
126 
127 TF_DECLARE_PUBLIC_TOKENS(HdStGLSLProgramTokens, HDST_API,
128                          HDST_GLSL_PROGRAM_TOKENS);
129 
130 TF_DECLARE_PUBLIC_TOKENS(HdStTokens, HDST_API, HDST_TOKENS);
131 
132 TF_DECLARE_PUBLIC_TOKENS(HdStTextureTokens, HDST_API, HDST_TEXTURE_TOKENS);
133 
134 TF_DECLARE_PUBLIC_TOKENS(HdStRenderBufferTokens, HDST_API,
135                          HDST_RENDER_BUFFER_TOKENS);
136 
137 TF_DECLARE_PUBLIC_TOKENS(HdStRenderSettingsTokens, HDST_API,
138                          HDST_RENDER_SETTINGS_TOKENS);
139 
140 TF_DECLARE_PUBLIC_TOKENS(HdStMaterialTagTokens, HDST_API,
141                          HDST_MATERIAL_TAG_TOKENS);
142 
143 TF_DECLARE_PUBLIC_TOKENS(HdStSdrMetadataTokens, HDST_API,
144                          HDST_SDR_METADATA_TOKENS);
145 
146 TF_DECLARE_PUBLIC_TOKENS(HdStPerfTokens, HDST_API, HDST_PERF_TOKENS);
147 
148 PXR_NAMESPACE_CLOSE_SCOPE
149 
150 #endif //PXR_IMAGING_HD_ST_TOKENS_H
151