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

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

?? d3dsettings.cpp

?? 3d 游戲編程入門教程之例子源碼--飛機(jī)繞茶壺
?? CPP
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(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一区二区三区免费野_久草精品视频
欧美色男人天堂| 国产精品久久久久影视| 亚洲免费观看高清完整版在线观看 | 欧美精品一区二区三区很污很色的 | 日本大香伊一区二区三区| 亚洲bdsm女犯bdsm网站| 91精品欧美一区二区三区综合在| 一区二区三区四区亚洲| 色欧美日韩亚洲| 亚洲一区欧美一区| 91黄色免费版| 亚洲18影院在线观看| 这里只有精品99re| 国产在线国偷精品产拍免费yy| 欧美一区二区三级| 激情五月激情综合网| 久久久美女毛片| 91在线视频18| 亚洲福利视频导航| 精品盗摄一区二区三区| 99久久99久久久精品齐齐| 亚洲综合精品久久| 久久精品一区八戒影视| 色婷婷精品大在线视频| 日本美女视频一区二区| 国产午夜久久久久| 色吊一区二区三区| 国产在线一区二区综合免费视频| 国产清纯白嫩初高生在线观看91 | 色婷婷av一区二区三区gif| 国产精品一区二区三区99| 欧美精品一区二| 亚洲一区二区综合| 欧美日本在线一区| 天堂蜜桃91精品| 91 com成人网| 欧美激情一区二区三区不卡| 不卡的av网站| 精品一区二区三区在线观看国产 | eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲国产成人av| 中文字幕在线不卡视频| 欧美mv日韩mv国产网站app| 亚洲va中文字幕| 91精品国产综合久久久久久久| 成人午夜电影网站| 琪琪一区二区三区| 伊人性伊人情综合网| 26uuu国产在线精品一区二区| 在线观看视频欧美| 成人国产精品视频| 国产成人免费在线| 粉嫩在线一区二区三区视频| 麻豆一区二区99久久久久| 亚洲专区一二三| 亚洲综合激情小说| 亚洲午夜视频在线| 亚洲成人自拍网| 日韩电影在线一区二区| 亚洲二区在线视频| 亚洲大片精品永久免费| 无码av免费一区二区三区试看| 一区二区三区日韩在线观看| 国产精品毛片大码女人| 亚洲蜜臀av乱码久久精品 | 在线一区二区观看| 欧美色图在线观看| 欧美一级xxx| 欧美一区二区三区视频| 久久免费视频一区| |精品福利一区二区三区| 一区二区三区日韩精品| 蜜桃91丨九色丨蝌蚪91桃色| 国产最新精品精品你懂的| 成人性生交大片免费看中文| 91猫先生在线| 精品国产成人系列| 亚洲欧美日韩国产一区二区三区 | 久久国产精品无码网站| av日韩在线网站| 精品欧美一区二区在线观看 | 久久亚洲精华国产精华液 | 91精品黄色片免费大全| 欧美激情中文不卡| 免费成人在线播放| 色欲综合视频天天天| 久久久综合精品| 午夜精品久久久久久不卡8050| 国产精品一二二区| 7777精品伊人久久久大香线蕉的| 欧美日韩美少妇| 中文字幕一区二区在线观看| 蜜臀av性久久久久蜜臀aⅴ| 色婷婷激情久久| 亚洲欧美视频一区| 99精品欧美一区二区三区小说| 91精品国产一区二区| 亚洲线精品一区二区三区八戒| 成人在线综合网| 国产天堂亚洲国产碰碰| 麻豆国产一区二区| 91精品国产一区二区三区蜜臀| 尤物视频一区二区| 在线中文字幕一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲成人一区二区在线观看| 色综合色狠狠综合色| 国产精品久久久久久久久免费丝袜| 国产真实精品久久二三区| 日韩午夜av电影| 国产剧情一区二区| 国产精品色在线观看| 国产喂奶挤奶一区二区三区| 专区另类欧美日韩| 欧美精品一二三| 精品一区二区免费看| 亚洲国产精品成人综合色在线婷婷| 91网页版在线| 蜜桃视频在线观看一区| 国产精品乱人伦| 欧美精品乱码久久久久久按摩| 日本sm残虐另类| 久久久久久亚洲综合影院红桃| 国产经典欧美精品| 日本不卡一区二区三区高清视频| 91麻豆产精品久久久久久| 青青草国产精品97视觉盛宴| 中文字幕二三区不卡| 在线观看一区二区视频| 麻豆精品在线看| 日本一区二区在线不卡| 欧美日韩中文另类| 成人综合日日夜夜| 亚洲成人久久影院| 国产香蕉久久精品综合网| 精品视频999| 91在线云播放| 国产福利一区二区三区| 亚洲成人久久影院| 中文字幕在线不卡| 国产免费成人在线视频| 7777精品久久久大香线蕉| 成人午夜电影网站| 美国十次综合导航| 午夜精品在线视频一区| 国产精品无人区| 91麻豆精品国产91久久久久久久久| eeuss鲁一区二区三区| 国产精品99久久久久久宅男| 午夜久久电影网| 一区二区三区日韩欧美精品 | 国产一区激情在线| 性做久久久久久久免费看| 日韩毛片精品高清免费| 亚洲同性gay激情无套| 国产精品久久久久9999吃药| 亚洲精品在线网站| 日韩一级二级三级精品视频| 欧美日韩国产三级| 日本伦理一区二区| 91片黄在线观看| 色噜噜狠狠一区二区三区果冻| 色素色在线综合| 在线精品视频一区二区三四| 色一区在线观看| 成人性视频免费网站| 91丨porny丨最新| 欧美综合天天夜夜久久| 欧美日本视频在线| 精品欧美乱码久久久久久| 久久日一线二线三线suv| 欧美精品丝袜中出| 26uuu成人网一区二区三区| 欧美成人一区二区三区在线观看| 欧美一级理论片| 国产精品高潮呻吟久久| 一区二区三区在线观看网站| 精品制服美女久久| 成人网在线播放| 日本久久精品电影| 91色|porny| 国产日产欧产精品推荐色| 中文字幕一区二区三区在线播放| 一区二区三区四区中文字幕| 日本欧美一区二区| 欧美三级日韩在线| 久久久电影一区二区三区| 亚洲精品乱码久久久久久 | 久久国产尿小便嘘嘘| 成人97人人超碰人人99| 欧美日韩视频第一区| 日韩一区二区麻豆国产| 午夜免费久久看| 国产专区欧美精品| 欧美揉bbbbb揉bbbbb| 国产精品第四页| 国产成人亚洲综合a∨婷婷 | 国产精品亚洲午夜一区二区三区 | 亚洲午夜影视影院在线观看| 一本久道久久综合中文字幕|