Exemple #1
0
        public Texture(Sdx.Bitmap bmp)
        {
            // Variables
            Sdx.Imaging.BitmapData	bmpdata=	bmp.LockBits(new Sdx.Rectangle(0, 0, bmp.Width, bmp.Height), Sdx.Imaging.ImageLockMode.ReadOnly, Sdx.Imaging.PixelFormat.Format32bppArgb);
            int	tid=	GL.GenTexture();

            GL.BindTexture(TextureTarget.Texture2D, tid);
            GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, bmp.Width, bmp.Height, 0, PixelFormat.Bgra, PixelType.UnsignedByte, bmpdata.Scan0);
            bmp.UnlockBits(bmpdata);

            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) TextureMinFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) TextureMagFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) TextureWrapMode.Repeat);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int) TextureWrapMode.Repeat);

            ID=	tid;
            bitmap=	bmp;
        }
Exemple #2
0
        private static void SetImageDataToRawImg(sdr.Bitmap png, RawImgClass p3img)
        {
            sdr.Imaging.BitmapData bmpData;

            p3img.imgData = new byte[(int)(p3img.Width * p3img.Height * ((float)p3img.BitCount / 8))];
            bmpData = png.LockBits(new sdr.Rectangle(0, 0, png.Width, png.Height), sdr.Imaging.ImageLockMode.ReadOnly, png.PixelFormat);
            sirs.Marshal.Copy(bmpData.Scan0, p3img.imgData, 0, p3img.imgData.Length);
            png.UnlockBits(bmpData);
        }
        /// <summary>
        /// Bitmap → Texture形式に変換する
        /// </summary>
        /// <param name="dev">XNAのGraphicsDevice</param>
        /// <param name="bmp">Bitmap形式の元画像</param>
        /// <returns>Texture2D形式の画像</returns>
        private static Texture2D GetTexture(GraphicsDevice dev, SD.Bitmap bmp)
        {
            int[] imgData = new int[bmp.Width * bmp.Height];
            Texture2D texture = new Texture2D(dev, bmp.Width, bmp.Height);

            unsafe
            {
                // lock bitmap
                SDI.BitmapData origdata =
                    bmp.LockBits(new SD.Rectangle(0, 0, bmp.Width, bmp.Height), SDI.ImageLockMode.ReadOnly, bmp.PixelFormat);

                uint* byteData = (uint*)origdata.Scan0;

                // copy data
                Marshal.Copy(origdata.Scan0, imgData, 0, bmp.Width * bmp.Height);

                byteData = null;

                // unlock bitmap
                bmp.UnlockBits(origdata);
            }

            texture.SetData(imgData);

            return texture;
        }