// // Copyright 2016 Pixar // // Licensed under the terms set forth in the LICENSE.txt file available at // https://openusd.org/license. // #ifndef PXR_IMAGING_HD_VERSION_H #define PXR_IMAGING_HD_VERSION_H // 18 -> 19: Add support for SceneDelegate surface shaders. // 19 -> 20: RenderPass constructor takes RenderIndex. RasterState class. // 20 -> 21: Add HdSceneDelegate::IsEnabled(). // 21 -> 22: split HdRasterState out of HdRenderPass and renamed to HdRenderPassState. // HdEngine::Draw API change. // 22 -> 23: remove ID render API // 23 -> 24: GetPathForInstanceIndex returns absolute instance index. // 24 -> 25: move simpleLightingShader to Hdx. // 25 -> 26: move camera and light to Hdx. // 26 -> 27: move drawTarget to Hdx. // 27 -> 28: switch render index Sprim to take a typeId. // 28 -> 29: cameras only support matrices. // 29 -> 30: added IDRenderColor decode and direct Rprim path fetching. // 30 -> 31: added pre-chained buffer sources // 31 -> 32: renamed HdShader{Param} to HdMaterial{Param} // 32 -> 33: Deleted GetPathForInstanceIndex; added GetScenePrimPath. // 32 -> 34: Added HdInstancerContext to GetScenePrimPath. // 34 -> 35: HdRepr is using std::unique_ptr // 35 -> 36: InsertRprim/InsertInstancer no longer take instancerId, // HdSceneDelegate now has GetInstancerId // 36 -> 37: Renamed HdRprim::_SetMaterialId to SetMaterialId. It no longer // takes changeTracker. // 37 -> 38: Removed Bprim garbage collection API from HdChangeTracker and // HdResourceRegistry. // 38 -> 39: Removed garbage collection API from HdChangeTracker and // HdResourceRegistry. // Added HdSceneDelegate::GetInstancerPrototypes. // 39 -> 40: Removed Bind and Unbind API from HdRenderPassState. // 40 -> 41: Renamed HdDelegate::GetMaterialNeworkselector() to // GetMaterialRenderContexts(). It now returns a TfTokenVector. // 41 -> 42: Removed GetMaterialTag() from HdRenderIndex. // 42 -> 43: Removed HdCamera pulling on view and projection matrix. // 43 -> 44: Replaced HdCamera::GetProjectionMatrix with // HdComputeProjectionMatrix. // 44 -> 45: Added HdSceneDelegate::GetScenePrimPaths. // 45 -> 46: New signatures for HdRendererPlugin::IsSupported and // HdRendererPluginRegistry::GetDefaultPluginId // 46 -> 47: Adding HdRenderDelegate::GetRenderSettingsNamespaces() // 47 -> 48: New signature for HdRenderIndex::InsertSceneIndex: added optional // argument needsPrefixing // 48 -> 49: Moved HdExtCompCpuComputation, Hd_ExtCompInputSource, // Hd_CompExtCompInputSource, and Hd_SceneExtCompInputSource to hdSt. // 49 -> 50: Added HdModelDrawMode struct and getter API to HdSceneDelegate. // 50 -> 51: HdMaterialBindingSchema became HdMaterialBindingsSchema which uses // the new HdMaterialBindingSchema. // 51 -> 52: Added lens distortion, focus, and split diopter parameters to // HdCamera. // 52 -> 53: Changing dirty bits of HdCoordSys. // 53 -> 54: Introducing HdFlattenedDataSourceProvider to make // HdFlatteningSceneIndex modular. // 54 -> 55: Introduce API in HdRenderDelegate to aid in transitioning // render delegates to a Hydra 2.0 world. // 55 -> 56: Adds hydra-namespaced internal instancer primvars // 56 -> 57: Changing SetOverrideWindowPolicy to std::optional on // HdRenderPassState, HdxPickFromRenderBufferTaskParams, // HdxTaskController and UsdImagingGLEngine. // 57 -> 58: Introducing hdsi/version.h // 58 -> 59: HdGeomSubsetsSchema::GetIds() renamed to // HdGeomSubsetsSchema::GetGeomSubsetNames(). // 59 -> 60: Introduced HdRenderDelegate::GetCapabilities(). // 60 -> 61: Adding HdPrimvarSchema::GetFlattenedPrimvarValue(). // Note that in an upcoming change, // HdPrimvarSchema::GetPrimvarValue() might change and // simply return the data source source at primvarValue. // 61 -> 62: Remove 'bindingStrength' from HdMaterialBindingSchema. // 62 -> 63: HdMaterialSchema::GetMaterialNetwork, // HdMaterialNetwork::GetNodes, GetTerminals, // HdMaterialNode::GetParameters, GetInputConnections // return Hydra schemas instead of just container data sources. // schemaTypeDefs.h replaces vectorSchemaTypeDefs.h. // 63 -> 64: Adding disableDepthOfField to HdRenderSettings::RenderProduct // 64 -> 65: Introduce HdCollectionPredicateLibrary and // HdCollectionExpressionEvaluator for path expression evaluation on // scene index prims. // 65 -> 66: Make HdSchema::_GetTypedDataSource and getters in generated // hydra schemas const. // 66 -> 67: Removes legacy internal instancer primvar names and the // TfEnvSetting for using them (see 56). // 67 -> 68: Adds HdSceneDelegate::SampleFOO with startTime and endTime. // 68 -> 69: Removes HdGeomSubsetsSchema. Geom subsets are now represented // in Hydra as child prims of their parent geometry. // 69 -> 70: Add dirty bit translation for light filter prims in backend // emulation. // 70 -> 71: Add virtual HdRenderDelegate::IsParallelSyncEnabled. // 71 -> 72: Add render index API to batch notices sent by the merging scene // index. // 72 -> 73: Adds HdExtComputationUtils::SampleComputedPrimvarValues with // startTime and endTime // 73 -> 74: Extended HdMeshReprDesc to support optional generation of // surface edge ids. // 74 -> 75: Added overload of HdSceneIndexPlugin::_AppendSceneIndex that // passes the renderInstanceId to the plugin callback. // 75 -> 76: Added Scene State ID tunneling through the Hydra pipeline and // arbitrary values Setter/Getter to HdRenderParam. // 76 -> 77: Added GetInputPrimType() to HdFlattenedDataSourceProvider::Context. // The Context now stores an HdSceneIndexPrim containing the data // source and prim type. // 77 -> 78: Removed the widget renderTag and added a displayInOverlay boolean // attribute to serve the same purpose that widget signified. // 78 -> 79: Added Hgi::GarbageCollect. // 79 -> 80: Added refinedSolidWireOnSurf and solidWireOnSurf to HD_REPR_TOKENS. // 80 -> 81: Added IsValid() to HdRenderParam. // 81 -> 82: Added hgi/version.h // 82 -> 83: Added overloads for HdRendererPlugin::IsSupported and // HdRendererPluginRegistry::GetDefaultPluginId. // 83 -> 84: Added HdDataSourceLocatorSentinelTokens. // 84 -> 85: Deprecate HdMaterialNetworkSchema::GetInterfaceMappings(). // Add HdMaterialNetworkSchema::GetInterface(). // Add HdMaterialInterfaceSchema, HdMaterialInterfaceParameterSchema. // 85 -> 86: Rename Hd[Typed|SchemaBased][Container|Vector]Schema to // Hd[Container|Vector]Of[Schemas|TypedSampledDataSources]Schema. // 86 -> 87: Added HdContainerDataSourceEditor::ComputeDirtyLocators. // 87 -> 88: Added support for parameterValues data source in // HdMaterialOverrideSchema and related functions (GetParameterValues, // SetParameterValues). The deprecated method BuildRetained now // requires a second parameter for the parameterValues data source. // 88 -> 89: HdRenderSettingsSchema namespacedSettings is a // HdSampledDataSourceContainerSchema. // 89 -> 90: Added HdRendererPlugin::GetSceneIndexInputArgs and // HdSceneIndexInputArgsSchema. // 90 -> 91: Add camera, disableMotionBlur, and disableDepthOfField to // HdRenderSettingsSchema and rename shutterInterval to // unionedSamplingInterval // 91 -> 92: Expose camera, disableMotionBlur, and disableDepthOfField // through HdSceneIndexAdapterSceneDelegate, HdDirtyBitsTranslator, // and HdRenderSettings; finish renaming shutterInterval to // unionedSamplingInterval // 92 -> 93: Add HdVolumeSchema, HdSceneDelegate::GetVolumeParamValue(), // HdChangeTracker::AddSprimRprimDependency(), and // HdChangeTracker::RemoveSprimRprimDependency(). // 93 -> 94: Add HdSceneIndexPlugin::IsEnabled() and _IsEnabled(). // 94 -> 95: Add HdRenderDelegate::GetShadingSystems to replace deprecated // HdRenderDelegate::GetShaderSourceTypes // 95 -> 96: Added HdVisitSampledDataSourceType and HdCopySampledDataSourceType. // 96 -> 97: Added HdsiParticleFieldConversionSceneIndex. // 97 -> 98: Consistently use HdRendererCreateArgsSchema for // HdRendererPluginRegistry::GetDefaultPluginId, // HdRendererPlugin::IsSupported and CreateRenderer and // HdRenderDelegateAdapterRenderer c'tor. // 98 -> 99: Removing HdRenderIndex::IsSceneIndexEmulationEnabled() and // UsdImagingGLEngine::_GetTaskController(). // Emulation is now always enabled. // 99 -> 100: HdRenderIndex::New renamed to // HdRenderIndexNewForBack/FrontendEmulation. // 100 -> 101: HdRendererPlugin::GetSceneIndexInputArgs renamed to // GetSceneIndexCreateArgs. HdSceneIndexInputArgsSchema renamed // to HdSceneIndexCreateArgsSchema accordingly. // 101 -> 102: Contiguous data source handle allocation via allocate_shared in // ::New(), added by HD_DECLARE_DATASOURCE. Change is forward- and // backward-compatible with existing data source implementations. // 102 -> 103: Removing HdRendererCreateArgs and overloads of // HdRendererPlugin::IsSupported and // HdRendererPluginRegistry::GetDefaultPluginId taking // HdRendererCreateArgs (or bool) in favor of overloads taking // HdRendererCreateArgsSchema. // Removing HdRenderSettingsTokens->renderCreateArgs. #define HD_API_VERSION 103 // 1 -> 2: SimpleLighting -> FallbackLighting // 2 -> 3: Use GetLightCount() instead of NUM_LIGHTS to get light count. // NUM_LIGHTS still exists for shader code requiring a compile time // max count constant. Ex: MAX_LIGHT_SOURCES in MaterialX #define HD_SHADER_API 3 #endif // PXR_IMAGING_HD_VERSION_H