]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/properties.py
Check the flat qualifier from the correct member
[libs/gl.git] / blender / io_mspgl / properties.py
index ef4018264e98613811f1eea0d4be1a0bb4b59be1..6e1df6416b974ecb731d47d65c7fb7c53814a7b8 100644 (file)
@@ -21,6 +21,8 @@ class MspGLWorldProperties(bpy.types.Panel):
 
        def draw(self, context):
                world = context.scene.world
+               if not world:
+                       return
 
                self.layout.prop(world, "use_sky")
                if world.use_sky:
@@ -40,15 +42,17 @@ class MspGLMeshProperties(bpy.types.Panel):
        def draw(self, context):
                mesh = context.active_object.data
 
-               self.layout.prop(mesh, "winding_test")
                self.layout.prop(mesh, "smoothing")
-               self.layout.prop(mesh, "use_strips")
+               self.layout.prop(mesh, "use_patches")
+               if not mesh.use_patches:
+                       self.layout.prop(mesh, "use_strips")
 
                self.layout.separator()
 
                col = self.layout.column()
                col.label(text="Data selection")
-               col.prop(mesh, "use_lines")
+               if not mesh.use_patches:
+                       col.prop(mesh, "use_lines")
                col.prop(mesh, "vertex_groups")
                col.prop(mesh, "max_groups_per_vertex")
 
@@ -115,11 +119,10 @@ class MspGLMaterialProperties(bpy.types.Panel):
                if mat.render_mode=='BUILTIN':
                        self.layout.prop(mat, "receive_shadows")
                        self.layout.prop(mat, "image_based_lighting")
+                       self.layout.prop(mat, "instancing")
                self.layout.prop(mat, "array_atlas")
                if mat.array_atlas:
                        self.layout.prop(mat, "array_layer")
-               if mat.render_mode!='EXTERNAL':
-                       self.layout.prop(mat, "material_atlas")
                if mat.render_mode=='CUSTOM':
                        self.layout.separator()
                        self.layout.label(text="Uniform values")
@@ -238,13 +241,13 @@ def register_properties():
        bpy.types.World.use_sky = bpy.props.BoolProperty(name="Realtime sky", description="Use a realtime rendered sky background", default=False)
        bpy.types.World.sun_light = bpy.props.PointerProperty(type=bpy.types.Light, name="Sun", description="Light to use as sun for the sky")
 
-       bpy.types.Mesh.winding_test = bpy.props.BoolProperty(name="Winding test", description="Perform winding test to skip back faces")
        bpy.types.Mesh.smoothing = bpy.props.EnumProperty(name="Smoothing", description="Smoothing method to use", default="MSPGL",
                items=(("NONE", "None", "No smoothing"),
                        ("BLENDER", "Blender", "Use Blender's vertex normals"),
                        ("MSPGL", "MspGL", "Compute vertex normals internally")))
        bpy.types.Mesh.use_lines = bpy.props.BoolProperty(name="Include lines", description="Include edges without faces as lines", default=False)
        bpy.types.Mesh.use_strips = bpy.props.BoolProperty(name="Use strips", description="Combine the mesh's triangles into triangle strips", default=True)
+       bpy.types.Mesh.use_patches = bpy.props.BoolProperty(name="Export as patches", description="Export faces as patches, suitable for tessellation", default=False)
        bpy.types.Mesh.vertex_groups = bpy.props.BoolProperty(name="Vertex groups", description="Include vertex groups and weights", default=False)
        bpy.types.Mesh.max_groups_per_vertex = bpy.props.IntProperty(name="Max groups", description="Maximum amount of groups per vertex", min=1, max=4, default=2)
        bpy.types.Mesh.use_uv = bpy.props.EnumProperty(name="Use UV", description="Use UV coordinates", default="UNIT0",
@@ -270,9 +273,9 @@ def register_properties():
        bpy.types.Material.active_render_method_index = bpy.props.IntProperty("Active render method index")
        bpy.types.Material.receive_shadows = bpy.props.BoolProperty(name="Receive shadows", description="Receive shadows from a shadow map", default=True)
        bpy.types.Material.image_based_lighting = bpy.props.BoolProperty(name="Image based lighting", description="Use an environment map for ambient lighting", default=False)
+       bpy.types.Material.instancing = bpy.props.BoolProperty(name="Instanced rendering", description="Use instanced draw calls for objects with this material", default=False)
        bpy.types.Material.array_atlas = bpy.props.BoolProperty(name="Texture array atlas", description="The material is stored in a texture array")
        bpy.types.Material.array_layer = bpy.props.IntProperty("Texture array layer", description="Layer of the texture array atlas to use")
-       bpy.types.Material.material_atlas = bpy.props.BoolProperty(name="Material atlas", description="Make this material part of a material atlas")
        bpy.types.Material.uniforms = bpy.props.CollectionProperty(type=MspGLUniform, name="Uniforms", description="Uniform variables to add to the technique")
        bpy.types.Material.active_uniform_index = bpy.props.IntProperty("Active uniform index")