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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? d3dsettings.cpp

?? 3d 游戲 入門教程之例子源碼-圖像渲染
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):
//-----------------------------------------------------------------------------
// 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() )

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人听书哪个软件好| 日韩高清一级片| 亚洲亚洲精品在线观看| 免费人成在线不卡| 国产v综合v亚洲欧| 欧美中文字幕久久| 久久午夜免费电影| 亚洲一区在线观看免费| 激情深爱一区二区| 91麻豆国产自产在线观看| 欧美一区二区三区四区在线观看| 国产日本欧洲亚洲| 亚洲第一av色| 国产91精品久久久久久久网曝门 | 中文字幕一区二区在线观看 | 日韩三级av在线播放| 国产精品区一区二区三区| 亚洲va欧美va天堂v国产综合| 国产一区在线精品| 欧美性videosxxxxx| 欧美v国产在线一区二区三区| 亚洲猫色日本管| 国内不卡的二区三区中文字幕 | 日本成人在线不卡视频| 成人h动漫精品一区二| 51久久夜色精品国产麻豆| 中文字幕精品一区二区三区精品 | 欧美成人aa大片| 亚洲精品国产a| 国产福利91精品一区二区三区| 欧美日韩精品一区二区三区| 欧美极品xxx| 日韩电影在线观看网站| 91老师国产黑色丝袜在线| 日韩欧美精品在线视频| 一区二区三区四区乱视频| 国产一区二区免费视频| 欧美久久一区二区| 亚洲精品欧美激情| 国产成人在线看| 日韩三级伦理片妻子的秘密按摩| 亚洲黄色尤物视频| 成人福利电影精品一区二区在线观看| 3atv一区二区三区| 亚洲综合在线免费观看| 成+人+亚洲+综合天堂| 日韩视频在线观看一区二区| 亚洲一二三区视频在线观看| 91丨九色丨黑人外教| 久久久久久久av麻豆果冻| 蜜桃视频一区二区| 欧美绝品在线观看成人午夜影视| 亚洲欧美日韩国产一区二区三区| 国产成人精品一区二区三区网站观看| 精品区一区二区| 日本中文字幕一区| 欧美日韩国产高清一区二区三区| 亚洲色图另类专区| 成人av午夜电影| 日本一区二区三区四区在线视频| 狠狠色丁香久久婷婷综合_中| 制服.丝袜.亚洲.中文.综合| 亚洲成人在线网站| 欧美丰满美乳xxx高潮www| 亚洲福利视频一区| 欧美日韩亚洲另类| 亚洲成人1区2区| 欧美精品 日韩| 日韩高清一级片| 日韩欧美在线影院| 美国毛片一区二区三区| 欧美一区二区在线免费播放 | 国产性天天综合网| 国产一区二区三区四区五区入口| 精品国产乱码久久久久久蜜臀 | 久久色视频免费观看| 精品综合久久久久久8888| 日韩久久精品一区| 国内精品写真在线观看| 久久精品男人的天堂| 成人综合在线观看| 亚洲欧洲精品天堂一级| 99麻豆久久久国产精品免费优播| 国产精品国产三级国产aⅴ中文| 99久久精品国产毛片| 亚洲女爱视频在线| 欧美日韩一区二区三区不卡| 石原莉奈在线亚洲二区| 欧美xxxx老人做受| 国产成人精品免费一区二区| 中文字幕日韩av资源站| 91成人网在线| 奇米精品一区二区三区四区| 欧美成人一区二区三区| 懂色av一区二区三区免费观看 | 欧美日韩国产经典色站一区二区三区 | 国产aⅴ综合色| 日韩美女啊v在线免费观看| 91精品国产91热久久久做人人| 奇米四色…亚洲| 久久久久久久综合| 99天天综合性| 偷拍日韩校园综合在线| 精品福利一二区| 99久久精品国产精品久久| 亚洲国产日韩一区二区| 精品少妇一区二区三区在线播放| 成人一级黄色片| 亚洲香肠在线观看| 精品久久久久99| 91在线视频免费91| 视频一区欧美日韩| 日本一区二区免费在线观看视频| 在线观看91视频| 国产原创一区二区三区| 亚洲日本中文字幕区| 欧美丰满少妇xxxbbb| 成人网页在线观看| 日韩成人av影视| 国产精品乱人伦一区二区| 欧美三级视频在线观看| 国产精品一区二区果冻传媒| 一区二区三区免费观看| 久久影视一区二区| 欧美在线播放高清精品| 国内成人精品2018免费看| 亚洲自拍偷拍网站| 国产日韩欧美电影| 欧美视频一区二区在线观看| 国产成人av自拍| 日本大胆欧美人术艺术动态 | 欧美性猛交一区二区三区精品| 久久99精品国产.久久久久| 亚洲免费观看高清| 精品处破学生在线二十三| 91久久精品一区二区三| 国产一区二区三区四区五区美女| 亚洲一二三专区| 国产精品美女视频| 日韩欧美激情一区| 在线精品视频免费播放| 国产成人av电影在线| 婷婷亚洲久悠悠色悠在线播放| 中文文精品字幕一区二区| 日韩欧美一区二区久久婷婷| 色哦色哦哦色天天综合| 国产激情一区二区三区桃花岛亚洲| 视频一区在线视频| 亚洲欧美日本韩国| 国产日本亚洲高清| 精品国产精品网麻豆系列| 欧美日韩精品专区| 一本高清dvd不卡在线观看 | 亚洲欧洲制服丝袜| 精品久久久久久久一区二区蜜臀| 欧美日韩免费视频| av毛片久久久久**hd| 精久久久久久久久久久| 日本强好片久久久久久aaa| 亚洲综合视频在线| 亚洲色图.com| 国产精品免费丝袜| 国产日韩欧美a| 久久久av毛片精品| 26uuuu精品一区二区| 日韩欧美国产午夜精品| 欧美丰满美乳xxx高潮www| 欧美主播一区二区三区| 色一情一乱一乱一91av| 99re在线视频这里只有精品| thepron国产精品| zzijzzij亚洲日本少妇熟睡| 国产夫妻精品视频| 国产成人午夜电影网| 国产精品99久久久久久久vr| 狠狠色丁香久久婷婷综合_中| 九色综合狠狠综合久久| 蓝色福利精品导航| 极品少妇xxxx偷拍精品少妇| 久久电影网站中文字幕| 久久99精品久久久久久久久久久久| 免费高清在线视频一区·| 秋霞影院一区二区| 日本免费新一区视频| 免费视频最近日韩| 九九精品一区二区| 国产精品一区专区| 国产激情视频一区二区三区欧美| 国产一区二区导航在线播放| 国产盗摄视频一区二区三区| 丰满亚洲少妇av| 99re在线精品| 欧美视频在线不卡| 7777女厕盗摄久久久| 日韩一区二区三区免费观看| 欧美精品一区二区在线观看| 国产人成亚洲第一网站在线播放 | 99久久精品国产导航| 色又黄又爽网站www久久| 欧美色爱综合网|