Skip to content

Commit

Permalink
#5585: A couple more IEditableShaderLayer methods: setVertexColourMod…
Browse files Browse the repository at this point in the history
…e, setClampType, setPrivatePolygonOffset, setRenderMapSize, setSoundMapWaveForm, setVideoMapProperties
  • Loading branch information
codereader committed Apr 11, 2021
1 parent 30e1f17 commit 9c69ecb
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
9 changes: 9 additions & 0 deletions install/scripts/materialtest.py
Expand Up @@ -100,6 +100,15 @@
editableDiffuseStage.setTexGenExpressionFromString(0, "0.1")
editableDiffuseStage.setTexGenExpressionFromString(1, "0.2")
editableDiffuseStage.setTexGenExpressionFromString(2, "0.3")
editableDiffuseStage.setVertexColourMode(dr.MaterialStage.VertexColourMode.MULTIPLY)
editableDiffuseStage.setClampType(dr.Material.ClampType.NOREPEAT)
editableDiffuseStage.setPrivatePolygonOffset(-1.2)
editableDiffuseStage.setRenderMapSize(dr.Vector2(640, 480))

editableBumpStage = newMaterial.getEditableStage(bumpStageIndex)
editableBumpStage.setSoundMapWaveForm(1)
editableBumpStage.setMapType(dr.MaterialStage.MapType.VIDEOMAP)
editableBumpStage.setVideoMapProperties("videos/blah", 1)

for stage in newMaterial.getAllStages():
print('Stage type: {0}'.format(stage.getType()))
Expand Down
6 changes: 6 additions & 0 deletions plugins/script/interfaces/ShaderSystemInterface.cpp
Expand Up @@ -392,6 +392,12 @@ void ShaderSystemInterface::registerInterface(py::module& scope, py::dict& globa
editableStage.def("setConditionExpressionFromString", &ScriptEditableMaterialStage::setConditionExpressionFromString);
editableStage.def("setTexGenType", &ScriptEditableMaterialStage::setTexGenType);
editableStage.def("setTexGenExpressionFromString", &ScriptEditableMaterialStage::setTexGenExpressionFromString);
editableStage.def("setVertexColourMode", &ScriptEditableMaterialStage::setVertexColourMode);
editableStage.def("setClampType", &ScriptEditableMaterialStage::setClampType);
editableStage.def("setPrivatePolygonOffset", &ScriptEditableMaterialStage::setPrivatePolygonOffset);
editableStage.def("setRenderMapSize", &ScriptEditableMaterialStage::setRenderMapSize);
editableStage.def("setSoundMapWaveForm", &ScriptEditableMaterialStage::setSoundMapWaveForm);
editableStage.def("setVideoMapProperties", &ScriptEditableMaterialStage::setVideoMapProperties);

// Expose the MaterialVisitor interface

Expand Down
30 changes: 30 additions & 0 deletions plugins/script/interfaces/ShaderSystemInterface.h
Expand Up @@ -269,6 +269,36 @@ class ScriptEditableMaterialStage :
{
if (_layer) _layer->setTexGenExpressionFromString(index, expression);
}

void setVertexColourMode(IShaderLayer::VertexColourMode mode)
{
if (_layer) _layer->setVertexColourMode(mode);
}

void setClampType(ClampType clampType)
{
if (_layer) _layer->setClampType(clampType);
}

void setPrivatePolygonOffset(double offset)
{
if (_layer) _layer->setPrivatePolygonOffset(offset);
}

void setRenderMapSize(const Vector2& size)
{
if (_layer) _layer->setRenderMapSize(size);
}

void setSoundMapWaveForm(bool waveForm)
{
if (_layer) _layer->setSoundMapWaveForm(waveForm);
}

void setVideoMapProperties(const std::string& filePath, bool looping)
{
if (_layer) _layer->setVideoMapProperties(filePath, looping);
}
};

/**
Expand Down

0 comments on commit 9c69ecb

Please sign in to comment.