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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 86 - (show 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 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using gr2lib.core.helpers;
5
6 using gr2lib.core.interfaces;
7
8 namespace gr2lib.core.coretypes.implementation
9 {
10 public class Texture : ITexture
11 {
12 private FilePath _FromFileName;
13 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
22
23
24 public Texture()
25 {
26 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 //this.ExtendedData = new IntPtr();
35 //this.NativePointer = IntPtr.Zero;
36 }
37
38 internal static Texture ReadFromMemory(IntPtr pointer)
39 {
40 try
41 {
42 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 }
48 catch (Exception ex)
49 {
50 Console.WriteLine(ex.ToString());
51 return default(Texture);
52 }
53 }
54
55 internal static Texture ReadFromNative(native.Texture native)
56 {
57 try
58 {
59 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 }
83 catch (Exception ex)
84 {
85 Console.WriteLine(ex.ToString());
86 return default(Texture);
87 }
88 }
89
90 #region ITexture Members
91 public FilePath FromFileName { get { return _FromFileName; } set { _FromFileName = value; } }
92 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
101 #region INativePointer Members
102 private IntPtr _NativePointer;
103 public IntPtr NativePointer { get { return _NativePointer; } set { _NativePointer = value; } }
104 #endregion
105
106 #region IExtendedData Members
107 private IntPtr _ExtendedData;
108 public IntPtr ExtendedData { get { return _ExtendedData; } set { _ExtendedData = value; } }
109 #endregion
110 }
111 }

  ViewVC Help
Powered by ViewVC 1.1.22