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"); } }
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); } }
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(); }
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++; }
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); }
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); }
/// <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(); } }
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); }
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; } }
public void Initialization(DeviceContext context, FilterFlags MIPFilterFlags) { CreateTexturesMetaData(); CreateTextureResources(context, MIPFilterFlags); }
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); }
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; } }
static extern bool EnumProcessModulesEx(IntPtr hProcess, out IntPtr[] lphModule, uint cb, out uint lpcbNeeded, FilterFlags dwFilterFlag);
/// <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); }
/// <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); } }
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); }
/// <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); }