/[gr2lib]/trunk/gr2lib_UnitTest/Program.cs
ViewVC logotype

Annotation of /trunk/gr2lib_UnitTest/Program.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 83 - (hide annotations) (download)
Fri Jul 16 21:26:08 2010 UTC (9 years, 6 months ago) by william
File size: 10497 byte(s)
bulk commit --
** Enable Support for Skeletons & Bones

** A bug has found its way into the code
 -get an unhandled EHAccessViolation
 - I think the problem is in the Textures Class (or one of the sub-classes)

1 william 9 using System;
2     using System.Collections.Generic;
3     using System.Text;
4    
5 william 16 using gr2lib.core;
6 william 70 //using gr2lib.core.coretypes;
7 william 16 using gr2lib.core.apiversion;
8 william 50 using gr2lib.core.exceptions;
9 william 69 using gr2lib.core.helpers;
10 william 70 using gr2lib.core.coretypes.implementation;
11 william 16
12 william 9 namespace gr2lib_UnitTest
13     {
14 william 77
15 william 9 class Program
16     {
17     static void Main(string[] args)
18 william 77 {
19 william 65 string GrannyFilename = shared.GRANNY_TEST_FILE;
20 william 50 try
21     {
22 william 70 #region Check Granny2 API Version
23 william 50 // Setup access to check loaded Granny2 API Version
24 william 58 granny2apiversion apiversion = new granny2apiversion(shared.EXPECTED_API_VERSION);
25 william 16
26 william 50 // Check if the Loaded API Version Matches
27     if (!apiversion.apiversionsmatch)
28     {
29     // the loaded version does not match
30     Console.WriteLine("Warning:\n" +
31     "\t Loaded Granny2 DLL Version: " + apiversion.apiversion.version + "\n" +
32     "\t Expected Version: " + apiversion.expectedapiversion.version);
33     // return from void to exit application
34     return;
35     }
36     else
37     {
38     // the loaded version matches
39     Console.WriteLine("Loaded granny2.dll: " + apiversion.apiversion.version);
40     }
41 william 70 #endregion
42    
43     #region Parse Commandline
44 william 69 if (args.Length == 1)
45 william 65 {
46 william 69 GrannyFilename = args[0];
47 william 65 }
48 william 69 else if (args.Length > 1)
49     {
50 william 77 throw new InvalidOperationException("ERROR: Recieved Invalid Commandline: " + new arraytostring<string, string[]>(args));
51 william 69 }
52 william 61
53 william 65 if (System.IO.File.Exists(GrannyFilename))
54     {
55     Console.WriteLine("Using Granny2 File: " + GrannyFilename);
56     }
57     else
58     {
59     throw new System.IO.FileNotFoundException("Unable to find: " + GrannyFilename);
60     }
61 william 70 #endregion
62 william 61
63 william 74 #region Read Granny2 Data
64 william 70 unsafe
65     {
66     grnfileinfo info = grnfileinfo.ReadFromFile(GrannyFilename);
67    
68 william 72 #region Read FromFileName
69     Console.WriteLine();
70 william 83 Console.WriteLine("From File Name: " + info.FromFileName);
71     Console.WriteLine("ExtendedData: " + info.ExtendedData);
72 william 72 #endregion
73    
74 william 71 #region Read ArtToolInfo
75 william 70 Console.WriteLine();
76     Console.WriteLine("Art Tool Data:");
77     Console.WriteLine("\tTool Name: " + info.ArtToolInfo.FromArtToolName);
78     Console.WriteLine("\tTool Version: " + string.Format("{0}.{1}", info.ArtToolInfo.ArtToolMajorRevision, info.ArtToolInfo.ArtToolMinorRevision));
79     Console.WriteLine("\tTool Units Per Meter: " + info.ArtToolInfo.UnitsPerMeter);
80    
81 william 83 Console.WriteLine("\tTool Origin: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Origin.x, info.ArtToolInfo.Origin.y, info.ArtToolInfo.Origin.z));
82     Console.WriteLine("\tTool Right: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Right.x, info.ArtToolInfo.Right.y, info.ArtToolInfo.Right.z));
83     Console.WriteLine("\tTool Up: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Up.x, info.ArtToolInfo.Up.y, info.ArtToolInfo.Up.z));
84     Console.WriteLine("\tTool Back: " + string.Format("[{0},{1},{2}]", info.ArtToolInfo.Back.x, info.ArtToolInfo.Back.y, info.ArtToolInfo.Back.z));
85 william 70
86     Console.WriteLine("\tTool ExtendedData: " + info.ArtToolInfo.ExtendedData);
87 william 71 #endregion
88    
89     #region Read ExporterInfo
90     Console.WriteLine();
91     Console.WriteLine("Exporter Info:");
92     Console.WriteLine("\tExporter Name: " + info.ExporterInfo.ExporterName);
93    
94 william 77 Console.WriteLine("\tExporter Version: " +
95     string.Format("{0}.{1}.{2}.{3}",
96 william 71 info.ExporterInfo.ExporterMajorRevision,
97     info.ExporterInfo.ExporterMinorRevision,
98     info.ExporterInfo.ExporterCustomization,
99     info.ExporterInfo.ExporterBuildNumber));
100    
101     Console.WriteLine("\tExporter ExtendedData: " + info.ExporterInfo.ExtendedData);
102     #endregion
103 william 72
104     #region Read Textures
105     Console.WriteLine();
106     Console.WriteLine("Texture List:");
107     foreach (Texture t in info.Textures)
108     {
109     Console.WriteLine("\tName: " + t.FromFileName);
110     Console.WriteLine("\tType: " + t.TextureType);
111     Console.WriteLine("\tWidth: " + t.Width);
112     Console.WriteLine("\tHeight: " + t.Height);
113     Console.WriteLine("\tEncoding: " + t.Encoding);
114     Console.WriteLine("\tSubFormat: " + t.SubFormat);
115     // layout
116     Console.WriteLine("\tBytes Per Pixel: " + t.Layout.BytesPerPixel);
117     Console.WriteLine("\tShiftForComponent: " + new arraytostring<int, int[]>(t.Layout.ShiftForComponent));
118     Console.WriteLine("\tBitsForComponent: " + new arraytostring<int, int[]>(t.Layout.BitsForComponent));
119     // images
120 william 77 Console.WriteLine("\tImage List:");
121     foreach (Image img in t.Images)
122     {
123     foreach (MIPLevel mip in img.MIPLevels)
124     {
125     Console.WriteLine("\t\tMipLevel Stride: " + mip.Stride);
126     if (mip.Pixels.Count > 0)
127     {
128     Console.WriteLine("\t\tMipLevel Pixel: " + "{Pixel Data " + "[" + mip.Pixels.Count + "]}");
129     //// export image
130     //mip.Pixels.Export(@"exported_images\" + t.FromFileName.Name, t.Width, t.Height, mip.Stride);
131     }
132     }
133     }
134 william 72 Console.WriteLine("\tExtendedData: " + t.ExtendedData);
135     Console.WriteLine();
136     }
137     #endregion
138    
139 william 81 #region Read Materials
140     Console.WriteLine();
141     Console.WriteLine("Material List:");
142     foreach (Material m in info.Materials)
143     {
144     Console.WriteLine("\tMaterial Name: " + m.Name);
145     Console.WriteLine("\t\tMaterial IsTexture: " + m.IsTexture.ToString());
146     if (m.IsTexture)
147     {
148     Texture t = m.Texture;
149     Console.WriteLine("\t\tTexture:");
150     Console.WriteLine("\t\t\tName: " + t.FromFileName);
151     Console.WriteLine("\t\t\tType: " + t.TextureType);
152     Console.WriteLine("\t\t\tWidth: " + t.Width);
153     Console.WriteLine("\t\t\tHeight: " + t.Height);
154     Console.WriteLine("\t\t\tEncoding: " + t.Encoding);
155     Console.WriteLine("\t\t\tSubFormat: " + t.SubFormat);
156     // layout
157     Console.WriteLine("\t\t\tBytes Per Pixel: " + t.Layout.BytesPerPixel);
158     Console.WriteLine("\t\t\tShiftForComponent: " + new arraytostring<int, int[]>(t.Layout.ShiftForComponent));
159     Console.WriteLine("\t\t\tBitsForComponent: " + new arraytostring<int, int[]>(t.Layout.BitsForComponent));
160     Console.WriteLine("\t\t\tExtendedData: " + t.ExtendedData);
161     Console.WriteLine();
162     }
163     Console.WriteLine("\t\tExtendedData: " + m.ExtendedData);
164     Console.WriteLine();
165     }
166     #endregion
167 william 83
168    
169     #region Read Skeletons
170     Console.WriteLine();
171     Console.WriteLine("Skeleton List:");
172     foreach (Skeleton s in info.Skeletons)
173     {
174     Console.WriteLine("\tSkeleton Name: " + s.SkeletonName);
175     Console.WriteLine("\tSkeleton LodType: " + s.LodType);
176     Console.WriteLine("\tBones:");
177     foreach (Bone b in s.Bones)
178     {
179     Console.WriteLine("\t\tName: " + b.BoneName);
180     Console.WriteLine("\t\tParent Index: " + b.ParentIndex);
181     Console.WriteLine("\t\tLod Error: " + b.LodError);
182     Console.WriteLine("\t\tTransform: " + b.Transform.ToString());
183     if (b.HasLightInfo) { Console.WriteLine("\t\tLightInfo ExtendedData: " + b.LightInfo.ExtendedData); }
184     if (b.HasCameraInfo) { Console.WriteLine("\t\tCameraInfo ExtendedData: " + b.CameraInfo.ExtendedData); }
185     Console.WriteLine();
186     }
187     Console.WriteLine("\t\tExtendedData: " + s.ExtendedData);
188     Console.WriteLine();
189     }
190     #endregion
191 william 70 }
192     #endregion
193    
194 william 16 }
195 william 50 catch (granny2apiloadexception ex)
196 william 16 {
197 william 69 Console.WriteLine(ex.Message);
198 william 16 }
199 william 58 catch (Exception ex)
200     {
201 william 69 Console.WriteLine(ex.Message);
202 william 58 }
203 william 83 catch
204     {
205     Console.WriteLine("Unknown Error");
206     }
207 william 9 }
208     }
209     }
210 william 70

  ViewVC Help
Powered by ViewVC 1.1.22