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

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

?? dxut.cpp

?? VC中使用C#作為腳本引擎編程
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
        strCmdLine += wcslen(strFlag);
        return true;
    }
    else
    {
        strFlag[0] = 0;
        return false;
    }
}


//--------------------------------------------------------------------------------------
// Creates a window with the specified window title, icon, menu, and 
// starting position.  If DXUTInit() has not already been called, it will
// call it with the default parameters.  Instead of calling this, you can 
// call DXUTSetWindow() to use an existing window.  
//--------------------------------------------------------------------------------------
HRESULT DXUTCreateWindow( const WCHAR* strWindowTitle, HINSTANCE hInstance, 
                          HICON hIcon, HMENU hMenu, int x, int y )
{
    HRESULT hr;

    // Not allowed to call this from inside the device callbacks
    if( GetDXUTState().GetInsideDeviceCallback() )
        return DXUT_ERR_MSGBOX( L"DXUTCreateWindow", E_FAIL );

    GetDXUTState().SetWindowCreateCalled( true );

    if( !GetDXUTState().GetDXUTInited() ) 
    {
        // If DXUTInit() was already called and failed, then fail.
        // DXUTInit() must first succeed for this function to succeed
        if( GetDXUTState().GetDXUTInitCalled() )
            return E_FAIL; 

        // If DXUTInit() hasn't been called, then automatically call it
        // with default params
        hr = DXUTInit();
        if( FAILED(hr) )
            return hr;
    }

    if( DXUTGetHWNDFocus() == NULL )
    {
        if( hInstance == NULL ) 
            hInstance = (HINSTANCE)GetModuleHandle(NULL);
        GetDXUTState().SetHInstance( hInstance );

        WCHAR szExePath[MAX_PATH];
        GetModuleFileName( NULL, szExePath, MAX_PATH );
        if( hIcon == NULL ) // If the icon is NULL, then use the first one found in the exe
            hIcon = ExtractIcon( hInstance, szExePath, 0 ); 

        // Register the windows class
        WNDCLASS wndClass;
        wndClass.style = CS_DBLCLKS;
        wndClass.lpfnWndProc = DXUTStaticWndProc;
        wndClass.cbClsExtra = 0;
        wndClass.cbWndExtra = 0;
        wndClass.hInstance = hInstance;
        wndClass.hIcon = hIcon;
        wndClass.hCursor = LoadCursor( NULL, IDC_ARROW );
        wndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
        wndClass.lpszMenuName = NULL;
        wndClass.lpszClassName = L"Direct3DWindowClass";

        if( !RegisterClass( &wndClass ) )
        {
            DWORD dwError = GetLastError();
            if( dwError != ERROR_CLASS_ALREADY_EXISTS )
                return DXUT_ERR_MSGBOX( L"RegisterClass", HRESULT_FROM_WIN32(dwError) );
        }

        RECT rc;
        // Override the window's initial & size position if there were cmd line args
        if( GetDXUTState().GetOverrideStartX() != -1 )
            x = GetDXUTState().GetOverrideStartX();
        if( GetDXUTState().GetOverrideStartY() != -1 )
            y = GetDXUTState().GetOverrideStartY();

        GetDXUTState().SetWindowCreatedWithDefaultPositions( false );
        if( x == CW_USEDEFAULT && y == CW_USEDEFAULT )
            GetDXUTState().SetWindowCreatedWithDefaultPositions( true );

        // Find the window's initial size, but it might be changed later
        int nDefaultWidth = 640;
        int nDefaultHeight = 480;
        if( GetDXUTState().GetOverrideWidth() != 0 )
            nDefaultWidth = GetDXUTState().GetOverrideWidth();
        if( GetDXUTState().GetOverrideHeight() != 0 )
            nDefaultHeight = GetDXUTState().GetOverrideHeight();
        SetRect( &rc, 0, 0, nDefaultWidth, nDefaultHeight );        
        AdjustWindowRect( &rc, WS_OVERLAPPEDWINDOW, ( hMenu != NULL ) ? true : false );

        WCHAR* strCachedWindowTitle = GetDXUTState().GetWindowTitle();
        StringCchCopy( strCachedWindowTitle, 256, strWindowTitle );

        // Create the render window
        HWND hWnd = CreateWindow( L"Direct3DWindowClass", strWindowTitle, WS_OVERLAPPEDWINDOW,
                               x, y, (rc.right-rc.left), (rc.bottom-rc.top), 0,
                               hMenu, hInstance, 0 );
        if( hWnd == NULL )
        {
            DWORD dwError = GetLastError();
            return DXUT_ERR_MSGBOX( L"CreateWindow", HRESULT_FROM_WIN32(dwError) );
        }

        GetDXUTState().SetWindowCreated( true );
        GetDXUTState().SetHWNDFocus( hWnd );
        GetDXUTState().SetHWNDDeviceFullScreen( hWnd );
        GetDXUTState().SetHWNDDeviceWindowed( hWnd );
    }

    return S_OK;
}


//--------------------------------------------------------------------------------------
// Sets a previously created window for the framework to use.  If DXUTInit() 
// has not already been called, it will call it with the default parameters.  
// Instead of calling this, you can call DXUTCreateWindow() to create a new window.  
//--------------------------------------------------------------------------------------
HRESULT DXUTSetWindow( HWND hWndFocus, HWND hWndDeviceFullScreen, HWND hWndDeviceWindowed, bool bHandleMessages )
{
    HRESULT hr;
 
    // Not allowed to call this from inside the device callbacks
    if( GetDXUTState().GetInsideDeviceCallback() )
        return DXUT_ERR_MSGBOX( L"DXUTCreateWindow", E_FAIL );

    GetDXUTState().SetWindowCreateCalled( true );

    // To avoid confusion, we do not allow any HWND to be NULL here.  The
    // caller must pass in valid HWND for all three parameters.  The same
    // HWND may be used for more than one parameter.
    if( hWndFocus == NULL || hWndDeviceFullScreen == NULL || hWndDeviceWindowed == NULL )
        return DXUT_ERR_MSGBOX( L"DXUTSetWindow", E_INVALIDARG );

    // If subclassing the window, set the pointer to the local window procedure
    if( bHandleMessages )
    {
        // Switch window procedures
#ifdef _WIN64
        LONG_PTR nResult = SetWindowLongPtr( hWndFocus, GWLP_WNDPROC, (LONG_PTR)DXUTStaticWndProc );
#else
        LONG_PTR nResult = SetWindowLongPtr( hWndFocus, GWLP_WNDPROC, (LONG)(LONG_PTR)DXUTStaticWndProc );
#endif 
 
        DWORD dwError = GetLastError();
        if( nResult == 0 )
            return DXUT_ERR_MSGBOX( L"SetWindowLongPtr", HRESULT_FROM_WIN32(dwError) );
    }
 
    if( !GetDXUTState().GetDXUTInited() ) 
    {
        // If DXUTInit() was already called and failed, then fail.
        // DXUTInit() must first succeed for this function to succeed
        if( GetDXUTState().GetDXUTInitCalled() )
            return E_FAIL; 
 
        // If DXUTInit() hasn't been called, then automatically call it
        // with default params
        hr = DXUTInit();
        if( FAILED(hr) )
            return hr;
    }
 
    WCHAR* strCachedWindowTitle = GetDXUTState().GetWindowTitle();
    GetWindowText( hWndFocus, strCachedWindowTitle, 255 );
    strCachedWindowTitle[255] = 0;
   
    HINSTANCE hInstance = (HINSTANCE) (LONG_PTR) GetWindowLongPtr( hWndFocus, GWLP_HINSTANCE ); 
    GetDXUTState().SetHInstance( hInstance );
    GetDXUTState().SetWindowCreatedWithDefaultPositions( false );
    GetDXUTState().SetWindowCreated( true );
    GetDXUTState().SetHWNDFocus( hWndFocus );
    GetDXUTState().SetHWNDDeviceFullScreen( hWndDeviceFullScreen );
    GetDXUTState().SetHWNDDeviceWindowed( hWndDeviceWindowed );

    return S_OK;
}


//--------------------------------------------------------------------------------------
// Creates a Direct3D device. If DXUTCreateWindow() or DXUTSetWindow() has not already 
// been called, it will call DXUTCreateWindow() with the default parameters.  
// Instead of calling this, you can call DXUTSetDevice() or DXUTCreateDeviceFromSettings() 
//--------------------------------------------------------------------------------------
HRESULT DXUTCreateDevice( UINT AdapterOrdinal, bool bWindowed, 
                          int nSuggestedWidth, int nSuggestedHeight,
                          LPDXUTCALLBACKISDEVICEACCEPTABLE pCallbackIsDeviceAcceptable,
                          LPDXUTCALLBACKMODIFYDEVICESETTINGS pCallbackModifyDeviceSettings,
                          void* pUserContext )
{
    HRESULT hr;

    // Not allowed to call this from inside the device callbacks
    if( GetDXUTState().GetInsideDeviceCallback() )
        return DXUT_ERR_MSGBOX( L"DXUTCreateWindow", E_FAIL );

    // Record the function arguments in the global state 
    GetDXUTState().SetIsDeviceAcceptableFunc( pCallbackIsDeviceAcceptable );
    GetDXUTState().SetModifyDeviceSettingsFunc( pCallbackModifyDeviceSettings );
    GetDXUTState().SetIsDeviceAcceptableFuncUserContext( pUserContext );
    GetDXUTState().SetModifyDeviceSettingsFuncUserContext( pUserContext );

    GetDXUTState().SetDeviceCreateCalled( true );

    // If DXUTCreateWindow() or DXUTSetWindow() has not already been called, 
    // then call DXUTCreateWindow() with the default parameters.         
    if( !GetDXUTState().GetWindowCreated() ) 
    {
        // If DXUTCreateWindow() or DXUTSetWindow() was already called and failed, then fail.
        // DXUTCreateWindow() or DXUTSetWindow() must first succeed for this function to succeed
        if( GetDXUTState().GetWindowCreateCalled() )
            return E_FAIL; 

        // If DXUTCreateWindow() or DXUTSetWindow() hasn't been called, then 
        // automatically call DXUTCreateWindow() with default params
        hr = DXUTCreateWindow();
        if( FAILED(hr) )
            return hr;
    }

    // Force an enumeration with the new IsDeviceAcceptable callback
    DXUTPrepareEnumerationObject( true );

    DXUTMatchOptions matchOptions;
    matchOptions.eAdapterOrdinal     = DXUTMT_PRESERVE_INPUT;
    matchOptions.eDeviceType         = DXUTMT_IGNORE_INPUT;
    matchOptions.eWindowed           = DXUTMT_PRESERVE_INPUT;
    matchOptions.eAdapterFormat      = DXUTMT_IGNORE_INPUT;
    matchOptions.eVertexProcessing   = DXUTMT_IGNORE_INPUT;
    if( bWindowed || (nSuggestedWidth != 0 && nSuggestedHeight != 0) )
        matchOptions.eResolution     = DXUTMT_CLOSEST_TO_INPUT;
    else
        matchOptions.eResolution     = DXUTMT_IGNORE_INPUT;
    matchOptions.eBackBufferFormat   = DXUTMT_IGNORE_INPUT;
    matchOptions.eBackBufferCount    = DXUTMT_IGNORE_INPUT;
    matchOptions.eMultiSample        = DXUTMT_IGNORE_INPUT;
    matchOptions.eSwapEffect         = DXUTMT_IGNORE_INPUT;
    matchOptions.eDepthFormat        = DXUTMT_IGNORE_INPUT;
    matchOptions.eStencilFormat      = DXUTMT_IGNORE_INPUT;
    matchOptions.ePresentFlags       = DXUTMT_IGNORE_INPUT;
    matchOptions.eRefreshRate        = DXUTMT_IGNORE_INPUT;
    matchOptions.ePresentInterval    = DXUTMT_IGNORE_INPUT;

    DXUTDeviceSettings deviceSettings;
    ZeroMemory( &deviceSettings, sizeof(DXUTDeviceSettings) );
    deviceSettings.AdapterOrdinal      = AdapterOrdinal;
    deviceSettings.pp.Windowed         = bWindowed;
    deviceSettings.pp.BackBufferWidth  = nSuggestedWidth;
    deviceSettings.pp.BackBufferHeight = nSuggestedHeight;

    // Override with settings from the command line
    if( GetDXUTState().GetOverrideWidth() != 0 )
        deviceSettings.pp.BackBufferWidth = GetDXUTState().GetOverrideWidth();
    if( GetDXUTState().GetOverrideHeight() != 0 )
        deviceSettings.pp.BackBufferHeight = GetDXUTState().GetOverrideHeight();

    if( GetDXUTState().GetOverrideAdapterOrdinal() != -1 )
        deviceSettings.AdapterOrdinal = GetDXUTState().GetOverrideAdapterOrdinal();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图在线看| 色av成人天堂桃色av| 在线视频中文字幕一区二区| 欧美一区三区二区| 亚洲欧洲综合另类在线| 国产精品一区二区视频| 欧美精品免费视频| 亚洲精品国产精华液| 国产一区二区三区香蕉| 欧美日本国产一区| 亚洲日本丝袜连裤袜办公室| 国产精品888| 日韩欧美一区二区视频| 午夜精品爽啪视频| 欧美三级日韩三级国产三级| ㊣最新国产の精品bt伙计久久| 精品影视av免费| 91精品综合久久久久久| 亚洲va天堂va国产va久| 日本精品免费观看高清观看| 国产精品传媒在线| 成人国产精品视频| 国产精品乱码一区二三区小蝌蚪| 久久成人精品无人区| 日韩欧美一级精品久久| 免费在线看一区| 欧美一卡二卡三卡| 奇米一区二区三区| 欧美一级片在线| 日韩av一级片| 日韩欧美你懂的| 国产又黄又大久久| 337p日本欧洲亚洲大胆精品| 精品一区二区三区在线观看 | 久久久美女艺术照精彩视频福利播放| 五月激情综合婷婷| 日韩欧美国产一二三区| 久久99热99| 久久精品视频网| 成人福利视频网站| 一区二区国产视频| 欧美日韩成人高清| 美女在线视频一区| 精品国产在天天线2019| 国产成人在线看| 自拍偷在线精品自拍偷无码专区| 91美女片黄在线观看| 亚洲综合视频网| 欧美一级高清大全免费观看| 麻豆国产一区二区| 日本一区二区免费在线观看视频| 99精品黄色片免费大全| 亚洲国产日日夜夜| 日韩免费高清av| 国产成人免费视频一区| 亚洲女人的天堂| 欧美一区二区三区免费在线看| 久久激情五月激情| 国产精品久久久久桃色tv| 91黄色免费版| 韩国v欧美v亚洲v日本v| 亚洲色图丝袜美腿| 日韩视频一区在线观看| 成人av免费观看| 日本在线不卡视频| 国产精品久久一卡二卡| 制服.丝袜.亚洲.中文.综合| 国产激情精品久久久第一区二区 | 国产一区 二区 三区一级| 亚洲欧洲性图库| 欧美一卡2卡三卡4卡5免费| 国产剧情一区二区三区| 亚洲欧美一区二区不卡| 亚洲精品一区二区在线观看| 91网页版在线| 黄一区二区三区| 亚洲国产日韩综合久久精品| 国产亚洲视频系列| 欧美人妇做爰xxxⅹ性高电影| 国产精品一二三区在线| 亚洲h精品动漫在线观看| 国产精品乱人伦| 精品入口麻豆88视频| 欧美影视一区在线| 波多野结衣一区二区三区| 热久久免费视频| 亚洲一区二区在线观看视频 | 亚洲成av人片在线| 国产精品美女一区二区三区| 日韩精品中文字幕一区| 欧美色大人视频| 91热门视频在线观看| 国产成人综合亚洲91猫咪| 午夜精品福利一区二区蜜股av| 国产精品久久久久久一区二区三区| 日韩欧美一级片| 91精品国产色综合久久ai换脸 | 精品国产91久久久久久久妲己 | 91麻豆成人久久精品二区三区| 麻豆成人免费电影| 亚洲成人av电影在线| 一区二区三区不卡视频| 1024成人网| 日韩美女久久久| 中文字幕亚洲欧美在线不卡| 国产亚洲午夜高清国产拍精品 | 欧美丰满美乳xxx高潮www| 91免费看`日韩一区二区| 成人激情视频网站| 成人性生交大合| 成人黄色a**站在线观看| 豆国产96在线|亚洲| 国产精品18久久久久久久久久久久 | 国内精品免费**视频| 另类小说图片综合网| 精品在线播放免费| 国产又粗又猛又爽又黄91精品| 狠狠色丁香婷婷综合久久片| 久久超碰97中文字幕| 国内一区二区在线| 国产91精品入口| 91在线丨porny丨国产| 日本二三区不卡| 欧美视频一区二区在线观看| 欧美日韩高清一区二区三区| 欧美一卡二卡三卡四卡| 2017欧美狠狠色| 亚洲国产精品黑人久久久 | 国产拍揄自揄精品视频麻豆| 国产色一区二区| 亚洲色图视频网| 天堂一区二区在线免费观看| 久久激情五月激情| 成人天堂资源www在线| 色婷婷久久久亚洲一区二区三区| 91理论电影在线观看| 欧美丰满高潮xxxx喷水动漫| 精品国产免费一区二区三区香蕉| 国产日韩欧美a| 一区二区久久久| 国精产品一区一区三区mba桃花| 国产精品一区久久久久| 91蝌蚪porny九色| 欧美精品免费视频| 亚洲国产精品二十页| 夜夜精品浪潮av一区二区三区| 日本人妖一区二区| www.激情成人| 日韩视频中午一区| 亚洲欧美色图小说| 久久精品国产99久久6| 91在线视频官网| 精品国精品国产尤物美女| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 午夜精品久久久久久久99樱桃| 激情综合色播五月| 色综合久久88色综合天天免费| 日韩美女天天操| 亚洲电影一级片| 成人污视频在线观看| 日韩午夜av电影| 亚洲综合丁香婷婷六月香| 国产99精品国产| 91精品在线观看入口| 亚洲精品中文在线| 国产成人免费视频网站| 91精品午夜视频| 亚洲一区二区三区四区在线免费观看 | 日韩国产在线观看| av不卡免费电影| 久久―日本道色综合久久| 午夜精品久久久久久久久久久| 成人av电影在线| 久久久久综合网| 久久99久久久欧美国产| 欧美精品在线一区二区| 亚洲欧美成人一区二区三区| 懂色av中文一区二区三区| 欧美一区二区在线不卡| 亚洲无人区一区| 欧美综合欧美视频| 亚洲人成精品久久久久| 成人激情免费电影网址| 国产日本亚洲高清| 紧缚捆绑精品一区二区| 欧美一区二区三区婷婷月色| 一区av在线播放| 99综合电影在线视频| 国产精品伦一区二区三级视频| 精久久久久久久久久久| 精品国产亚洲在线| 免费高清成人在线| 制服丝袜激情欧洲亚洲| 日韩av一二三| 欧美一区二区不卡视频| 另类的小说在线视频另类成人小视频在线| 欧美男男青年gay1069videost| 亚洲午夜日本在线观看| 欧美视频一区二区三区四区 | 亚洲三级久久久|