Esempio n. 1
0
        public static Texture CreateTextureFromFile(String filePath, imaging::PixelFormat imageFormat, opengl::PixelFormat pixelFormat)
        {
            using (Bitmap bitmap = new Bitmap(filePath))
            {
                bitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);
                BitmapData imageData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, imageFormat);
                var        texture   = new Texture(pixelFormat, bitmap.Width, bitmap.Height, imageData.Scan0);
                bitmap.UnlockBits(imageData);

                return(texture);
            }
        }
Esempio n. 2
0
        public Texture(String fileName, imaging::PixelFormat imageFormat, opengl::PixelFormat format)
        {
            glID = GL.GenTexture();
            using (Bitmap bitmap = new Bitmap(fileName))
            {
                bitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);
                BitmapData imageData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, imageFormat);

                GL.BindTexture(TextureTarget.Texture2D, glID);

                GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgb, bitmap.Width, bitmap.Height, 0, format, PixelType.UnsignedByte, imageData.Scan0);
                GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);

                //Cleanup
                GL.BindTexture(TextureTarget.Texture2D, 0);
                bitmap.UnlockBits(imageData);
            }
        }