Exemplo n.º 1
0
 public Texture2D        Image2Texture(System.IO.FileInfo _fileName, ImageUtility.COMPONENT_FORMAT _componentFormat)
 {
     ImageUtility.ImagesMatrix images = null;
     if (_fileName.Extension.ToLower() == ".dds")
     {
         images = new ImageUtility.ImagesMatrix();
         images.DDSLoadFile(_fileName);
     }
     else
     {
         ImageUtility.ImageFile image = new ImageUtility.ImageFile(_fileName);
         if (image.PixelFormat != ImageUtility.PIXEL_FORMAT.BGRA8)
         {
             ImageUtility.ImageFile badImage = image;
             image = new ImageUtility.ImageFile();
             image.ConvertFrom(badImage, ImageUtility.PIXEL_FORMAT.BGRA8);
             badImage.Dispose();
         }
         images = new ImageUtility.ImagesMatrix(new ImageUtility.ImageFile[1, 1] {
             { image }
         });
     }
     return(new Texture2D(m_device, images, _componentFormat));
 }
Exemplo n.º 2
0
            public void     GetEquivalentRendererFormat(out ImageUtility.PIXEL_FORMAT _pixelFormat, out ImageUtility.COMPONENT_FORMAT _componentFormat)
            {
                switch (m_type)
                {
                case Type.UINT:                 _componentFormat = ImageUtility.COMPONENT_FORMAT.UINT; break;

                case Type.SINT:                 _componentFormat = ImageUtility.COMPONENT_FORMAT.SINT; break;

                case Type.UNORM:                _componentFormat = ImageUtility.COMPONENT_FORMAT.UNORM; break;

                case Type.UNORM_sRGB:   _componentFormat = ImageUtility.COMPONENT_FORMAT.UNORM_sRGB; break;

                case Type.SNORM:                _componentFormat = ImageUtility.COMPONENT_FORMAT.SNORM; break;

                default:
                    _componentFormat = ImageUtility.COMPONENT_FORMAT.AUTO;
                    break;
                }

                switch (m_layout)
                {
                // 8-bits formats
                case Layout.LAYOUT_8:                   _pixelFormat = ImageUtility.PIXEL_FORMAT.R8; break;

                case Layout.LAYOUT_8_8:                 _pixelFormat = ImageUtility.PIXEL_FORMAT.RG8; break;

                case Layout.LAYOUT_8_8_8:               _pixelFormat = ImageUtility.PIXEL_FORMAT.RGB8; break;

                case Layout.LAYOUT_8_8_8_8:             _pixelFormat = ImageUtility.PIXEL_FORMAT.RGBA8; break;

                // 16-bit formats
                case Layout.LAYOUT_16:                  _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.R16 : ImageUtility.PIXEL_FORMAT.R16F; break;

                case Layout.LAYOUT_16_16:               _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.RG16 : ImageUtility.PIXEL_FORMAT.RG16F; break;

                case Layout.LAYOUT_16_16_16:    _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.RGB16 : ImageUtility.PIXEL_FORMAT.RGB16F; break;

                case Layout.LAYOUT_16_16_16_16: _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.RGBA16 : ImageUtility.PIXEL_FORMAT.RGBA16F; break;

                // 32-bit formats
                case Layout.LAYOUT_32:                  _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.R32 : ImageUtility.PIXEL_FORMAT.R32F; break;

                case Layout.LAYOUT_32_32:               _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.RG32 : ImageUtility.PIXEL_FORMAT.RG32F; break;

                case Layout.LAYOUT_32_32_32:    _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.RGB32 : ImageUtility.PIXEL_FORMAT.RGB32F; break;

                case Layout.LAYOUT_32_32_32_32: _pixelFormat = m_type != Type.FLOAT ? ImageUtility.PIXEL_FORMAT.RGBA32 : ImageUtility.PIXEL_FORMAT.RGBA32F; break;

                // Compressed formats
                case Layout.LAYOUT_BC4:                 _pixelFormat = ImageUtility.PIXEL_FORMAT.BC4; break;

                case Layout.LAYOUT_BC5:                 _pixelFormat = ImageUtility.PIXEL_FORMAT.BC5; break;

                case Layout.LAYOUT_BC6:                 _pixelFormat = ImageUtility.PIXEL_FORMAT.BC6H; break;

                case Layout.LAYOUT_BC7:                 _pixelFormat = ImageUtility.PIXEL_FORMAT.BC7; break;

                default:
                    throw new Exception("Unsupported image format " + ToString());
                }
            }