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

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

?? d3dsettings.cpp

?? 3d 游戲 入門教程之例子源碼-圖像渲染
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
//-----------------------------------------------------------------------------
// File: D3DSettings.cpp
//
// Desc: Settings class and change-settings dialog class for the Direct3D 
//       samples framework library.
//
// Copyright (c) 1998-2001 Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
#define STRICT
#include <windows.h>
#include <windowsx.h>
#include <tchar.h>
#include <stdio.h>
#include <D3D9.h>
#include "DXUtil.h"
#include "D3DUtil.h"
#include "D3DEnumeration.h"
#include "D3DSettings.h"
#include "D3DRes.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, TCHAR* 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, TCHAR* 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() )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色哟哟国产精品| 日韩精品一区二区三区在线观看| 九九**精品视频免费播放| 国产精品久久久久久久岛一牛影视 | 国产精品一区在线观看乱码| 亚洲一区二区三区四区在线免费观看| 久久久精品2019中文字幕之3| 欧美精品欧美精品系列| 91蜜桃传媒精品久久久一区二区| 男人的j进女人的j一区| 亚洲一级二级三级| 国产精品久久久久久久蜜臀| 久久亚洲一级片| 91精品久久久久久久久99蜜臂| 日本二三区不卡| fc2成人免费人成在线观看播放 | 亚洲卡通动漫在线| 国产精品青草综合久久久久99| 精品嫩草影院久久| 欧美日本精品一区二区三区| 欧洲人成人精品| av亚洲精华国产精华| 成人免费福利片| 国产成人aaaa| 国产成人h网站| 国产99一区视频免费| 国产一区 二区 三区一级| 美女www一区二区| 蜜乳av一区二区三区| 日本美女一区二区三区| 日本伊人精品一区二区三区观看方式 | 精品电影一区二区| 26uuu亚洲综合色欧美| 精品成人一区二区三区四区| 欧美成人一区二区三区片免费| 欧美一区二区三区人| 欧美一区二区三区小说| 7777精品伊人久久久大香线蕉超级流畅 | 午夜欧美在线一二页| 偷拍日韩校园综合在线| 亚洲午夜精品久久久久久久久| 亚洲免费伊人电影| 亚洲综合成人在线| 首页亚洲欧美制服丝腿| 日韩福利视频网| 精品一区二区免费看| 韩国一区二区视频| 成人午夜私人影院| 91色porny蝌蚪| 欧美日韩一区中文字幕| 欧美一区二区高清| 久久久久99精品国产片| 中文字幕制服丝袜成人av| 1024亚洲合集| 五月婷婷久久综合| 精品亚洲国产成人av制服丝袜| 国产福利一区二区三区视频在线 | 亚洲一区二区在线视频| 天天操天天色综合| 韩国成人在线视频| 波多野结衣91| 欧美日韩精品一二三区| 精品国产乱子伦一区| 欧美国产精品久久| 一区二区成人在线| 精品一区二区三区免费| av电影在线观看一区| 欧美精品xxxxbbbb| 国产欧美日韩精品一区| 一区二区成人在线| 国产精品综合网| 欧美又粗又大又爽| 精品免费视频一区二区| 亚洲少妇最新在线视频| 视频精品一区二区| 高清不卡一区二区在线| 欧美唯美清纯偷拍| 国产亚洲欧美色| 午夜欧美电影在线观看| 国产成人免费9x9x人网站视频| 欧美性色aⅴ视频一区日韩精品| 日韩免费高清视频| 樱花草国产18久久久久| 国产裸体歌舞团一区二区| 色呦呦日韩精品| 国产色产综合产在线视频| 午夜精品福利久久久| 国产宾馆实践打屁股91| 678五月天丁香亚洲综合网| 国产日产欧美一区二区三区 | 国产麻豆精品一区二区| 在线观看av一区二区| 国产女人18毛片水真多成人如厕| 午夜在线电影亚洲一区| 成人免费毛片aaaaa**| 7777精品伊人久久久大香线蕉超级流畅| 国产精品视频第一区| 日韩av在线播放中文字幕| 色婷婷久久99综合精品jk白丝| 久久久久综合网| 美女视频黄免费的久久| 在线观看成人小视频| 中文字幕亚洲一区二区va在线| 精品一区二区三区香蕉蜜桃| 欧美裸体bbwbbwbbw| 一区二区欧美国产| 99r国产精品| 国产精品麻豆欧美日韩ww| 国产呦萝稀缺另类资源| 欧美一级日韩不卡播放免费| 性欧美大战久久久久久久久| 91免费观看在线| 亚洲欧洲性图库| 成人精品国产福利| 国产女人aaa级久久久级| 韩国三级电影一区二区| 制服.丝袜.亚洲.另类.中文| 亚洲成人黄色影院| 欧美日韩午夜在线视频| 亚洲一区免费在线观看| 在线观看免费成人| 一区二区在线看| 色嗨嗨av一区二区三区| 18欧美亚洲精品| 91麻豆国产在线观看| 亚洲视频你懂的| 99久久精品国产一区二区三区| 国产欧美日韩麻豆91| 国产a视频精品免费观看| 久久女同互慰一区二区三区| 国产毛片精品国产一区二区三区| 久久综合网色—综合色88| 精一区二区三区| 国产亚洲欧美激情| 成人午夜免费视频| 自拍偷拍国产精品| 色噜噜偷拍精品综合在线| 夜夜揉揉日日人人青青一国产精品| 色综合久久88色综合天天免费| 樱桃视频在线观看一区| 欧美性极品少妇| 日本sm残虐另类| 欧美xxxxx牲另类人与| 国产一区二区日韩精品| 国产女人18毛片水真多成人如厕 | 国产一本一道久久香蕉| 国产日韩精品一区| 91在线国产福利| 亚洲一二三专区| 欧美一区二区在线看| 国产呦精品一区二区三区网站| 日本一区二区三区久久久久久久久不 | 国产精品一卡二卡在线观看| 欧美国产成人在线| 色一区在线观看| 日本欧美在线观看| 久久综合色鬼综合色| 成人黄色一级视频| 亚洲国产精品麻豆| 日韩美女视频一区二区在线观看| 国产精品1区2区| 亚洲免费观看高清完整版在线观看 | 国产精品九色蝌蚪自拍| 欧美午夜电影网| 国产在线播精品第三| 国产精品福利一区二区| 欧美三级韩国三级日本一级| 久久国产精品72免费观看| 国产精品免费丝袜| 欧美日韩国产123区| 国产精品一卡二| 亚洲午夜一区二区三区| 久久在线观看免费| 欧美在线你懂得| 极品美女销魂一区二区三区| 自拍偷拍亚洲综合| 日韩欧美国产一区二区在线播放 | a美女胸又www黄视频久久| 五月婷婷另类国产| 亚洲国产精品成人综合色在线婷婷| 欧美亚洲国产bt| 韩国精品在线观看| 亚洲午夜成aⅴ人片| 国产欧美日韩综合| 欧美一区二区三区免费| 9久草视频在线视频精品| 免费成人你懂的| 亚洲欧美国产毛片在线| 久久日一线二线三线suv| 精品视频色一区| 99久久99久久精品国产片果冻| 久久成人羞羞网站| 亚洲国产精品一区二区尤物区| 欧美激情中文字幕| 日韩美女一区二区三区四区| 欧美视频精品在线| 97精品电影院| 懂色av中文一区二区三区| 另类综合日韩欧美亚洲| 亚洲成人自拍偷拍|