]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/__init__.py
Support defining uniform values for materials in Blender
[libs/gl.git] / blender / io_mspgl / __init__.py
index 55661f51130f227f798028b779c8397f06961fef..b5892b1c67abde272a210d384f13ebf83fafaa63 100644 (file)
@@ -172,6 +172,30 @@ class ExportMspGLCamera(bpy.types.Operator, ExportMspGLBase):
                from .export_camera import CameraExporter
                return CameraExporter()
 
+class AddUniform(bpy.types.Operator):
+       bl_idname = "material.add_uniform"
+       bl_label = "Add Uniform"
+       bl_description = "Add a new uniform value to the material"
+
+       def execute(self, context):
+               mat = context.active_object.active_material
+               mat.uniforms.add()
+               mat.active_uniform_index = len(mat.uniforms)-1
+
+               return {"FINISHED"}
+
+class RemoveUniform(bpy.types.Operator):
+       bl_idname = "material.remove_uniform"
+       bl_label = "Remove Uniform"
+       bl_description = "Remove the selected uniform from the material"
+
+       def execute(self, context):
+               mat = context.active_object.active_material
+               mat.uniforms.remove(mat.active_uniform_index)
+               mat.active_uniform_index = min(mat.active_uniform_index, len(mat.uniforms)-1)
+
+               return {"FINISHED"}
+
 def menu_func_export(self, context):
        self.layout.operator(ExportMspGLMesh.bl_idname, text="Msp GL mesh")
        self.layout.operator(ExportMspGLObject.bl_idname, text="Msp GL object")
@@ -180,7 +204,7 @@ def menu_func_export(self, context):
        self.layout.operator(ExportMspGLScene.bl_idname, text="Msp GL scene")
        self.layout.operator(ExportMspGLCamera.bl_idname, text="Msp GL camera")
 
-classes = [ExportMspGLMesh, ExportMspGLObject, ExportMspGLArmature, ExportMspGLAnimation, ExportMspGLScene, ExportMspGLCamera]
+classes = [ExportMspGLMesh, ExportMspGLObject, ExportMspGLArmature, ExportMspGLAnimation, ExportMspGLScene, ExportMspGLCamera, AddUniform, RemoveUniform]
 
 def register():
        for c in classes: