/// <summary> /// Loads a Texture trying both TextureLoader and GDI as interim /// </summary> /// <param name="device">Direct3D Device to load the texture into</param> /// <param name="path">Path to load the texture from</param> /// <returns>A Direct3D Texture object. Null if failed</returns> public static OrbitTexture Load(Device device, string path) { Texture loadedTexture = null; // if file is an ICO file, use the FromIcon, otherwise proceed to the other ones if (System.IO.Path.GetExtension(path).Trim().ToLower() == ".ico") { loadedTexture = FromIcon(device, path); } // if not icon, try the other two possible methods if (loadedTexture == null) { // try TextureLoader loadedTexture = FromLoader(device, path); if (loadedTexture == null) { // this means TextureLoader failed. try GDI loadedTexture = FromGDI(device, path); } } // will return a texture of any of them succeeded. since both return null, will return null if failed. OrbitTexture orbitTexture = new OrbitTexture(loadedTexture, path); return(orbitTexture.GetReference()); }
/// <summary> /// Loads a Texture from a GDI+ Bitmap /// </summary> /// <param name="device">Direct3D Device to load the texture into</param> /// <param name="sourceStream">Stream from which to create the texture</param> /// <returns>A OrbitTexture object. Null if failed</returns> public static OrbitTexture Load(Device device, System.IO.Stream sourceStream) { // try and load from the bitmap Texture texture = null; try { texture = new Texture(device, sourceStream, Usage.Dynamic, Pool.Default); } catch (Exception) { // return nothing if it fails return(null); } // create our OrbitTexture object which will house all the texture description parameters OrbitTexture orbitTexture = new OrbitTexture(texture); return(orbitTexture.GetReference()); }