/[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 86 - (hide annotations) (download)
Fri Jul 16 23:35:21 2010 UTC (9 years, 4 months ago) by william
File size: 4112 byte(s)
Add Try/Catch blocks in to all API Calls

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    
8 william 72 namespace gr2lib.core.coretypes.implementation
9     {
10     public class Texture : ITexture
11     {
12 william 75 private FilePath _FromFileName;
13 william 72 private int _TextureType;
14     private int _Width;
15     private int _Height;
16     private int _Encoding;
17     private int _SubFormat;
18     private Layout _Layout;
19     private List<Image> _Images;
20    
21 william 82
22 william 79
23 william 72
24     public Texture()
25     {
26 william 73 this.FromFileName = "";
27     this.TextureType = 0;
28     this.Width = 0;
29     this.Height = 0;
30     this.Encoding = 0;
31     this.SubFormat = 0;
32     this.Layout = new Layout();
33     this.Images = new List<Image>();
34 william 83 //this.ExtendedData = new IntPtr();
35     //this.NativePointer = IntPtr.Zero;
36 william 72 }
37    
38     internal static Texture ReadFromMemory(IntPtr pointer)
39     {
40 william 86 try
41     {
42 william 72 if (pointer == IntPtr.Zero) return null;
43     native.Texture native = Helpers.ReadFromMemory<native.Texture>(pointer);
44     Texture managed = ReadFromNative(native);
45     managed.NativePointer = pointer;
46     return managed;
47 william 86 }
48     catch (Exception ex)
49     {
50     Console.WriteLine(ex.ToString());
51     return default(Texture);
52     }
53 william 72 }
54    
55     internal static Texture ReadFromNative(native.Texture native)
56     {
57 william 86 try
58 william 72 {
59 william 86 Texture managed = new Texture();
60     managed.FromFileName = native.FromFileName;
61     managed.TextureType = native.TextureType;
62     managed.Width = native.Width;
63     managed.Height = native.Height;
64     managed.Encoding = native.Encoding;
65     managed.SubFormat = native.SubFormat;
66     managed.Layout = Layout.ReadFromNative(native.Layout);
67     IntPtr[] images = Helpers.ReadPtrArrayFromMemory<native.Image>(native.Images);
68     int length = images.Length;
69     managed.Images = new List<Image>(length);
70     foreach (IntPtr ptr in images)
71     {
72     Image _tmp = new Image();
73     _tmp.NativePointer = ptr;
74     managed.Images.Add(_tmp);
75     }
76     for (int i = 0; i < length; i++)
77     {
78     managed.Images[i] = Image.ReadFromMemory(images[i]);
79     }
80     managed.ExtendedData = native.ExtendedData;
81     return managed;
82 william 72 }
83 william 86 catch (Exception ex)
84 william 72 {
85 william 86 Console.WriteLine(ex.ToString());
86     return default(Texture);
87 william 72 }
88     }
89    
90     #region ITexture Members
91 william 75 public FilePath FromFileName { get { return _FromFileName; } set { _FromFileName = value; } }
92 william 72 public int TextureType { get { return _TextureType; } set { _TextureType = value; } }
93     public int Width { get { return _Width; } set { _Width = value; } }
94     public int Height { get { return _Height; } set { _Height = value; } }
95     public int Encoding { get { return _Encoding; } set { _Encoding = value; } }
96     public int SubFormat { get { return _SubFormat; } set { _SubFormat = value; } }
97     public Layout Layout { get { return _Layout; } set { _Layout = value; } }
98     public List<Image> Images { get { return _Images; } set { _Images = value; } }
99     #endregion
100 william 79
101     #region INativePointer Members
102     private IntPtr _NativePointer;
103     public IntPtr NativePointer { get { return _NativePointer; } set { _NativePointer = value; } }
104     #endregion
105 william 82
106     #region IExtendedData Members
107     private IntPtr _ExtendedData;
108     public IntPtr ExtendedData { get { return _ExtendedData; } set { _ExtendedData = value; } }
109     #endregion
110 william 72 }
111     }

  ViewVC Help
Powered by ViewVC 1.1.22