protected override void Process(DemoParsingInfo infoObj, FilterFlags flags, bool isDefault)
 {
     infoObj.PrintOptionMessage("looking for teleports");
     try {
         bool any = false;
         foreach ((EntityPortalled userMessage, int tick) in FindTeleports(infoObj.CurrentDemo, flags))
         {
             any = true;
             Console.Write($"[{tick}]");
             if ((flags & FilterFlags.VerboseInfo) != 0)
             {
                 Console.Write("\n");
                 Console.WriteLine(userMessage.ToString());
             }
             else
             {
                 Console.Write((flags & FilterFlags.PlayerOnly) != 0
                                                 ? " player"
                                                 : $" entity {userMessage.Portalled}");
                 Console.WriteLine($" went through portal {userMessage.Portal}");
             }
         }
         if (!any)
         {
             Console.WriteLine((flags & FilterFlags.PlayerOnly) != 0
                                         ? "player never teleported"
                                         : "no entities were teleported");
         }
     } catch (Exception) {
         Utils.Warning("Search for teleports failed.\n");
     }
 }
Ejemplo n.º 2
0
        public static bool CipherMatchesFilterFlags(CipherSuiteCode code, FilterFlags flags)
        {
            if ((flags & FilterFlags.All) != 0)
            {
                return(true);
            }

            bool rsa   = (flags & FilterFlags.Rsa) != 0;
            bool dhe   = (flags & FilterFlags.Dhe) != 0;
            bool ecdhe = (flags & FilterFlags.EcDhe) != 0;
            bool aead  = (flags & FilterFlags.Aead) != 0;
            bool cbc   = (flags & FilterFlags.Cbc) != 0;

            switch (code)
            {
            // Galois-Counter Cipher Suites.
            case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:
            case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:
                return(dhe | aead);

            // Galois-Counter with Legacy RSA Key Exchange.
            case CipherSuiteCode.TLS_RSA_WITH_AES_128_GCM_SHA256:
            case CipherSuiteCode.TLS_RSA_WITH_AES_256_GCM_SHA384:
                return(rsa | aead);

            // Diffie-Hellman Cipher Suites
            case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:
            case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:
            case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_256_CBC_SHA:
            case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_128_CBC_SHA:
                return(dhe | cbc);

            // Legacy AES Cipher Suites
            case CipherSuiteCode.TLS_RSA_WITH_AES_256_CBC_SHA256:
            case CipherSuiteCode.TLS_RSA_WITH_AES_128_CBC_SHA256:
            case CipherSuiteCode.TLS_RSA_WITH_AES_256_CBC_SHA:
            case CipherSuiteCode.TLS_RSA_WITH_AES_128_CBC_SHA:
                return(rsa | cbc);

            // ECDHE Galois-Counter Ciphers.
            case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:
            case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:
                return(ecdhe | aead);

            // ECDHE AES Ciphers.
            case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:
            case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:
            case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:
            case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:
                return(ecdhe | cbc);

            default:
                return(false);
            }
        }
Ejemplo n.º 3
0
            public CategoryFilter(IEnumerable <string> strings, FilterFlags flags = FilterFlags.None)
            {
                var remaining = strings.Select <string, string>((s) => s.ToLowerInvariant()).ToList();


                var isBallroomImplied = ((flags & FilterFlags.BallroomIsImplied) == FilterFlags.BallroomIsImplied);

                IsBallroom = isBallroomImplied || (remaining.RemoveAll((s) => s.Equals("ballroom")) > 0);
                bool isSocial      = (remaining.RemoveAll((s) => s.Equals("social")) > 0);
                bool isCompetition = (remaining.RemoveAll((s) => s.Equals("competition")) > 0);

                bool isStandard = (remaining.RemoveAll((s) => s.Equals("standard")) > 0);
                bool isSmooth   = (remaining.RemoveAll((s) => s.Equals("smooth")) > 0);
                bool isLatin    = (remaining.RemoveAll((s) => s.Equals("latin")) > 0) && (IsBallroom || isSocial || isCompetition);
                bool isRhythm   = (remaining.RemoveAll((s) => s.Equals("rhythm")) > 0);
                bool isSwing    = (remaining.RemoveAll((s) => s.Equals("swing")) > 0) && (IsBallroom || isSocial || isCompetition);

                var cat = DanceCategories.None;

                cat = cat | (isStandard ? DanceCategories.Standard : DanceCategories.None);
                cat = cat | (isSmooth ? DanceCategories.Smooth : DanceCategories.None);
                cat = cat | (isLatin ? DanceCategories.Latin : DanceCategories.None);
                cat = cat | (isRhythm ? DanceCategories.Rhythm : DanceCategories.None);
                cat = cat | (isSwing ? DanceCategories.Swing : DanceCategories.None);
                cat = cat | (isSocial ? DanceCategories.Social : DanceCategories.None);
                if ((cat == DanceCategories.None) && ((flags & FilterFlags.SocialIsDefault) == FilterFlags.SocialIsDefault))
                {
                    cat = DanceCategories.Social;
                }

                Categories = cat;

                var dances = new List <Dance>();
                var unused = new List <string>();

                if (IsBallroom || (Categories != DanceCategories.None))
                {
                    foreach (var value in remaining)
                    {
                        var dance = MusicLibrary.Lib.Dances.ByName[value];
                        if (dance != null)
                        {
                            dances.AddUnique(dance);
                        }
                        else
                        {
                            unused.AddUnique(value);
                        }
                    }
                }

                Dances = dances.AsReadOnly();
                Unused = unused.AsReadOnly();
            }
Ejemplo n.º 4
0
        public static bool FilterCipher(CipherSuiteCode cipher, string filter)
        {
            if (filter == null)
            {
                return(true);
            }

            FilterFlags?includeFlags = null;
            FilterFlags excludeFlags = FilterFlags.None;

            var parts = filter.Split(':');

            foreach (var part in parts)
            {
                var name = part;
                if (part [0] == '+' || part [0] == '-')
                {
                    name = name.Substring(1);
                }

                var flag = (FilterFlags)Enum.Parse(typeof(FilterFlags), name, true);
                if (part [0] == '-')
                {
                    excludeFlags |= flag;
                }
                else
                {
                    if (includeFlags == null)
                    {
                        includeFlags = FilterFlags.None;
                    }
                    includeFlags |= flag;
                }
            }

            if (CipherMatchesFilterFlags(cipher, excludeFlags))
            {
                return(false);
            }
            if (includeFlags != null && !CipherMatchesFilterFlags(cipher, includeFlags.Value))
            {
                return(false);
            }

            return(true);
        }
 protected override void PostProcess(DemoParsingInfo infoObj, FilterFlags flags, bool isDefault)
 {
 }
        public static IEnumerable <(EntityPortalled userMessage, int tick)> FindTeleports(SourceDemo demo, FilterFlags flags)
        {
            var messages = demo.FilterForUserMessage <EntityPortalled>();

            if ((flags & FilterFlags.PlayerOnly) != 0)
            {
                messages = messages.Where(t => t.userMessage.Portalled.EntIndex == 1);
            }
            return(messages);
        }
 protected override void AfterParse(DemoParsingSetupInfo setupObj, FilterFlags flags, bool isDefault)
 {
     setupObj.ExecutableOptions++;
 }
Ejemplo n.º 8
0
Archivo: Util.cs Proyecto: kkdevs/sb3u
        public static ShaderResourceView CreateTexture2DArraySRV(Device device, DeviceContext immediateContext, string[] filenames, Format format, FilterFlags filter = FilterFlags.None, FilterFlags mipFilter = FilterFlags.Linear)
        {
            var srcTex = new Texture2D[filenames.Length];

            for (int i = 0; i < filenames.Length; i++)
            {
                var loadInfo = new ImageLoadInformation {
                    FirstMipLevel  = 0,
                    Usage          = ResourceUsage.Staging,
                    BindFlags      = BindFlags.None,
                    CpuAccessFlags = CpuAccessFlags.Write | CpuAccessFlags.Read,
                    OptionFlags    = ResourceOptionFlags.None,
                    Format         = format,
                    FilterFlags    = filter,
                    MipFilterFlags = mipFilter,
                };
                srcTex[i] = Texture2D.FromFile(device, filenames[i], loadInfo);
            }
            var texElementDesc = srcTex[0].Description;

            var texArrayDesc = new Texture2DDescription {
                Width             = texElementDesc.Width,
                Height            = texElementDesc.Height,
                MipLevels         = texElementDesc.MipLevels,
                ArraySize         = srcTex.Length,
                Format            = texElementDesc.Format,
                SampleDescription = new SampleDescription(1, 0),
                Usage             = ResourceUsage.Default,
                BindFlags         = BindFlags.ShaderResource,
                CpuAccessFlags    = CpuAccessFlags.None,
                OptionFlags       = ResourceOptionFlags.None
            };

            var texArray = new Texture2D(device, texArrayDesc);

            texArray.DebugName = "texture array: + " + filenames.Aggregate((i, j) => i + ", " + j);
            for (int texElement = 0; texElement < srcTex.Length; texElement++)
            {
                for (int mipLevel = 0; mipLevel < texElementDesc.MipLevels; mipLevel++)
                {
                    var mappedTex2D = immediateContext.MapSubresource(srcTex[texElement], mipLevel, 0, MapMode.Read, MapFlags.None);

                    immediateContext.UpdateSubresource(
                        mappedTex2D,
                        texArray,
                        Resource.CalculateSubresourceIndex(mipLevel, texElement, texElementDesc.MipLevels)
                        );
                    immediateContext.UnmapSubresource(srcTex[texElement], mipLevel);
                }
            }
            var viewDesc = new ShaderResourceViewDescription {
                Format          = texArrayDesc.Format,
                Dimension       = ShaderResourceViewDimension.Texture2DArray,
                MostDetailedMip = 0,
                MipLevels       = texArrayDesc.MipLevels,
                FirstArraySlice = 0,
                ArraySize       = srcTex.Length
            };

            var texArraySRV = new ShaderResourceView(device, texArray, viewDesc);

            ReleaseCom(ref texArray);
            for (int i = 0; i < srcTex.Length; i++)
            {
                ReleaseCom(ref srcTex[i]);
            }

            return(texArraySRV);
        }
Ejemplo n.º 9
0
        public unsafe FilterList LoadFilterList(Blob blob, string path, FilterMode mode, FilterFlags flags)
        {
            Ensure.ArgumentNotNull(path, "path");
            git_filter_list *filters = null;

            Ensure.NativeSuccess(() => libgit2.git_filter_list_load(out filters, nativeRepository, (blob != null) ? (git_blob *)blob.NativeObject : null, path, (git_filter_mode_t)mode, (uint)flags), this);
            return((filters != null) ? FilterList.FromNative(this, filters) : null);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Create A shaderViewresource on a TextureArray object created from image files
        /// </summary>
        /// <param name="device">The graphic device</param>
        /// <param name="FileNames">The files names that will be used to create the array, the array's index will be based on the order of the file inside this collection</param>
        /// <param name="MIPfilterFlag">Filter used to create the mipmap lvl from the loaded images</param>
        /// <param name="ArrayTextureView">The create textureArray view that can directly be used inside shaders</param>
        public static void CreateTexture2DFromFiles(Device device, DeviceContext context, string[] FileNames, FilterFlags MIPfilterFlag, string ResourceName, out ShaderResourceView TextureArrayView, SharpDX.DXGI.Format InMemoryArrayFormat = SharpDX.DXGI.Format.R8G8B8A8_UNorm)
        {
            int inputImagesCount = FileNames.Length;

            //1 First loading the textures from files
            Texture2D[] srcTex = new Texture2D[inputImagesCount];

            ImageLoadInformation ImageInfo = new ImageLoadInformation()
            {
                FirstMipLevel  = 0,
                Usage          = ResourceUsage.Staging,
                BindFlags      = BindFlags.None,
                CpuAccessFlags = CpuAccessFlags.Write | CpuAccessFlags.Read,
                OptionFlags    = ResourceOptionFlags.None,
                Format         = InMemoryArrayFormat,
                Filter         = FilterFlags.None,
                MipFilter      = MIPfilterFlag
            };

            for (int imgInd = 0; imgInd < inputImagesCount; imgInd++)
            {
                srcTex[imgInd] = Texture2D.FromFile <Texture2D>(device, FileNames[imgInd], ImageInfo);
            }

            //2 Creation of the TextureArray resource

            CreateTexture2D(context, srcTex, ResourceName, out TextureArrayView, InMemoryArrayFormat);

            //Disposing resources used to create the texture array
            foreach (Texture2D tex in srcTex)
            {
                tex.Dispose();
            }
        }
Ejemplo n.º 11
0
        public static void CreateTexture2DFromFiles(Device device, DeviceContext context, string directory, string fileNames, FilterFlags miPfilterFlag, string ResourceName, out ShaderResourceView textureArrayView, SharpDX.DXGI.Format InMemoryArrayFormat = SharpDX.DXGI.Format.R8G8B8A8_UNorm)
        {
            ShaderResourceView srv = LoadPreComputedArray(device, directory);

            if (srv != null)
            {
                textureArrayView = srv;
                return;
            }

            List <string> fileCollection = new List <string>();
            DirectoryInfo dinfo          = new DirectoryInfo(directory);

            foreach (FileInfo fi in dinfo.GetFiles(fileNames).OrderBy(x => x.Name))
            {
                fileCollection.Add(directory + fi.Name);
            }

            CreateTexture2DFromFiles(device, context, fileCollection.ToArray(), miPfilterFlag, ResourceName, out textureArrayView, InMemoryArrayFormat);
        }
Ejemplo n.º 12
0
 private void GetNextToken()
 {
     mFF = 0;
     for (int i = mStartIdx; i < mText.Length - 1; i++)
     {
         char ch1 = mText[i];
         char ch2 = mText[i + 1];
         if (IsALetter(ch1))
         {
             mFF |= FilterFlags.ContainsAlpha;
         }
         else if (IsNumeric(ch1))
         {
             mFF |= FilterFlags.ContainsNumeric;
         }
         else
         {
             mFF |= FilterFlags.ContainsOther;
         }
         if (ch1 == '\r' && ch2 == '\n') // WB3
         {
         }
         else if (IsNewline(ch1) || IsNewline(ch2)) // WB3a, WB3b
         {
             mEndIdx = i + 1;
             return;
         }
         else if (IsALetter(ch1) && IsALetter(ch2)) // WB5
         {
         }
         else if (i <= mText.Length - 3 && IsALetter(ch1) && (IsMidLetter(ch2) || IsMidNumLet(ch2)) && IsALetter(mText[i + 2])) // WB6
         {
         }
         else if (i >= 1 && IsALetter(mText[i - 1]) && (IsMidLetter(ch1) || IsMidNumLet(ch1)) && IsALetter(ch2)) // WB7
         {
         }
         else if ((IsNumeric(ch1) && IsNumeric(ch2)) || (IsALetter(ch1) && IsNumeric(ch2)) || (IsNumeric(ch1) && IsALetter(ch2))) // WB8, WB9, WB10
         {
         }
         else if (i >= 1 && IsNumeric(mText[i - 1]) && (IsMidNum(ch1) || IsMidNumLet(ch1)) && IsNumeric(ch2)) // WB11
         {
         }
         else if (i <= mText.Length - 3 && IsNumeric(ch1) && (IsMidNum(ch2) || IsMidNumLet(ch2)) && IsNumeric(mText[i + 2])) // WB12
         {
         }
         else if ((IsALetter(ch1) || IsNumeric(ch1) || IsExtendNumLet(ch1)) && IsExtendNumLet(ch2)) // WB13a
         {
         }
         else if (IsExtendNumLet(ch1) && (IsALetter(ch2) || IsNumeric(ch2))) // WB13b
         {
         }
         else // WB14
         {
             mEndIdx = i + 1;
             return;
         }
     }
     if (mEndIdx == mText.Length)
     {
         mEndIdx = -1;
     }
     else
     {
         char lastCh = mText[mText.Length - 1];
         if (IsALetter(lastCh))
         {
             mFF |= FilterFlags.ContainsAlpha;
         }
         else if (IsNumeric(lastCh))
         {
             mFF |= FilterFlags.ContainsNumeric;
         }
         else
         {
             mFF |= FilterFlags.ContainsOther;
         }
         mEndIdx = mText.Length;
     }
 }
Ejemplo n.º 13
0
 public void Initialization(DeviceContext context, FilterFlags MIPFilterFlags)
 {
     CreateTexturesMetaData();
     CreateTextureResources(context, MIPFilterFlags);
 }
Ejemplo n.º 14
0
        private void CreateTextureResources(DeviceContext context, FilterFlags MIPfilterFlag)
        {
            if (CubeArrayTexture != null)
            {
                RemoveToDispose(CubeArrayTexture);
                CubeArrayTexture.Dispose();
            }
            CubeArrayTexture = null;

            ImageLoadInformation ImageInfo = new ImageLoadInformation()
            {
                FirstMipLevel  = 0,
                Usage          = ResourceUsage.Staging,
                BindFlags      = BindFlags.None,
                CpuAccessFlags = CpuAccessFlags.Write | CpuAccessFlags.Read,
                OptionFlags    = ResourceOptionFlags.None,
                Format         = SharpDX.DXGI.Format.R8G8B8A8_UNorm,
                Filter         = FilterFlags.None,
                MipFilter      = MIPfilterFlag
            };

            List <Texture2D> cubeTextures = new List <Texture2D>();

            //Get all file and create a list of stream !
            foreach (string file in Directory.GetFiles(ClientSettings.TexturePack + @"Terran/", @"*.png").OrderBy(x => x))
            {
                var meta = CubeTexturesMeta[Path.GetFileNameWithoutExtension(file)];

                if (meta.isAnimated)
                {
                    //Split file into small pieces and create Texture2D from it
                    Bitmap    animatedTex = new Bitmap(file);
                    Bitmap    frameTex    = new Bitmap(meta.Size.Width, meta.Size.Width);
                    Rectangle frameRect   = new Rectangle(0, 0, meta.Size.Width, meta.Size.Width);
                    using (Graphics gr = Graphics.FromImage(frameTex))
                    {
                        int       rows       = meta.Size.Height / meta.Size.Width;
                        Rectangle sourceRect = new Rectangle(0, 0, meta.Size.Width, meta.Size.Width);
                        for (int row = 0; row < rows; row++)
                        {
                            // Copy the frame of the image.
                            gr.DrawImage(animatedTex, frameRect, sourceRect, GraphicsUnit.Pixel);
                            //Save into a memoryStream
                            using (MemoryStream textureMemoryStream = new MemoryStream())
                            {
                                frameTex.Save(textureMemoryStream, System.Drawing.Imaging.ImageFormat.Png);
                                textureMemoryStream.Position = 0;
                                Texture2D newTexture = Texture2D.FromStream <Texture2D>(_engine.Device, textureMemoryStream, (int)textureMemoryStream.Length, ImageInfo);
                                cubeTextures.Add(newTexture);
                            }
                            sourceRect.Y += meta.Size.Width;
                        }
                    }

                    frameTex.Dispose();
                    animatedTex.Dispose();
                }
                else
                {
                    Texture2D newTexture = Texture2D.FromFile <Texture2D>(_engine.Device, file, ImageInfo);
                    cubeTextures.Add(newTexture);
                }
            }

            //2 Creation of the TextureArray resource
            ArrayTexture.CreateTexture2D(context, cubeTextures.ToArray(), "CubeTexturesArray", out CubeArrayTexture, ImageInfo.Format);

            //Disposing resources used to create the texture array
            foreach (Texture2D tex in cubeTextures)
            {
                tex.Dispose();
            }

            ToDispose(CubeArrayTexture);
        }
Ejemplo n.º 15
0
		public static bool CipherMatchesFilterFlags (CipherSuiteCode code, FilterFlags flags)
		{
			if ((flags & FilterFlags.All) != 0)
				return true;

			bool rsa = (flags & FilterFlags.Rsa) != 0;
			bool dhe = (flags & FilterFlags.Dhe) != 0;
			bool ecdhe = (flags & FilterFlags.EcDhe) != 0;
			bool aead = (flags & FilterFlags.Aead) != 0;
			bool cbc = (flags & FilterFlags.Cbc) != 0;

			switch (code) {
			// Galois-Counter Cipher Suites.
			case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:
			case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:
				return dhe | aead;

				// Galois-Counter with Legacy RSA Key Exchange.
			case CipherSuiteCode.TLS_RSA_WITH_AES_128_GCM_SHA256:
			case CipherSuiteCode.TLS_RSA_WITH_AES_256_GCM_SHA384:
				return rsa | aead;

				// Diffie-Hellman Cipher Suites
			case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256:
			case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256:
			case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_256_CBC_SHA:
			case CipherSuiteCode.TLS_DHE_RSA_WITH_AES_128_CBC_SHA:
				return dhe | cbc;

				// Legacy AES Cipher Suites
			case CipherSuiteCode.TLS_RSA_WITH_AES_256_CBC_SHA256:
			case CipherSuiteCode.TLS_RSA_WITH_AES_128_CBC_SHA256:
			case CipherSuiteCode.TLS_RSA_WITH_AES_256_CBC_SHA:
			case CipherSuiteCode.TLS_RSA_WITH_AES_128_CBC_SHA:
				return rsa | cbc;

				// ECDHE Galois-Counter Ciphers.
			case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:
			case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:
				return ecdhe | aead;

				// ECDHE AES Ciphers.
			case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:
			case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:
			case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:
			case CipherSuiteCode.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:
				return ecdhe | cbc;

			default:
				return false;
			}
		}
Ejemplo n.º 16
0
 static extern bool EnumProcessModulesEx(IntPtr hProcess, out IntPtr[] lphModule, uint cb, out uint lpcbNeeded, FilterFlags dwFilterFlag);
Ejemplo n.º 17
0
 /// <summary>
 /// Generates mipmap chain using a particular texture filter.
 /// </summary>
 /// <param name="sourceLevel">The mipmap level whose data is used to generate the rest of the mipmap chain. </param>
 /// <param name="mipFilter">Flags controlling how each miplevel is filtered (or D3DX10_DEFAULT for D3DX10_FILTER_BOX). See <see cref="SharpDX.Direct3D10.FilterFlags"/>. </param>
 /// <returns>The return value is one of the values listed in {{Direct3D 10 Return Codes}}. </returns>
 /// <unmanaged>HRESULT D3DX10FilterTexture([None] ID3D10Resource* pTexture,[None] int SrcLevel,[None] int MipFilter)</unmanaged>
 public void FilterTexture(int sourceLevel, FilterFlags mipFilter)
 {
     D3DX10.FilterTexture(this, sourceLevel, (int)mipFilter);
 }
Ejemplo n.º 18
0
        /// <summary>
        /// Create A shaderViewresource on a TextureArray object created from image files
        /// </summary>
        /// <param name="device">The graphic device</param>
        /// <param name="FileNames">The files names that will be used to create the array, the array's index will be based on the order of the file inside this collection</param>
        /// <param name="MIPfilterFlag">Filter used to create the mipmap lvl from the loaded images</param>
        /// <param name="ArrayTextureView">The create textureArray view that can directly be used inside shaders</param>
        public static void CreateTexture2DFromFiles(Device device, string[] FileNames, FilterFlags MIPfilterFlag, string ResourceName, out Texture2D[] TextureArray, int MaxMipLevels, SharpDX.DXGI.Format InMemoryArrayFormat = SharpDX.DXGI.Format.R8G8B8A8_UNorm)
        {
            int inputImagesCount = FileNames.Length;

            //1 First loading the textures from files
            TextureArray = new Texture2D[inputImagesCount];

            ImageLoadInformation ImageInfo = new ImageLoadInformation()
            {
                FirstMipLevel  = 0,
                MipLevels      = MaxMipLevels,
                Usage          = ResourceUsage.Staging,
                BindFlags      = BindFlags.None,
                CpuAccessFlags = CpuAccessFlags.Write | CpuAccessFlags.Read,
                OptionFlags    = ResourceOptionFlags.None,
                Format         = InMemoryArrayFormat,
                Filter         = FilterFlags.None,
                MipFilter      = MIPfilterFlag
            };

            for (int imgInd = 0; imgInd < inputImagesCount; imgInd++)
            {
                TextureArray[imgInd] = Texture2D.FromFile <Texture2D>(device, FileNames[imgInd], ImageInfo);
            }
        }
Ejemplo n.º 19
0
        public static void CreateTexture2DFromFiles(Device device, string directory, string fileNames, FilterFlags miPfilterFlag, string ResourceName, out Texture2D[] textureArrayView, int MaxMipLevels = 0, SharpDX.DXGI.Format InMemoryArrayFormat = SharpDX.DXGI.Format.R8G8B8A8_UNorm)
        {
            List <string> fileCollection = new List <string>();
            DirectoryInfo dinfo          = new DirectoryInfo(directory);

            foreach (FileInfo fi in dinfo.GetFiles(fileNames).OrderBy(x => x.Name))
            {
                fileCollection.Add(directory + fi.Name);
            }

            CreateTexture2DFromFiles(device, fileCollection.ToArray(), miPfilterFlag, ResourceName, out textureArrayView, MaxMipLevels, InMemoryArrayFormat);
        }
Ejemplo n.º 20
0
 /// <summary>
 /// Generates mipmap chain using a particular texture filter for this texture instance.
 /// </summary>
 /// <param name="deviceContext"><para>A reference to an <see cref="SharpDX.Direct3D11.DeviceContext"/> object.</para></param>
 /// <param name="sourceLevel"><para>The mipmap level whose data is used to generate the rest of the mipmap chain.</para></param>
 /// <param name="mipFilter"><para>Flags controlling how each miplevel is filtered (or D3DX11_DEFAULT for <see cref="SharpDX.Direct3D11.FilterFlags.Linear"/>). See <see cref="SharpDX.Direct3D11.FilterFlags"/>.</para></param>
 /// <returns>The return value is one of the values listed in Direct3D 11 Return Codes.</returns>
 /// <unmanaged>HRESULT D3DX11FilterTexture([In] ID3D11DeviceContext* pContext,[In] ID3D11Resource* pTexture,[In] unsigned int SrcLevel,[In] unsigned int MipFilter)</unmanaged>
 public void FilterTexture(DeviceContext deviceContext, int sourceLevel, FilterFlags mipFilter)
 {
     D3DX11.FilterTexture(deviceContext, this, sourceLevel, (int)mipFilter);
 }