From 9c69ecb753b99c774bfd45f2a0c36c83393d4e75 Mon Sep 17 00:00:00 2001 From: codereader Date: Sun, 11 Apr 2021 17:32:19 +0200 Subject: [PATCH] #5585: A couple more IEditableShaderLayer methods: setVertexColourMode, setClampType, setPrivatePolygonOffset, setRenderMapSize, setSoundMapWaveForm, setVideoMapProperties --- install/scripts/materialtest.py | 9 ++++++ .../interfaces/ShaderSystemInterface.cpp | 6 ++++ .../script/interfaces/ShaderSystemInterface.h | 30 +++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/install/scripts/materialtest.py b/install/scripts/materialtest.py index 0e6b889f0a..0f89e3e7cc 100644 --- a/install/scripts/materialtest.py +++ b/install/scripts/materialtest.py @@ -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())) diff --git a/plugins/script/interfaces/ShaderSystemInterface.cpp b/plugins/script/interfaces/ShaderSystemInterface.cpp index b73f546144..c5317b212f 100644 --- a/plugins/script/interfaces/ShaderSystemInterface.cpp +++ b/plugins/script/interfaces/ShaderSystemInterface.cpp @@ -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 diff --git a/plugins/script/interfaces/ShaderSystemInterface.h b/plugins/script/interfaces/ShaderSystemInterface.h index 53e5d133b6..c220a62754 100644 --- a/plugins/script/interfaces/ShaderSystemInterface.h +++ b/plugins/script/interfaces/ShaderSystemInterface.h @@ -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); + } }; /**