]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/export_texture.py
Better checking of the existence of image filepath
[libs/gl.git] / blender / io_mspgl / export_texture.py
index fea02a7d7e3d885cc606be138bdb01dda93f58f8..dd8191ce9f108652b2924ee1a77fbd0197d0f94c 100644 (file)
@@ -1,6 +1,8 @@
+import os
+
 class TextureExporter:
        def __init__(self):
-               self.pixels = 'REF'
+               self.inline_data = True
 
        def export_texture(self, texture):
                from .datafile import Resource, Statement, Token
@@ -8,29 +10,30 @@ class TextureExporter:
 
                if texture.use_interpolation:
                        if texture.use_mipmap:
-                               tex_res.statements.append(Statement("min_filter", Token('LINEAR_MIPMAP_LINEAR')))
+                               tex_res.statements.append(Statement("filter", Token('LINEAR_MIPMAP_LINEAR')))
                                tex_res.statements.append(Statement("generate_mipmap", True))
                        else:
-                               tex_res.statements.append(Statement("min_filter", Token('LINEAR')))
+                               tex_res.statements.append(Statement("filter", Token('LINEAR')))
                        tex_res.statements.append(Statement("max_anisotropy", texture.filter_eccentricity))
                else:
                        if texture.use_mipmap:
-                               tex_res.statements.append(Statement("min_filter", Token('NEAREST_MIPMAP_NEAREST')))
+                               tex_res.statements.append(Statement("filter", Token('NEAREST_MIPMAP_NEAREST')))
                                tex_res.statements.append(Statement("generate_mipmap", True))
                        else:
-                               tex_res.statements.append(Statement("min_filter", Token('NEAREST')))
+                               tex_res.statements.append(Statement("filter", Token('NEAREST')))
 
-               if self.pixels=='REF':
-                       from .util import image_name
-                       tex_res.statements.append(Statement("image_data", image_name(texture.image)))
+               fn = os.path.basename(texture.image.filepath)
+               if not self.inline_data and fn:
+                       tex_res.statements.append(Statement("external_image", fn))
                else:
                        texdata = ""
+                       colorspace = texture.image.colorspace_settings.name
                        if texture.use_alpha:
-                               fmt = 'RGBA'
+                               fmt = 'SRGB_ALPHA' if colorspace=='sRGB' else 'RGBA'
                                for p in texture.image.pixels:
                                        texdata += "\\x{:02X}".format(int(p*255))
                        else:
-                               fmt = 'RGB'
+                               fmt = 'SRGB' if colorspace=='sRGB' else 'RGB'
                                for i in range(0, len(texture.image.pixels), 4):
                                        for j in range(3):
                                                texdata += "\\x{:02X}".format(int(texture.image.pixels[i+j]*255))