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

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

?? d3dsettings.cpp

?? VC游戲編程基礎
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
//-----------------------------------------------------------------------------
// File: D3DSettings.cpp
//
// Desc: Settings class and change-settings dialog class for the Direct3D 
//       samples framework library.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#include "dxstdafx.h"

CD3DSettingsDialog* s_pSettingsDialog = NULL;


//-----------------------------------------------------------------------------
// Name: D3DDevTypeToString
// Desc: Returns the string for the given D3DDEVTYPE.
//-----------------------------------------------------------------------------
TCHAR* D3DDevTypeToString(D3DDEVTYPE devType)
{
    switch (devType)
    {
    case D3DDEVTYPE_HAL:        return TEXT("D3DDEVTYPE_HAL");
    case D3DDEVTYPE_SW:         return TEXT("D3DDEVTYPE_SW");
    case D3DDEVTYPE_REF:        return TEXT("D3DDEVTYPE_REF");
    default:                    return TEXT("Unknown devType");
    }
}


//-----------------------------------------------------------------------------
// Name: MultisampleTypeToString
// Desc: Returns the string for the given D3DMULTISAMPLE_TYPE.
//-----------------------------------------------------------------------------
TCHAR* MultisampleTypeToString(D3DMULTISAMPLE_TYPE MultiSampleType)
{
    switch (MultiSampleType)
    {
    case D3DMULTISAMPLE_NONE:   return TEXT("D3DMULTISAMPLE_NONE");
    case D3DMULTISAMPLE_NONMASKABLE: return TEXT("D3DMULTISAMPLE_NONMASKABLE");
    case D3DMULTISAMPLE_2_SAMPLES: return TEXT("D3DMULTISAMPLE_2_SAMPLES");
    case D3DMULTISAMPLE_3_SAMPLES: return TEXT("D3DMULTISAMPLE_3_SAMPLES");
    case D3DMULTISAMPLE_4_SAMPLES: return TEXT("D3DMULTISAMPLE_4_SAMPLES");
    case D3DMULTISAMPLE_5_SAMPLES: return TEXT("D3DMULTISAMPLE_5_SAMPLES");
    case D3DMULTISAMPLE_6_SAMPLES: return TEXT("D3DMULTISAMPLE_6_SAMPLES");
    case D3DMULTISAMPLE_7_SAMPLES: return TEXT("D3DMULTISAMPLE_7_SAMPLES");
    case D3DMULTISAMPLE_8_SAMPLES: return TEXT("D3DMULTISAMPLE_8_SAMPLES");
    case D3DMULTISAMPLE_9_SAMPLES: return TEXT("D3DMULTISAMPLE_9_SAMPLES");
    case D3DMULTISAMPLE_10_SAMPLES: return TEXT("D3DMULTISAMPLE_10_SAMPLES");
    case D3DMULTISAMPLE_11_SAMPLES: return TEXT("D3DMULTISAMPLE_11_SAMPLES");
    case D3DMULTISAMPLE_12_SAMPLES: return TEXT("D3DMULTISAMPLE_12_SAMPLES");
    case D3DMULTISAMPLE_13_SAMPLES: return TEXT("D3DMULTISAMPLE_13_SAMPLES");
    case D3DMULTISAMPLE_14_SAMPLES: return TEXT("D3DMULTISAMPLE_14_SAMPLES");
    case D3DMULTISAMPLE_15_SAMPLES: return TEXT("D3DMULTISAMPLE_15_SAMPLES");
    case D3DMULTISAMPLE_16_SAMPLES: return TEXT("D3DMULTISAMPLE_16_SAMPLES");
    default:                    return TEXT("Unknown Multisample Type");
    }
}


//-----------------------------------------------------------------------------
// Name: VertexProcessingTypeToString
// Desc: Returns the string for the given VertexProcessingType.
//-----------------------------------------------------------------------------
TCHAR* VertexProcessingTypeToString(VertexProcessingType vpt)
{
    switch (vpt)
    {
    case SOFTWARE_VP:      return TEXT("SOFTWARE_VP");
    case MIXED_VP:         return TEXT("MIXED_VP");
    case HARDWARE_VP:      return TEXT("HARDWARE_VP");
    case PURE_HARDWARE_VP: return TEXT("PURE_HARDWARE_VP");
    default:               return TEXT("Unknown VertexProcessingType");
    }
}


//-----------------------------------------------------------------------------
// Name: PresentIntervalToString
// Desc: Returns the string for the given present interval.
//-----------------------------------------------------------------------------
TCHAR* PresentIntervalToString( UINT pi )
{
    switch( pi )
    {
    case D3DPRESENT_INTERVAL_IMMEDIATE: return TEXT("D3DPRESENT_INTERVAL_IMMEDIATE");
    case D3DPRESENT_INTERVAL_DEFAULT:   return TEXT("D3DPRESENT_INTERVAL_DEFAULT");
    case D3DPRESENT_INTERVAL_ONE:       return TEXT("D3DPRESENT_INTERVAL_ONE");
    case D3DPRESENT_INTERVAL_TWO:       return TEXT("D3DPRESENT_INTERVAL_TWO");
    case D3DPRESENT_INTERVAL_THREE:     return TEXT("D3DPRESENT_INTERVAL_THREE");
    case D3DPRESENT_INTERVAL_FOUR:      return TEXT("D3DPRESENT_INTERVAL_FOUR");
    default:                            return TEXT("Unknown PresentInterval");
    }
}




//-----------------------------------------------------------------------------
// Name: DialogProcHelper
// Desc: 
//-----------------------------------------------------------------------------
INT_PTR CALLBACK DialogProcHelper( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam )
{
    return s_pSettingsDialog->DialogProc( hDlg, msg, wParam, lParam );
}




//-----------------------------------------------------------------------------
// Name: CD3DSettingsDialog constructor
// Desc: 
//-----------------------------------------------------------------------------
CD3DSettingsDialog::CD3DSettingsDialog( CD3DEnumeration* pEnumeration, 
                                        CD3DSettings* pSettings)
{
    s_pSettingsDialog = this;
    m_pEnumeration = pEnumeration;
    m_d3dSettings = *pSettings;
}




//-----------------------------------------------------------------------------
// Name: ComboBoxAdd
// Desc: Adds an entry to the combo box.
//-----------------------------------------------------------------------------
void CD3DSettingsDialog::ComboBoxAdd( int id, void* pData, LPCTSTR pstrDesc )
{
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    DWORD dwItem = ComboBox_AddString( hwndCtrl, pstrDesc );
    ComboBox_SetItemData( hwndCtrl, dwItem, pData );
}




//-----------------------------------------------------------------------------
// Name: ComboBoxSelect
// Desc: Selects an entry in the combo box.
//-----------------------------------------------------------------------------
void CD3DSettingsDialog::ComboBoxSelect( int id, void* pData )
{
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    UINT count = ComboBoxCount( id );
    for( UINT iItem = 0; iItem < count; iItem++ )
    {
        if( (void*)ComboBox_GetItemData( hwndCtrl, iItem ) == pData )
        {
            ComboBox_SetCurSel( hwndCtrl, iItem );
            PostMessage( m_hDlg, WM_COMMAND, 
                MAKEWPARAM( id, CBN_SELCHANGE ), (LPARAM)hwndCtrl );
            return;
        }
    }
}




//-----------------------------------------------------------------------------
// Name: ComboBoxSelectIndex
// Desc: Selects an entry in the combo box.
//-----------------------------------------------------------------------------
void CD3DSettingsDialog::ComboBoxSelectIndex( int id, int index )
{
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    ComboBox_SetCurSel( hwndCtrl, index );
    PostMessage( m_hDlg, WM_COMMAND, MAKEWPARAM( id, CBN_SELCHANGE ), 
        (LPARAM)hwndCtrl );
}




//-----------------------------------------------------------------------------
// Name: ComboBoxSelected
// Desc: Returns the data for the selected entry in the combo box.
//-----------------------------------------------------------------------------
void* CD3DSettingsDialog::ComboBoxSelected( int id )
{
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    int index = ComboBox_GetCurSel( hwndCtrl );
    if( index < 0 )
        return NULL;
    return (void*)ComboBox_GetItemData( hwndCtrl, index );
}




//-----------------------------------------------------------------------------
// Name: ComboBoxSomethingSelected
// Desc: Returns whether any entry in the combo box is selected.  This is 
//       more useful than ComboBoxSelected() when you need to distinguish 
//       between having no item selected vs. having an item selected whose 
//       itemData is NULL.
//-----------------------------------------------------------------------------
bool CD3DSettingsDialog::ComboBoxSomethingSelected( int id )
{
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    int index = ComboBox_GetCurSel( hwndCtrl );
    return ( index >= 0 );
}




//-----------------------------------------------------------------------------
// Name: ComboBoxCount
// Desc: Returns the number of entries in the combo box.
//-----------------------------------------------------------------------------
UINT CD3DSettingsDialog::ComboBoxCount( int id )
{
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    return ComboBox_GetCount( hwndCtrl );
}




//-----------------------------------------------------------------------------
// Name: ComboBoxClear
// Desc: Clears the entries in the combo box.
//-----------------------------------------------------------------------------
void CD3DSettingsDialog::ComboBoxClear( int id )
{
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    ComboBox_ResetContent( hwndCtrl );
}




//-----------------------------------------------------------------------------
// Name: ComboBoxContainsText
// Desc: Returns whether the combo box contains the given text.
//-----------------------------------------------------------------------------
bool CD3DSettingsDialog::ComboBoxContainsText( int id, LPCTSTR pstrText )
{
    TCHAR strItem[200];
    HWND hwndCtrl = GetDlgItem( m_hDlg, id );
    UINT count = ComboBoxCount( id );
    for( UINT iItem = 0; iItem < count; iItem++ )
    {
        if( ComboBox_GetLBTextLen( hwndCtrl, iItem ) >= 200 )
            continue; // shouldn't happen, but don't overwrite buffer if it does
        ComboBox_GetLBText( hwndCtrl, iItem, strItem );
        if( lstrcmp( strItem, pstrText ) == 0 )
            return true;
    }
    return false;
}




//-----------------------------------------------------------------------------
// Name: ShowDialog
// Desc: Show the D3D settings dialog.
//-----------------------------------------------------------------------------
INT_PTR CD3DSettingsDialog::ShowDialog( HWND hwndParent )
{
    return DialogBox( NULL, MAKEINTRESOURCE( IDD_SELECTDEVICE ), 
        hwndParent, DialogProcHelper );
}




//-----------------------------------------------------------------------------
// Name: DialogProc
// Desc: Handle window messages in the dialog.
//-----------------------------------------------------------------------------
INT_PTR CD3DSettingsDialog::DialogProc( HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam )
{
    UNREFERENCED_PARAMETER( lParam );

    switch( msg )
    {
    case WM_INITDIALOG:
        {
            m_hDlg = hDlg;

            // Fill adapter combo box.  Updating the selected adapter will trigger
            // updates of the rest of the dialog.
            for( UINT iai = 0; iai < m_pEnumeration->m_pAdapterInfoList->Count(); iai++ )
            {
                D3DAdapterInfo* pAdapterInfo;
                pAdapterInfo = (D3DAdapterInfo*)m_pEnumeration->m_pAdapterInfoList->GetPtr(iai);
                TCHAR strDescription[512];
                DXUtil_ConvertAnsiStringToGenericCch( strDescription, pAdapterInfo->AdapterIdentifier.Description, 512 );
                ComboBoxAdd( IDC_ADAPTER_COMBO, pAdapterInfo, strDescription );
                if( pAdapterInfo->AdapterOrdinal == m_d3dSettings.AdapterOrdinal() )
                    ComboBoxSelect( IDC_ADAPTER_COMBO, pAdapterInfo );
            }
            if( !ComboBoxSomethingSelected( IDC_ADAPTER_COMBO ) &&
                ComboBoxCount( IDC_ADAPTER_COMBO ) > 0 )
            {
                ComboBoxSelectIndex( IDC_ADAPTER_COMBO, 0 );
            }
        }
        return TRUE;

    case WM_COMMAND:
        switch( LOWORD(wParam) )
        {
        case IDOK:
            EndDialog( hDlg, IDOK );
            break;
        case IDCANCEL:
            EndDialog( hDlg, IDCANCEL );
            break;
        case IDC_ADAPTER_COMBO:
            if( CBN_SELCHANGE == HIWORD(wParam) )
                AdapterChanged();
            break;
        case IDC_DEVICE_COMBO:
            if( CBN_SELCHANGE == HIWORD(wParam) )
                DeviceChanged();
            break;
        case IDC_ADAPTERFORMAT_COMBO:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂影院一区二区| 欧美午夜不卡在线观看免费| 在线中文字幕一区二区| 国产精品久久久久久亚洲毛片 | 色综合久久久久综合| 日本一区二区免费在线观看视频| 日韩高清不卡一区| 91麻豆精品国产无毒不卡在线观看| 精品少妇一区二区三区在线视频 | 亚洲人成影院在线观看| 99天天综合性| 亚洲一区在线视频| 欧美日韩日日夜夜| 老司机免费视频一区二区| 91麻豆精品国产综合久久久久久 | 亚洲成a人v欧美综合天堂| 欧美系列日韩一区| 蜜臀精品一区二区三区在线观看 | 国产精品毛片久久久久久久| www.在线成人| 婷婷六月综合亚洲| 欧美tickling挠脚心丨vk| 国产精品91xxx| 一区二区三区免费网站| 欧美一区二区三区在| 丰满白嫩尤物一区二区| 亚洲一级二级三级在线免费观看| 6080日韩午夜伦伦午夜伦| 粉嫩av一区二区三区在线播放| 久久久综合视频| 欧美天堂一区二区三区| 婷婷中文字幕综合| 色欧美片视频在线观看在线视频| 欧美一级夜夜爽| 久久国产夜色精品鲁鲁99| 91丝袜美腿高跟国产极品老师| 国产精品成人免费| 91在线观看高清| 日韩精品中文字幕在线一区| 中文字幕电影一区| 国产精品一区二区视频| 欧美电视剧在线看免费| 午夜天堂影视香蕉久久| 久久精品国产免费看久久精品| 久久久国产午夜精品 | 亚洲资源中文字幕| 日韩午夜激情av| 国产成a人亚洲精品| 日韩精品电影在线观看| 国产欧美视频一区二区| 一本久久精品一区二区| 夜夜嗨av一区二区三区| 亚洲精品一区二区三区福利| 国产成人av电影| 美国十次综合导航| 日本不卡视频一二三区| 一区免费观看视频| 精品国产青草久久久久福利| 99精品黄色片免费大全| 91色.com| 91一区二区三区在线观看| 粉嫩嫩av羞羞动漫久久久 | 久久国产人妖系列| 亚洲精品午夜久久久| 国产精品电影一区二区| 一区二区三区国产| 日韩av在线播放中文字幕| 免费观看一级欧美片| 国产成人免费视频| 丰满少妇久久久久久久| 丁香婷婷深情五月亚洲| 色综合久久久久综合体| 成人开心网精品视频| 一本大道综合伊人精品热热| 欧美艳星brazzers| 久久综合色天天久久综合图片| 精品sm捆绑视频| 国产精品久久久99| 成人小视频免费在线观看| 91成人在线精品| 一区二区在线观看免费| 99精品久久只有精品| 国产精品嫩草99a| 国产91色综合久久免费分享| 久久精品一二三| 国产91精品入口| 成人午夜电影久久影院| 欧美精品一卡二卡| 亚洲日穴在线视频| 国产精品一级黄| 日韩欧美精品在线| 亚洲成人自拍网| 99国产精品久| 国产精品国产三级国产普通话三级 | 91精品国产综合久久精品麻豆| 中文天堂在线一区| 国产福利不卡视频| 亚洲精品一区二区三区香蕉| 天使萌一区二区三区免费观看| 91欧美一区二区| 亚洲日本va在线观看| 成人高清免费在线播放| 国产免费观看久久| 国产成人综合网站| 国产精品水嫩水嫩| 成人黄色综合网站| 国产精品毛片无遮挡高清| 成人91在线观看| 亚洲综合清纯丝袜自拍| 色婷婷av久久久久久久| 亚洲国产精品欧美一二99| 欧美三级一区二区| 奇米在线7777在线精品| 日韩精品一区二区三区视频| 国产一区二区三区四区五区美女| 久久久天堂av| 波波电影院一区二区三区| 亚洲精品国产成人久久av盗摄| 欧美亚洲动漫精品| 精品一区二区三区免费观看| 欧美精品一区二区三| 成人app软件下载大全免费| 一个色妞综合视频在线观看| 欧美一区二区在线视频| 国产精品资源站在线| 国产精品第四页| 欧美一区二区三区小说| 懂色中文一区二区在线播放| 亚洲一本大道在线| 国产性做久久久久久| 欧美日韩精品一区二区天天拍小说 | 国产午夜三级一区二区三| 在线精品视频免费播放| 国产精品1区2区3区| 婷婷成人激情在线网| 国产精品不卡在线观看| 精品av综合导航| 欧美一二三四区在线| 欧美色中文字幕| 欧洲一区二区三区在线| 成人白浆超碰人人人人| 国产一区视频导航| 黄色资源网久久资源365| 亚洲高清三级视频| 国产丝袜在线精品| 国产午夜亚洲精品理论片色戒| 在线亚洲+欧美+日本专区| 国产成人免费视频网站| 麻豆91精品视频| 国产一区二区主播在线| 岛国一区二区三区| 亚洲国产日韩精品| 久久久久久久久久美女| 91麻豆高清视频| 免费高清成人在线| 一区二区在线观看视频在线观看| 91麻豆精品久久久久蜜臀| 成人高清免费观看| 久久99精品国产麻豆不卡| 亚洲美女一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 一本一本久久a久久精品综合麻豆| 丝袜亚洲精品中文字幕一区| 国产精品天干天干在线综合| 欧美一区在线视频| 欧美婷婷六月丁香综合色| www.视频一区| 成人成人成人在线视频| 高清不卡一区二区在线| 国产一区二三区| 久久福利视频一区二区| 日韩中文字幕不卡| 首页综合国产亚洲丝袜| 亚洲电影一区二区三区| 亚洲一二三区视频在线观看| 亚洲最新视频在线观看| 亚洲综合无码一区二区| 一级特黄大欧美久久久| 最新久久zyz资源站| 中文字幕亚洲不卡| 有坂深雪av一区二区精品| 亚洲图片另类小说| 一区二区三区丝袜| 男男视频亚洲欧美| 美女免费视频一区| 国产精品夜夜嗨| 97成人超碰视| 日韩一区二区三免费高清| 久久久久久**毛片大全| 国产精品日产欧美久久久久| 亚洲少妇屁股交4| 亚洲成人av在线电影| 九九九精品视频| 日本丰满少妇一区二区三区| 制服丝袜成人动漫| 亚洲欧美日韩精品久久久久| 亚洲成人av免费| 在线一区二区三区做爰视频网站| 欧美一区二区网站| 亚洲黄一区二区三区|