Ejemplo n.º 1
0
            /// <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);
            }
Ejemplo n.º 2
0
    /// <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);
    }