bugfix/aviodance for [#23488] bpy.types.Texture.type don´t update the parameters of texture

bpy.data.textures.new() now has a type argument since changing the type after forces the hacky use of recast_type().
This commit is contained in:
Campbell Barton
2010-08-25 01:20:50 +00:00
parent 6b45d94c99
commit c09ed77697
3 changed files with 10 additions and 16 deletions
+2 -7
View File
@@ -266,12 +266,10 @@ def read_string(file):
s += struct.unpack('<c', file.read(1))[0]
#print 'string: ',s
#remove the null character from the string
s = str(s[:-1], 'ASCII')
# print("read string", s)
#remove the null character from the string
return s
# return s[:-1]
######################################################
# IMPORT
@@ -300,7 +298,6 @@ def add_texture_to_material(image, texture, material, mapto):
if image:
texture.image = image
# if image: texture.setImage(image) # double check its an image.
material.add_texture(texture, "UV", mapto)
@@ -414,9 +411,7 @@ def process_next_chunk(file, previous_chunk, importedObjects, IMAGE_SEARCH):
return [float(col)/255 for col in struct.unpack('<3B', temp_data)] # data [0,1,2] == rgb
def read_texture(new_chunk, temp_chunk, name, mapto):
new_texture = bpy.data.textures.new(name)
new_texture.type = 'IMAGE'
new_texture = new_texture.recast_type()
new_texture = bpy.data.textures.new(name, type='IMAGE')
img = None
while (new_chunk.bytes_read < new_chunk.length):
+4 -7
View File
@@ -356,18 +356,15 @@ def create_materials(filepath, material_libs, unique_materials, unique_material_
#==================================================================================#
def load_material_image(blender_material, context_material_name, imagepath, type):
texture= bpy.data.textures.new(type)
texture.type= 'IMAGE'
texture = texture.recast_type() # Workaround for limitation in rna api.
# texture= bpy.data.textures.new(type)
# texture.setType('Image')
texture= bpy.data.textures.new(name=type, type='IMAGE')
# Absolute path - c:\.. etc would work here
image= obj_image_load(imagepath, DIR, IMAGE_SEARCH)
has_data = image.has_data if image else False
image = obj_image_load(imagepath, DIR, IMAGE_SEARCH)
has_data = False
if image:
texture.image = image
has_data = image.has_data
# Adds textures for materials (rendering)
if type == 'Kd':
@@ -348,7 +348,7 @@ void rna_Main_fonts_remove(Main *bmain, ReportList *reports, VFont *vfont)
/* XXX python now has invalid pointer? */
}
Tex *rna_Main_textures_new(Main *bmain, char* name)
Tex *rna_Main_textures_new(Main *bmain, char* name, int type)
{
Tex *tex= add_texture(name);
tex->id.us--;
@@ -766,7 +766,7 @@ void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_function_ui_description(func, "Add a new curve to the main database");
parm= RNA_def_string(func, "name", "Curve", 0, "", "New name for the datablock.");
RNA_def_property_flag(parm, PROP_REQUIRED);
parm= RNA_def_enum(func, "type", object_type_curve_items, 0, "Type", "The type of curve object to add");
parm= RNA_def_enum(func, "type", object_type_curve_items, 0, "Type", "The type of curve to add");
RNA_def_property_flag(parm, PROP_REQUIRED);
/* return type */
parm= RNA_def_pointer(func, "curve", "Curve", "", "New curve datablock.");
@@ -841,6 +841,8 @@ void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_function_ui_description(func, "Add a new texture to the main database");
parm= RNA_def_string(func, "name", "Texture", 0, "", "New name for the datablock.");
RNA_def_property_flag(parm, PROP_REQUIRED);
parm= RNA_def_enum(func, "type", texture_type_items, 0, "Type", "The type of texture to add");
RNA_def_property_flag(parm, PROP_REQUIRED);
/* return type */
parm= RNA_def_pointer(func, "texture", "Texture", "", "New texture datablock.");
RNA_def_function_return(func, parm);