Loading...
Searching...
No Matches
tokens.h
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"
30
31PXR_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 (flatNormalsTriQuadFloatToFloat) \
47 (flatNormalsTriQuadFloatToPacked) \
48 (flatNormalsTriQuadDoubleToDouble) \
49 (flatNormalsTriQuadDoubleToPacked) \
50 (quadrangulateFloat) \
51 (quadrangulateDouble)
52
53#define HDST_TOKENS \
54 (constantLighting) \
55 (packedSmoothNormals) \
56 (smoothNormals) \
57 (packedFlatNormals) \
58 (flatNormals) \
59 (scale) \
60 (bias) \
61 (rotation) \
62 (translation) \
63 (sRGB) \
64 (raw) \
65 ((_double, "double")) \
66 ((_float, "float")) \
67 ((_int, "int")) \
68 ((colorSpaceAuto, "auto")) \
69 (fvarIndices) \
70 (fvarPatchParam) \
71 (coarseFaceIndex) \
72 (processedFaceCounts) \
73 (processedFaceIndices) \
74 (geomSubsetFaceIndices) \
75 (pointSizeScale) \
76 (screenSpaceWidths) \
77 (minScreenSpaceWidths) \
78 (shadowCompareTextures) \
79 (storm)
80
81#define HDST_TEXTURE_TOKENS \
82 (wrapS) \
83 (wrapT) \
84 (wrapR) \
85 (black) \
86 (clamp) \
87 (mirror) \
88 (repeat) \
89 (useMetadata) \
90 (minFilter) \
91 (magFilter) \
92 (linear) \
93 (nearest) \
94 (linearMipmapLinear) \
95 (linearMipmapNearest) \
96 (nearestMipmapLinear) \
97 (nearestMipmapNearest)
98
99#define HDST_RENDER_BUFFER_TOKENS \
100 ((stormMsaaSampleCount, "storm:msaaSampleCount"))
101
102#define HDST_RENDER_SETTINGS_TOKENS \
103 (enableTinyPrimCulling) \
104 (volumeRaymarchingStepSize) \
105 (volumeRaymarchingStepSizeLighting) \
106 (volumeMaxTextureMemoryPerField) \
107 (maxLights)
108
109// Material tags help bucket prims into different queues for draw submission.
110// The tags supported by Storm are:
111// defaultMaterialTag : opaque geometry
112// masked : opaque geometry that uses cutout masks (e.g., foliage)
113// translucentToSelection: opaque geometry that allows occluded selection
114// to show through
115// additive : transparent geometry (cheap OIT solution w/o sorting)
116// translucent: transparent geometry (OIT solution w/ sorted fragment lists)
117// volume : transparent geoometry (raymarched)
118#define HDST_MATERIAL_TAG_TOKENS \
119 (defaultMaterialTag) \
120 (masked) \
121 (translucentToSelection) \
122 (additive) \
123 (translucent) \
124 (volume)
125
126#define HDST_SDR_METADATA_TOKENS \
127 (swizzle)
128
129#define HDST_PERF_TOKENS \
130 (copyBufferGpuToGpu) \
131 (copyBufferCpuToGpu) \
132 (drawItemsCacheHit) \
133 (drawItemsCacheMiss) \
134 (drawItemsCacheStale) \
135 (drawItemsFetched)
136
137TF_DECLARE_PUBLIC_TOKENS(HdStGLSLProgramTokens, HDST_API,
138 HDST_GLSL_PROGRAM_TOKENS);
139
140TF_DECLARE_PUBLIC_TOKENS(HdStTokens, HDST_API, HDST_TOKENS);
141
142TF_DECLARE_PUBLIC_TOKENS(HdStTextureTokens, HDST_API, HDST_TEXTURE_TOKENS);
143
144TF_DECLARE_PUBLIC_TOKENS(HdStRenderBufferTokens, HDST_API,
145 HDST_RENDER_BUFFER_TOKENS);
146
147TF_DECLARE_PUBLIC_TOKENS(HdStRenderSettingsTokens, HDST_API,
148 HDST_RENDER_SETTINGS_TOKENS);
149
150TF_DECLARE_PUBLIC_TOKENS(HdStMaterialTagTokens, HDST_API,
151 HDST_MATERIAL_TAG_TOKENS);
152
153TF_DECLARE_PUBLIC_TOKENS(HdStSdrMetadataTokens, HDST_API,
154 HDST_SDR_METADATA_TOKENS);
155
156TF_DECLARE_PUBLIC_TOKENS(HdStPerfTokens, HDST_API, HDST_PERF_TOKENS);
157
158PXR_NAMESPACE_CLOSE_SCOPE
159
160#endif //PXR_IMAGING_HD_ST_TOKENS_H
This file defines some macros that are useful for declaring and using static TfTokens.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
Definition: staticTokens.h:98