- tex_res.statements.append(Statement("min_filter", Token("LINEAR")))
- tex_res.statements.append(Statement("storage", Token("RGBA"), texture.image.size[0], texture.image.size[1]))
- texdata = ""
- for p in texture.image.pixels:
- texdata += "\\x%02X"%int(p*255)
- tex_res.statements.append(Statement("raw_data", texdata))
+ if texture.use_interpolation:
+ if texture.use_mipmap:
+ tex_res.statements.append(Statement("min_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("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("generate_mipmap", True))
+ else:
+ tex_res.statements.append(Statement("min_filter", Token('NEAREST')))
+
+ if self.pixels=='REF':
+ from .util import image_name
+ tex_res.statements.append(Statement("image_data", image_name(texture.image)))
+ else:
+ texdata = ""
+ if texture.use_alpha:
+ fmt = 'RGBA'
+ for p in texture.image.pixels:
+ texdata += "\\x{:02X}".format(int(p*255))
+ else:
+ fmt = '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))
+ tex_res.statements.append(Statement("storage", Token(fmt), texture.image.size[0], texture.image.size[1]))
+ tex_res.statements.append(Statement("raw_data", texdata))