ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/OniSplit/Motoko/TextureExporter.cs
Revision: 1114
Committed: Wed Jan 22 14:08:57 2020 UTC (5 years, 8 months ago) by iritscen
File size: 1543 byte(s)
Log Message:
Adding OniSplit source code (v0.9.99.0). Many thanks to Neo for all his work over the years.

File Contents

# Content
1 using System;
2 using System.Collections.Generic;
3 using Oni.Imaging;
4
5 namespace Oni.Motoko
6 {
7 internal class TextureExporter : Exporter
8 {
9 protected string fileType;
10
11 public TextureExporter(InstanceFileManager fileManager, string outputDirPath, string fileType)
12 : base(fileManager, outputDirPath)
13 {
14 this.fileType = fileType;
15 }
16
17 protected override List<InstanceDescriptor> GetSupportedDescriptors(InstanceFile file)
18 {
19 return file.GetNamedDescriptors(TemplateTag.TXMP);
20 }
21
22 protected override void ExportInstance(InstanceDescriptor descriptor)
23 {
24 var texture = TextureDatReader.Read(descriptor);
25 var filePath = CreateFileName(descriptor, "." + fileType);
26
27 switch (fileType)
28 {
29 case "tga":
30 TgaWriter.Write(texture.Surfaces[0], filePath);
31 break;
32
33 case "dds":
34 DdsWriter.Write(texture.Surfaces, filePath);
35 break;
36
37 case "png":
38 case "jpg":
39 case "bmp":
40 case "tif":
41 #if !NETCORE
42 SysWriter.Write(texture.Surfaces[0], filePath);
43 #endif
44 break;
45
46 default:
47 throw new NotSupportedException(string.Format("Extracting textures as '{0}' is not supported", fileType));
48 }
49 }
50 }
51 }