TestFilmicCurve.BImage.CreateTextureCube C# (CSharp) Method

CreateTextureCube() public method

public CreateTextureCube ( RendererManaged _Device ) : RendererManaged.Texture2D
_Device RendererManaged
return RendererManaged.Texture2D
        public RendererManaged.Texture2D CreateTextureCube( RendererManaged.Device _Device )
        {
            if ( m_Opts.m_type != ImageOptions.TYPE.TT_CUBIC )
                throw new Exception( "The image is not a cube map texture!" );

            RendererManaged.PIXEL_FORMAT	TextureFormat = m_Opts.m_format.EquivalentRendererFormat;

            uint	ArraySize = 6 * m_Opts.m_arraySize;
            uint	MipsCount = m_Opts.m_curNumLevels;
            uint	PixelSize = m_Opts.m_format.BitsCount >> 3;

            List<RendererManaged.PixelsBuffer>	Content = new List<RendererManaged.PixelsBuffer>();
            for ( uint SliceIndex=0; SliceIndex < ArraySize; SliceIndex++ ) {
                for ( uint MipLevelIndex=0; MipLevelIndex < MipsCount; MipLevelIndex++ ) {
                    ImageSlice	Slice = m_Slices[MipLevelIndex*ArraySize+SliceIndex];	// Stupidly stored in reverse order!

                    RendererManaged.PixelsBuffer	Pixels = new RendererManaged.PixelsBuffer( (int) (Slice.m_Width * Slice.m_Height * PixelSize) );
                    Content.Add( Pixels );

                    using ( BinaryWriter Writer = Pixels.OpenStreamWrite() )
                        Writer.Write( Slice.m_Content );
                }
            }

            RendererManaged.Texture2D	Result = new RendererManaged.Texture2D( _Device, (int) m_Opts.m_curWidth, (int) m_Opts.m_curHeight, -6 * (int) m_Opts.m_arraySize, (int) m_Opts.m_curNumLevels, TextureFormat, false, false, Content.ToArray() );
            return Result;
        }

Usage Example

Esempio n. 1
0
        Texture2D LoadCubeMap(System.IO.FileInfo _fileName)
        {
            if (!_fileName.Exists)
            {
                throw new Exception("File not found!");
            }

            string Ext = _fileName.Extension.ToLower();

            switch (Ext)
            {
            case ".dds":
                using (ImageUtility.ImagesMatrix I = new ImageUtility.ImagesMatrix()) {
                    I.DDSLoadFile(_fileName);
                    return(new Texture2D(m_Device, I, ImageUtility.COMPONENT_FORMAT.AUTO));
                }

            case ".bimage": {
                BImage I = new BImage(_fileName);
                return(I.CreateTextureCube(m_Device));
            }

            default:
                throw new Exception("Unsupported image extension!");
            }
        }
All Usage Examples Of TestFilmicCurve.BImage::CreateTextureCube