コード例 #1
0
        public override Texture Load(IResource resource, LoaderParameters parameters)
        {
            ImageLoaderParameters imageParams = parameters as ImageLoaderParameters;

            if (imageParams == null)
            {
                imageParams = new ImageLoaderParameters();
            }

            return(m_translator.Load(resource, m_imageType, imageParams));
        }
コード例 #2
0
        public Texture Load(IResource resource, ImageType imageType, ImageLoaderParameters loaderParams)
        {
            m_imageState.AbsoluteFormat   = DataFormat.RGBA;
            m_imageState.AbsoluteDataType = DataType.UnsignedByte;
            m_imageState.AbsoluteOrigin   = OriginLocation.UpperLeft;

            ApplyImageStates();

            using (Stream stream = resource.OpenStream()) {
                DevIL.Image image = m_importer.Load(stream, imageType);

                return(CreateTexture(new ManagedImage(image)));
            }
        }
コード例 #3
0
        public override Texture Load(IResource resource, LoaderParameters parameters)
        {
            Stream str = resource.OpenStream();

            SD.Bitmap bitmap = new SD.Bitmap(str);

            ImageLoaderParameters imageParams = parameters as ImageLoaderParameters;

            if (imageParams != null)
            {
                if (imageParams.FlipImage)
                {
                    bitmap.RotateFlip(SD.RotateFlipType.RotateNoneFlipY);
                }
            }

            byte[] data = GetData(bitmap);
            SD.Imaging.PixelFormat pixelFormat = bitmap.PixelFormat;
            Color[] colors = null;
            switch (pixelFormat)
            {
            case SD.Imaging.PixelFormat.Format32bppArgb:
                colors = GetRGBA(bitmap, data);
                break;

            case SD.Imaging.PixelFormat.Format24bppRgb:
                colors = GetRGB(bitmap, data);
                break;

            case SD.Imaging.PixelFormat.Format8bppIndexed:
                colors = GetIndexed(bitmap, data);
                break;

            default:
                throw new InvalidOperationException("Cannot read from that format encoding");
            }

            Texture2D tex = new Texture2D(bitmap.Width, bitmap.Height, true, SurfaceFormat.Color, new DataBuffer <Color>(colors));

            tex.Name = resource.Name;

            bitmap.Dispose();
            str.Close();

            return(tex);
        }