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)); }
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)); } } }
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); }