]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/export_texture.py
Always export texture data inline if there's no image file
[libs/gl.git] / blender / io_mspgl / export_texture.py
index fea02a7d7e3d885cc606be138bdb01dda93f58f8..0a43ce624cfb296348e9a08c2cf4ada186f8068f 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
@@ -20,17 +22,18 @@ class TextureExporter:
                        else:
                                tex_res.statements.append(Statement("min_filter", Token('NEAREST')))
 
-               if self.pixels=='REF':
+               if not self.inline_data and texture.image.filepath:
                        from .util import image_name
-                       tex_res.statements.append(Statement("image_data", image_name(texture.image)))
+                       tex_res.statements.append(Statement("external_image", os.path.basename(texture.image.filepath)))
                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))