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