亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dxmut.cs

?? VC中使用C#作為腳本引擎編程
?? CS
?? 第 1 頁 / 共 5 頁
字號:
            //---------------------
            // Just using deviceCombo.AdapterOrdinal

            //---------------------
            // Device Type
            //---------------------
            // Just using deviceCombo.DeviceType

            //---------------------
            // Windowed 
            //---------------------
            // Just using deviceCombo.Windowed

            //---------------------
            // Adapter Format
            //---------------------
            // Just using deviceCombo.AdapterFormat

            //---------------------
            // Vertex processing
            //---------------------
            CreateFlags bestBehaviorFlags = 0;
            if (match.VertexProcessing == MatchType.PreserveInput )   
            {
                bestBehaviorFlags = settings.BehaviorFlags;
            }
            else if (match.VertexProcessing == MatchType.IgnoreInput )    
            {
                // The framework defaults to HWVP if available otherwise use SWVP
                if (deviceCombo.deviceInformation.Caps.DeviceCaps.SupportsHardwareTransformAndLight)
                    bestBehaviorFlags |= CreateFlags.HardwareVertexProcessing;
                else
                    bestBehaviorFlags |= CreateFlags.SoftwareVertexProcessing;
            }
            else 
            {
                // Default to input, and fallback to SWVP if HWVP not available 
                bestBehaviorFlags = settings.BehaviorFlags;
                if ((!deviceCombo.deviceInformation.Caps.DeviceCaps.SupportsHardwareTransformAndLight) && 
                    ( (bestBehaviorFlags & CreateFlags.HardwareVertexProcessing ) != 0 || 
                    (bestBehaviorFlags & CreateFlags.MixedVertexProcessing) != 0) )
                {
                    bestBehaviorFlags &= ~CreateFlags.HardwareVertexProcessing ;
                    bestBehaviorFlags &= ~CreateFlags.MixedVertexProcessing;
                    bestBehaviorFlags |= CreateFlags.SoftwareVertexProcessing;
                }

                // One of these must be selected
                if ((bestBehaviorFlags & CreateFlags.HardwareVertexProcessing ) == 0 &&
                    (bestBehaviorFlags & CreateFlags.MixedVertexProcessing) == 0 &&
                    (bestBehaviorFlags & CreateFlags.SoftwareVertexProcessing) == 0 )
                {
                    if (deviceCombo.deviceInformation.Caps.DeviceCaps.SupportsHardwareTransformAndLight)
                        bestBehaviorFlags |= CreateFlags.HardwareVertexProcessing ;
                    else
                        bestBehaviorFlags |= CreateFlags.SoftwareVertexProcessing;
                }
            }

            //---------------------
            // Resolution
            //---------------------
            DisplayMode bestDisplayMode = new DisplayMode();  
            if (match.Resolution == MatchType.PreserveInput )   
            {
                bestDisplayMode.Width = settings.presentParams.BackBufferWidth;
                bestDisplayMode.Height = settings.presentParams.BackBufferHeight;
            }
            else 
            {
                DisplayMode displayModeIn = new DisplayMode();  
                if (match.Resolution == MatchType.ClosestToInput &&
                    (settings.presentParams.BackBufferWidth != 0 && settings.presentParams.BackBufferWidth != 0) )   
                {
                    displayModeIn.Width = settings.presentParams.BackBufferWidth;
                    displayModeIn.Height = settings.presentParams.BackBufferHeight;
                }
                else // if (match.Resolution == MatchType.IgnoreInput )   
                {
                    if (deviceCombo.IsWindowed )
                    {
                        // The framework defaults to 640x480 for windowed
                        displayModeIn.Width = DefaultSizeWidth;
                        displayModeIn.Height = DefaultSizeHeight;
                    }
                    else
                    {
                        // The framework defaults to desktop resolution for fullscreen to try to avoid slow mode change
                        displayModeIn.Width = adapterDesktopDisplayMode.Width;
                        displayModeIn.Height = adapterDesktopDisplayMode.Height;
                    }
                }

                // Call a helper function to find the closest valid display mode to the optimal 
                bestDisplayMode = FindValidResolution(deviceCombo, displayModeIn);
            }

            //---------------------
            // Back Buffer Format
            //---------------------
            // Just using deviceCombo.BackBufferFormat

            //---------------------
            // Back buffer count
            //---------------------
            uint bestBackBufferCount;
            if (match.BackBufferCount == MatchType.PreserveInput )   
            {
                bestBackBufferCount = (uint)settings.presentParams.BackBufferCount;
            }
            else if (match.BackBufferCount == MatchType.IgnoreInput )   
            {
                // The framework defaults to triple buffering 
                bestBackBufferCount = 2;
            }
            else // if (match.BackBufferCount == MatchType.ClosestToInput )   
            {
                bestBackBufferCount = (uint)settings.presentParams.BackBufferCount;
                if (bestBackBufferCount > 3 )
                    bestBackBufferCount = 3;
                if (bestBackBufferCount < 1 )
                    bestBackBufferCount = 1;
            }
    
            //---------------------
            // Multisample
            //---------------------
            MultiSampleType bestMultiSampleType;
            uint bestMultiSampleQuality;
            if (settings.presentParams.SwapEffect != SwapEffect.Discard)
            {
                // Swap effect is not set to discard so multisampling has to off
                bestMultiSampleType = MultiSampleType.None;
                bestMultiSampleQuality = 0;
            }
            else
            {
                if (match.BackBufferCount == MatchType.PreserveInput )   
                {
                    bestMultiSampleType    = settings.presentParams.MultiSample;
                    bestMultiSampleQuality = (uint)settings.presentParams.MultiSampleQuality;
                }
                else if (match.BackBufferCount == MatchType.IgnoreInput )   
                {
                    // Default to no multisampling (always supported)
                    bestMultiSampleType = MultiSampleType.None;
                    bestMultiSampleQuality = 0;
                }
                else if (match.BackBufferCount == MatchType.ClosestToInput )   
                {
                    // Default to no multisampling (always supported)
                    bestMultiSampleType = MultiSampleType.None;
                    bestMultiSampleQuality = 0;

                    for (int i = 0; i < deviceCombo.multiSampleTypeList.Count; i++)
                    {
                        MultiSampleType tempType = (MultiSampleType)deviceCombo.multiSampleTypeList[i];
                        uint tempQuality = (uint)(int)deviceCombo.multiSampleQualityList[i];

                        // Check whether supported type is closer to the input than our current best
                        if (Math.Abs((int)tempType -  (int)settings.presentParams.MultiSample) < Math.Abs((int)bestMultiSampleType - (int)settings.presentParams.MultiSample) )
                        {
                            bestMultiSampleType = tempType;
                            bestMultiSampleQuality = (uint)Math.Min(tempQuality-1, settings.presentParams.MultiSampleQuality);
                        }
                    }
                }
                else // Error case
                {
                    // Default to no multisampling (always supported) 
                    bestMultiSampleType = MultiSampleType.None;
                    bestMultiSampleQuality = 0;
                }
            }

            //---------------------
            // Swap effect
            //---------------------
            SwapEffect bestSwapEffect;
            if (match.SwapEffect == MatchType.PreserveInput )   
            {
                bestSwapEffect = settings.presentParams.SwapEffect;
            }
            else if (match.SwapEffect == MatchType.IgnoreInput )   
            {
                bestSwapEffect = SwapEffect.Discard;
            }
            else // if (match.SwapEffect == MatchType.ClosestToInput )   
            {
                bestSwapEffect = settings.presentParams.SwapEffect;

                // Swap effect has to be one of these 3
                if (bestSwapEffect != SwapEffect.Discard &&
                    bestSwapEffect != SwapEffect.Flip &&
                    bestSwapEffect != SwapEffect.Copy )
                {
                    bestSwapEffect = SwapEffect.Discard;
                }
            }

            //---------------------
            // Depth stencil 
            //---------------------
            DepthFormat bestDepthStencilFormat;
            bool bestEnableAutoDepthStencil;

            int[] depthStencilRanking = new int[deviceCombo.depthStencilFormatList.Count];

            uint backBufferBitDepth = ManagedUtility.GetColorChannelBits( deviceCombo.BackBufferFormat );       
            uint inputDepthBitDepth = ManagedUtility.GetDepthBits( settings.presentParams.AutoDepthStencilFormat );

            for( int i=0; i<deviceCombo.depthStencilFormatList.Count; i++ )
            {
                DepthFormat curDepthStencilFmt = (DepthFormat)deviceCombo.depthStencilFormatList[i];
                uint curDepthBitDepth = ManagedUtility.GetDepthBits( curDepthStencilFmt );
                int ranking;

                if (match.DepthFormat == MatchType.PreserveInput )
                {                       
                    // Need to match bit depth of input
                    if(curDepthBitDepth == inputDepthBitDepth)
                        ranking = 0;
                    else
                        ranking = 10000;
                }
                else if (match.DepthFormat == MatchType.IgnoreInput )
                {
                    // Prefer match of backbuffer bit depth
                    ranking = Math.Abs((int)curDepthBitDepth - (int)(backBufferBitDepth*4));
                }
                else // if (match.DepthFormat == MatchType.ClosestToInput )
                {
                    // Prefer match of input depth format bit depth
                    ranking = Math.Abs((int)curDepthBitDepth - (int)inputDepthBitDepth);
                }

                depthStencilRanking[i] = ranking;
            }

            uint inputStencilBitDepth = ManagedUtility.GetStencilBits( settings.presentParams.AutoDepthStencilFormat );

            for( int i=0; i<deviceCombo.depthStencilFormatList.Count; i++ )
            {
                DepthFormat curDepthStencilFmt = (DepthFormat)deviceCombo.depthStencilFormatList[i];
                int ranking = depthStencilRanking[i];
                uint curStencilBitDepth = ManagedUtility.GetStencilBits( curDepthStencilFmt );

                if (match.StencilFormat == MatchType.PreserveInput )
                {                       
                    // Need to match bit depth of input
                    if(curStencilBitDepth == inputStencilBitDepth)
                        ranking += 0;
                    else
                        ranking += 10000;
                }
                else if (match.StencilFormat == MatchType.IgnoreInput )
                {
                    // Prefer 0 stencil bit depth
                    ranking += (int)curStencilBitDepth;
                }
                else // if (match.StencilFormat == MatchType.ClosestToInput )
                {
                    // Prefer match of input stencil format bit depth
                    ranking += Math.Abs((int)curStencilBitDepth - (int)inputStencilBitDepth);
                }

                depthStencilRanking[i] = ranking;
            }

            int bestRanking = 100000;
            int bestIndex = -1;
            for( int i=0; i<depthStencilRanking.Length; i++ )
            {
                if (depthStencilRanking[i] < bestRanking )
                {
                    bestRanking = depthStencilRanking[i];
                    bestIndex

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品露脸对白| 亚洲午夜视频在线| 国产一区二区三区香蕉| 久久精品一级爱片| 91在线视频观看| 亚洲一卡二卡三卡四卡无卡久久| 91久久精品一区二区二区| 午夜精品在线看| 久久天天做天天爱综合色| 成人午夜免费视频| 亚洲第一福利一区| 精品久久久网站| 波多野结衣视频一区| 亚洲综合色视频| 精品国产一二三| 91片黄在线观看| 美女网站在线免费欧美精品| 国产视频视频一区| 欧美视频一区在线观看| 麻豆91小视频| 综合久久综合久久| 日韩一级高清毛片| 91丨九色丨黑人外教| 亚洲成人激情综合网| 国产欧美一区二区精品忘忧草| 91污在线观看| 国内精品国产三级国产a久久| 中文字幕一区二区三区在线播放 | 激情综合五月婷婷| 亚洲情趣在线观看| 精品国产免费久久| 在线免费观看一区| 国产精品一区一区三区| 亚洲国产精品一区二区www在线| 欧美不卡激情三级在线观看| 色综合久久中文字幕综合网| 久久国产乱子精品免费女| 亚洲三级小视频| 久久综合久久综合亚洲| 欧美日韩一区二区三区四区五区| 国产一区二区免费看| 亚洲国产成人精品视频| 日本一区二区三区dvd视频在线| 欧美性xxxxxx少妇| 91在线视频免费91| 国产成人av资源| 麻豆91精品视频| 性做久久久久久| 亚洲视频香蕉人妖| 国产精品欧美极品| 精品国产一区二区三区av性色| 欧美日韩在线免费视频| 91在线一区二区| 成人性视频免费网站| 老司机午夜精品| 日日夜夜精品免费视频| 亚洲精品乱码久久久久| 国产精品白丝在线| 欧美国产激情二区三区| 欧美精品一区二区不卡| 欧美一区二区三区性视频| 欧美在线你懂的| 在线观看日韩一区| 日本电影欧美片| 91丨九色porny丨蝌蚪| av在线不卡网| av一二三不卡影片| 9久草视频在线视频精品| www.在线欧美| 成人国产精品免费| 成人午夜看片网址| www.久久精品| 色婷婷久久久亚洲一区二区三区| 99久久99久久综合| 色婷婷av一区二区三区大白胸| av资源网一区| 91免费在线播放| 日本道精品一区二区三区| 欧美午夜精品理论片a级按摩| 色一情一伦一子一伦一区| 色婷婷香蕉在线一区二区| 欧美午夜电影网| 91精品国产欧美日韩| 日韩一区二区在线看| 精品久久一区二区| 欧美国产丝袜视频| 亚洲视频香蕉人妖| 亚洲国产中文字幕| 日韩成人一级片| 国产精品一线二线三线| 成人免费毛片a| 欧美亚洲国产一区二区三区va| 欧美日本一区二区在线观看| 日韩一区二区在线播放| 国产午夜亚洲精品理论片色戒| 国产精品乱码久久久久久| 亚洲欧美日韩久久精品| 日韩福利电影在线| 国产精品一区二区在线观看网站| 高清不卡在线观看av| 在线观看欧美黄色| 欧美一区二区啪啪| 国产欧美日韩中文久久| 亚洲精品中文在线观看| 免费观看日韩av| 粉嫩av亚洲一区二区图片| 色婷婷综合久色| 日韩欧美资源站| 国产精品久久久久久久蜜臀| 亚洲动漫第一页| 国产乱码精品一品二品| 91麻豆精品视频| 欧美电影免费观看高清完整版在线 | 亚洲国产美女搞黄色| 美国精品在线观看| 成人理论电影网| 欧美精品丝袜中出| 国产欧美日韩在线观看| 亚洲国产精品久久不卡毛片 | 中文字幕日韩精品一区| 日韩精品一二三四| 成人的网站免费观看| 91精品国产91久久综合桃花| 国产欧美精品一区| 日韩电影免费在线看| 91在线高清观看| 精品国产91九色蝌蚪| 亚洲精品第一国产综合野| 国产在线精品视频| 欧美日本一区二区三区| 中文一区二区在线观看| 青青草精品视频| 色综合久久久久久久久| 精品成人一区二区| 亚洲线精品一区二区三区八戒| 国产盗摄视频一区二区三区| 制服.丝袜.亚洲.另类.中文| 亚洲精选一二三| 成人av影视在线观看| 久久久久9999亚洲精品| 蜜乳av一区二区| 欧美美女一区二区三区| 一区二区三区美女| 99精品桃花视频在线观看| 国产欧美日韩亚州综合| 国产一区二区三区四区五区入口| 欧美日韩国产高清一区二区 | 精品少妇一区二区三区免费观看| 一级特黄大欧美久久久| 91免费国产视频网站| 国产嫩草影院久久久久| 国产制服丝袜一区| 日韩免费看的电影| 日本中文在线一区| 制服丝袜在线91| 丝袜美腿成人在线| 欧美日韩一区三区| 亚洲成人av一区二区三区| 在线观看视频一区二区| 洋洋av久久久久久久一区| 91女神在线视频| 一区二区三区.www| 欧洲一区在线观看| 午夜在线电影亚洲一区| 欧美日本国产视频| 美女网站色91| 精品美女在线观看| 国产综合成人久久大片91| 久久精品人人做人人综合 | 欧美日韩亚洲综合在线| 亚洲一区二区三区四区五区黄| 欧美亚洲另类激情小说| 亚洲图片欧美视频| 日韩一级成人av| 韩国精品主播一区二区在线观看| 久久亚洲二区三区| 国产成人综合视频| 亚洲欧洲一区二区在线播放| 91丨九色丨尤物| 五月婷婷久久丁香| 欧美大尺度电影在线| 国产综合色在线| 1024成人网色www| 欧洲一区二区三区免费视频| 天天射综合影视| 337p粉嫩大胆色噜噜噜噜亚洲| 国产一区91精品张津瑜| 国产精品黄色在线观看| 在线中文字幕不卡| 另类小说色综合网站| 中文字幕乱码亚洲精品一区 | 调教+趴+乳夹+国产+精品| 欧美电影免费观看高清完整版在线 | 99麻豆久久久国产精品免费优播| 亚洲欧美一区二区在线观看| 欧美日韩中文字幕一区| 国内精品在线播放| 亚洲乱码一区二区三区在线观看| 欧美丰满高潮xxxx喷水动漫| 精品无人区卡一卡二卡三乱码免费卡 |