/// <summary> /// Checks if our custom texture has been requested and returns a new <see cref="EmbeddedTextureData"></see>. /// </summary> /// <param name="path">Requested texture path.</param> /// <param name="basePath">Requested texture base path.</param> /// <returns>If our custom texture has been requested, returns a new <see cref="EmbeddedTextureData"></see>, otherwise, returns <c>null</c></returns> private static EmbeddedTextureData CustomTextureDataCallback(string path, string basePath) { //Checks if our custom texture has been requested. if (path == TextureFilename) { var embeddedTextureData = new EmbeddedTextureData(); //Creates a new EmbeddedTextureData instance. var textureBytes = Convert.FromBase64String(TextureData); //Transforms texture data from a Base64 string into a byte array. embeddedTextureData.DataPointer = STBImageLoader.LoadTextureDataFromByteArray(textureBytes, out embeddedTextureData.Width, out embeddedTextureData.Height, out embeddedTextureData.NumChannels, out embeddedTextureData.DataLength); //Loads our custom texture data from the given byte array. embeddedTextureData.OnDataDisposal = STBImageLoader.UnloadTextureData; return(embeddedTextureData); } //Returns null if our custom texture hasn't been requested. return(null); }
/// <summary> /// Checks if our custom texture has been requested and returns a new <see cref="EmbeddedTextureData"></see>. /// </summary> /// <param name="path">Requested texture path.</param> /// <param name="basePath">Requested texture base path.</param> /// <returns>If our custom texture has been requested, returns a new <see cref="EmbeddedTextureData"></see>, otherwise, returns <c>null</c></returns> private static EmbeddedTextureData CustomTextureDataCallback(string path, string basePath) { //Checks if our custom texture has been requested. if (path == textureFilename) { var embeddedTextureData = new EmbeddedTextureData(); //Creates a new EmbeddedTextureData instance. var textureBytes = Convert.FromBase64String(textureData); //Transforms texture data from a Base64 string into a byte array. #if !TRILIB_USE_UNITY_TEXTURE_LOADER embeddedTextureData.Data = STBImageLoader.LoadTextureDataFromByteArray(textureBytes, out embeddedTextureData.Width, out embeddedTextureData.Height, out embeddedTextureData.NumChannels); //Loads our custom texture data from the given byte array. embeddedTextureData.IsRawData = true; //Tells this texture contains raw data (True for all textures loaded with STBImageLoader). #else embeddedTextureData.Data = textureBytes; //Set the texture data to the raw PNG texture contents. #endif return(embeddedTextureData); } //Returns null if our custom texture hasn't been requested. return(null); }