imageworks/OpenShadingLanguage — pull request #301 by lgritz (2013-12-02 18:31:29+00:00)
Title: Add a ShadingSystem::Parameter call variety that can set lockgeom=0

Add a ShadingSystem::Parameter call variety that can set lockgeom=0 on a particular parameter when the instance values are declared, even if they were not so marked in their metadata at the time they were compiled by oslc.

There's an interesting trick involved here: We gather pending parameters for an instance into a ParamValueList, as a temporary holding area until the Shader call. We use the PV's existing 'interp' field to indicate whether the value has a lockgeom override -- INTERP_CONSTANT as the default, and anything else (we use INTERP_VERTEX) to mean the value may vary across the geom, which is what lockgeom is primarily used for.