/[gr2lib]/trunk/gr2lib/core/coretypes/implementation/Texture.cs
ViewVC logotype

Annotation of /trunk/gr2lib/core/coretypes/implementation/Texture.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 183 - (hide annotations) (download)
Fri Jul 23 21:08:46 2010 UTC (9 years, 4 months ago) by william
File size: 10616 byte(s)
Remove:
TextureTypeFormat
EncodingFormat

These have been deprecated

1 william 72 using System;
2     using System.Collections.Generic;
3     using System.Text;
4     using gr2lib.core.helpers;
5    
6 william 79 using gr2lib.core.interfaces;
7 william 95 using System.Diagnostics;
8 william 106 using gr2lib.core.exceptions;
9 william 141 using gr2lib.core.ui.helpers;
10     using System.ComponentModel;
11     using gr2lib.core.typedefs;
12 william 160 using gr2lib.core.ui.typeeditors;
13     using System.Drawing.Design;
14 william 79
15 william 72 namespace gr2lib.core.coretypes.implementation
16     {
17 william 142 public class Texture : ITexture
18 william 72 {
19 william 141 private GrannyRigResource _rigResource;
20    
21 william 75 private FilePath _FromFileName;
22 william 160 private NameValuePair<string, granny_texture_type> _TextureType;
23 william 72 private int _Width;
24     private int _Height;
25 william 160 private NameValuePair<string, granny_texture_encoding> _Encoding;
26 william 166 private NameValuePair<string, granny_pixel_layout> _SubFormat;
27 william 72 private Layout _Layout;
28     private List<Image> _Images;
29    
30 william 82
31 william 141 public override string ToString()
32     {
33     return this.FromFileName.Name;
34     }
35 william 72
36 william 149 //private string _ParentResourceName;
37 william 142 protected internal string ParentResourceName { get { return "Textures"; } }
38    
39     public Texture()// : base("Textures")
40 william 72 {
41 william 73 this.FromFileName = "";
42 william 166 this.TextureType = new NameValuePair<string, granny_texture_type>(coreapi.GetGrannyEnumTypeString<granny_texture_type>(granny_texture_type.GrannyColorMapTextureType), granny_texture_type.GrannyColorMapTextureType);
43 william 73 this.Width = 0;
44     this.Height = 0;
45 william 166 this.Encoding = new NameValuePair<string, granny_texture_encoding>(coreapi.GetGrannyEnumTypeString<granny_texture_encoding>(granny_texture_encoding.GrannyBinkTextureEncoding), granny_texture_encoding.GrannyBinkTextureEncoding);
46     this.SubFormat = new NameValuePair<string, granny_pixel_layout>(coreapi.GetGrannyEnumTypeString<granny_pixel_layout>(granny_pixel_layout.GrannyBGRA8888PixelFormat), granny_pixel_layout.GrannyBGRA8888PixelFormat);
47 william 73 this.Layout = new Layout();
48     this.Images = new List<Image>();
49 william 83 //this.ExtendedData = new IntPtr();
50     //this.NativePointer = IntPtr.Zero;
51 william 141 this._rigResource = new GrannyRigResource();
52 william 72 }
53 william 141 public Texture(int index)
54     {
55     this.FromFileName = "";
56 william 166 this.TextureType = new NameValuePair<string, granny_texture_type>(coreapi.GetGrannyEnumTypeString<granny_texture_type>(granny_texture_type.GrannyColorMapTextureType), granny_texture_type.GrannyColorMapTextureType);
57 william 141 this.Width = 0;
58     this.Height = 0;
59 william 166 this.Encoding = new NameValuePair<string, granny_texture_encoding>(coreapi.GetGrannyEnumTypeString<granny_texture_encoding>(granny_texture_encoding.GrannyBinkTextureEncoding), granny_texture_encoding.GrannyBinkTextureEncoding);
60     this.SubFormat = new NameValuePair<string, granny_pixel_layout>(coreapi.GetGrannyEnumTypeString<granny_pixel_layout>(granny_pixel_layout.GrannyBGRA8888PixelFormat), granny_pixel_layout.GrannyBGRA8888PixelFormat);
61 william 141 this.Layout = new Layout();
62     this.Images = new List<Image>();
63     //this.ExtendedData = new IntPtr();
64     //this.NativePointer = IntPtr.Zero;
65     this._rigResource = new GrannyRigResource();
66     this.Index = index;
67     }
68 william 142
69     internal static native.Texture AssignToStructure(Texture texture)
70     {
71     native.Texture _texture_struct = new gr2lib.core.coretypes.native.Texture();
72    
73 william 149 //_texture_struct.Encoding = texture.Encoding;
74     //_texture_struct.ExtendedData = texture.ExtendedData;
75     //_texture_struct.FromFileName = texture.FromFileName.FullPath;
76     //_texture_struct.Height = texture.Height;
77     ////_texture_struct.Images = texture.Images;
78     //_texture_struct.Layout = Layout.AssignToStructure(texture.Layout);
79     //_texture_struct.SubFormat = texture.SubFormat;
80     //_texture_struct.TextureType = texture.TextureType;
81     //_texture_struct.Width = texture.Width;
82 william 142
83     return _texture_struct;
84     }
85    
86 william 72 internal static Texture ReadFromMemory(IntPtr pointer)
87     {
88 william 86 try
89     {
90 william 72 if (pointer == IntPtr.Zero) return null;
91     native.Texture native = Helpers.ReadFromMemory<native.Texture>(pointer);
92     Texture managed = ReadFromNative(native);
93     managed.NativePointer = pointer;
94     return managed;
95 william 86 }
96 william 106 catch (Exception ex)
97 william 86 {
98 william 95 StackTrace st = new StackTrace(true);
99 william 102 #if ENABLE_EXCEPTION_OUTPUT_TO_CONSOLE
100 william 106 Granny2ExceptionWriter.WriteToConsole(ex,st);
101 william 102 #endif
102 william 86 return default(Texture);
103     }
104 william 72 }
105    
106     internal static Texture ReadFromNative(native.Texture native)
107     {
108 william 86 try
109 william 72 {
110 william 86 Texture managed = new Texture();
111     managed.FromFileName = native.FromFileName;
112 william 166 managed.TextureType = new NameValuePair<string, granny_texture_type>(coreapi.GetGrannyEnumTypeString<granny_texture_type>((granny_texture_type)native.TextureType), (granny_texture_type)native.TextureType);
113 william 86 managed.Width = native.Width;
114     managed.Height = native.Height;
115 william 166 managed.Encoding = new NameValuePair<string, granny_texture_encoding>(coreapi.GetGrannyEnumTypeString<granny_texture_encoding>((granny_texture_encoding)native.Encoding), (granny_texture_encoding)native.Encoding);
116     managed.SubFormat = new NameValuePair<string, granny_pixel_layout>(coreapi.GetGrannyEnumTypeString<granny_pixel_layout>((granny_pixel_layout)native.SubFormat), (granny_pixel_layout)native.SubFormat);
117 william 86 managed.Layout = Layout.ReadFromNative(native.Layout);
118     IntPtr[] images = Helpers.ReadPtrArrayFromMemory<native.Image>(native.Images);
119     int length = images.Length;
120     managed.Images = new List<Image>(length);
121     foreach (IntPtr ptr in images)
122     {
123     Image _tmp = new Image();
124     _tmp.NativePointer = ptr;
125     managed.Images.Add(_tmp);
126     }
127     for (int i = 0; i < length; i++)
128     {
129 william 142 managed.Images[i] = Image.ReadFromMemory(images[i]);
130 william 86 }
131 william 142
132     for (int i = 0; i < managed.Images.Count; i++)
133     {
134     for (int j = 0; j < managed.Images[i].MIPLevels.Count; j++)
135     {
136     for (int k = 0; k < managed.Images[i].MIPLevels[j].Pixels.Count; k++)
137     {
138     managed.Images[i].MIPLevels[j].Pixels[k].ReferenceTexture = managed;
139     }
140     }
141     }
142    
143    
144 william 86 managed.ExtendedData = native.ExtendedData;
145     return managed;
146 william 72 }
147 william 106 catch (Exception ex)
148 william 72 {
149 william 95 StackTrace st = new StackTrace(true);
150 william 102 #if ENABLE_EXCEPTION_OUTPUT_TO_CONSOLE
151 william 106 Granny2ExceptionWriter.WriteToConsole(ex,st);
152 william 102 #endif
153 william 86 return default(Texture);
154 william 72 }
155     }
156    
157     #region ITexture Members
158 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
159 william 75 public FilePath FromFileName { get { return _FromFileName; } set { _FromFileName = value; } }
160 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
161 william 160 [Editor(typeof(UIComboValueSelector<granny_texture_type, int>), typeof(UITypeEditor))]
162     public NameValuePair<string, granny_texture_type> TextureType { get { return _TextureType; } set { _TextureType = value; } }
163 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
164 william 72 public int Width { get { return _Width; } set { _Width = value; } }
165 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
166 william 72 public int Height { get { return _Height; } set { _Height = value; } }
167 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
168 william 160 [Editor(typeof(UIComboValueSelector<granny_texture_encoding, int>), typeof(UITypeEditor))]
169     public NameValuePair<string, granny_texture_encoding> Encoding { get { return _Encoding; } set { _Encoding = value; } }
170 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
171 william 166 [Editor(typeof(UIComboValueSelector<granny_pixel_layout, int>), typeof(UITypeEditor))]
172     public NameValuePair<string, granny_pixel_layout> SubFormat { get { return _SubFormat; } set { _SubFormat = value; } }
173 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
174     [Browsable(true)]
175 william 72 public Layout Layout { get { return _Layout; } set { _Layout = value; } }
176 william 141 [RefreshPropertiesAttribute(RefreshProperties.All)]
177 william 72 public List<Image> Images { get { return _Images; } set { _Images = value; } }
178     #endregion
179 william 79
180     #region INativePointer Members
181     private IntPtr _NativePointer;
182 william 181 /// <summary>
183     /// When used in a derived class, gets the native pointer for this instance
184     /// </summary>
185 william 79 public IntPtr NativePointer { get { return _NativePointer; } set { _NativePointer = value; } }
186     #endregion
187 william 82
188     #region IExtendedData Members
189     private IntPtr _ExtendedData;
190 william 181 /// <summary>
191     /// When used in a derived class, gets the ExtendedData pointer for this instance
192     /// </summary>
193 william 82 public IntPtr ExtendedData { get { return _ExtendedData; } set { _ExtendedData = value; } }
194     #endregion
195 william 141
196     #region IResource Members
197     private int _index;
198     [RefreshPropertiesAttribute(RefreshProperties.All)]
199     internal int Index { get { return _index; } set { _index = value; } }
200     #endregion
201     #region IEmbeddedResource Members
202     [RefreshPropertiesAttribute(RefreshProperties.All)]
203     internal string IndexName { get { return new GrannyRigResource("Texture", this.Index, this.Name).ResourceBlockIndexFormat; } }
204     [RefreshPropertiesAttribute(RefreshProperties.All)]
205     internal string FullName { get { return new GrannyRigResource("Texture", this.Index, this.Name).ResourceBlockFormat; } }
206     [RefreshPropertiesAttribute(RefreshProperties.All)]
207     internal string Name { get { return this.FromFileName; } set { this.FromFileName = value; } }
208     #endregion
209 william 72 }
210     }

  ViewVC Help
Powered by ViewVC 1.1.22