Esempio n. 1
0
        static Texture2D LoadTexture(string FileName)
        {
            string DirName = Path.GetDirectoryName(FileName);
            string Name    = Path.GetFileNameWithoutExtension(FileName);

            foreach (var ImgExt in ImgExtensions)
            {
                string NewFileName = Path.Combine(DirName, Name + ImgExt);

                if (File.Exists(NewFileName))
                {
                    FileName = NewFileName;
                    break;
                }
            }

            if (!File.Exists(FileName))
            {
                Console.WriteLine("Could not find " + FileName);
                FileName = "data/missing.png";
            }

            Image Img = Raylib.LoadImage(FileName);

            return(LoadTexture(Img));
        }
Esempio n. 2
0
        static Texture2D LoadTexture(FoamExtension Ext)
        {
            using (MemoryStream MS = new MemoryStream(Ext.Data)) {
                MS.Seek(0, SeekOrigin.Begin);

                using (Bitmap Bmp = new Bitmap(NetImage.FromStream(MS))) {
                    BitmapData Data       = Bmp.LockBits(new System.Drawing.Rectangle(0, 0, Bmp.Width, Bmp.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
                    uint *     OrigColors = (uint *)Data.Scan0;

                    int   Len    = Bmp.Width * Bmp.Height;
                    uint *Colors = (uint *)Marshal.AllocHGlobal(Len * sizeof(uint));

                    for (int i = 0; i < Len; i++)
                    {
                        uint Orig = OrigColors[i];

                        byte R = (byte)((Orig >> 16) & 255);
                        byte G = (byte)((Orig >> 8) & 255);
                        byte B = (byte)((Orig >> 0) & 255);
                        byte A = (byte)((Orig >> 24) & 255);

                        Colors[i] = (uint)((R << 0) | (G << 8) | (B << 16) | (A << 24));
                    }

                    Image Img = Raylib.LoadImagePro(new IntPtr(Colors), Bmp.Width, Bmp.Height, (int)RaylibSharp.PixelFormat.UNCOMPRESSED_R8G8B8A8);
                    Marshal.FreeHGlobal(new IntPtr(Colors));

                    Bmp.UnlockBits(Data);
                    return(LoadTexture(Img));
                }
            }
        }
Esempio n. 3
0
        static Texture2D LoadTexture(Image Img)
        {
            Texture2D Tex = Raylib.LoadTextureFromImage(Img);

            //Raylib.GenTextureMipmaps(&Tex);
            //Raylib.SetTextureFilter(Tex, TextureFilterMode.FILTER_ANISOTROPIC_16X);
            //Raylib.SetTextureWrap(Tex, TextureWrapMode.WRAP_CLAMP);

            Raylib.SetTextureFilter(Tex, TextureFilterMode.FILTER_POINT);
            Raylib.SetTextureWrap(Tex, TextureWrapMode.WRAP_CLAMP);

            return(Tex);
        }