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

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

?? basic.cpp

?? Beginning Direct3D Game Programming源代碼Part1chapter
?? CPP
字號:
//-----------------------------------------------------------------------------
// File: basic.cpp
//
// Desc: D3D sample showing the basics of DirectX Graphics Programming
// 
// Copyright (c) 1998-2000 Microsoft Corporation. All rights reserved.
// Copyright (c) 1998-2001 wolf@direct3d.net
//-----------------------------------------------------------------------------
#define STRICT
#include <tchar.h>
#include <math.h>
#include <stdio.h>
#include <D3DX8.h>
#include "D3DApp.h"
#include "D3DFont.h"
#include "D3DUtil.h"
#include "DXUtil.h"
#include "resource.h"


// A structure for our custom vertex type
struct CUSTOMVERTEX
{
    FLOAT x, y, z, rhw; // The transformed position for the vertex
    DWORD color;        // The vertex color
};

// Our custom FVF, which describes our custom vertex structure
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)


//-----------------------------------------------------------------------------
// Name: class CMyD3DApplication
// Desc: Application class. The base class (CD3DApplication) provides the 
//       generic functionality needed in all Direct3D samples. CMyD3DApplication 
//       adds functionality specific to this sample program.
//-----------------------------------------------------------------------------
class CMyD3DApplication : public CD3DApplication
{
	LPDIRECT3DVERTEXBUFFER8 m_pVB; // Buffer to hold vertices
    DWORD m_dwSizeofVertices;

    HRESULT ConfirmDevice( D3DCAPS8*, DWORD, D3DFORMAT );

protected:
    HRESULT OneTimeSceneInit();
    HRESULT InitDeviceObjects();
    HRESULT RestoreDeviceObjects();
    HRESULT InvalidateDeviceObjects();
    HRESULT DeleteDeviceObjects();
    HRESULT Render();
    HRESULT FrameMove();
    HRESULT FinalCleanup();


public:
    CMyD3DApplication();
};


//-----------------------------------------------------------------------------
// Name: WinMain()
// Desc: Entry point to the program. Initializes everything, and goes into a
//       message-processing loop. Idle time is used to render the scene.
//-----------------------------------------------------------------------------
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{
    CMyD3DApplication d3dApp;

    if( FAILED( d3dApp.Create( hInst ) ) )
        return 0;

    return d3dApp.Run();
}


//-----------------------------------------------------------------------------
// Name: CMyD3DApplication()
// Desc: Application constructor. Sets attributes for the app.
//-----------------------------------------------------------------------------
CMyD3DApplication::CMyD3DApplication()
{
    m_strWindowTitle  = _T("Basic");
    m_bUseDepthBuffer = FALSE;
	m_pVB = NULL;
}

//-----------------------------------------------------------------------------
// Name: OneTimeSceneInit()
// Desc: Called during initial app startup, this function performs all the
//       permanent initialization.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::OneTimeSceneInit()
{
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: FrameMove()
// Desc: Called once per frame, the call is the entry point for animating
//       the scene.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::FrameMove()
{
    return S_OK;
}

//-----------------------------------------------------------------------------
// Name: Render()
// Desc: Called once per frame, the call is the entry point for 3d
//       rendering. This function sets up render states, clears the
//       viewport, and renders the scene.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::Render()
{
    // Begin the scene
    if( SUCCEEDED( m_pd3dDevice->BeginScene() ) )
    {
		m_pd3dDevice->SetStreamSource( 0, m_pVB, sizeof(CUSTOMVERTEX) );
		m_pd3dDevice->SetVertexShader( D3DFVF_CUSTOMVERTEX );
	    m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 2 );

      // End the scene.
      m_pd3dDevice->EndScene();
    }

    return S_OK;
}

//-----------------------------------------------------------------------------
// Name: InitDeviceObjects()
// Desc: Initialize scene objects.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::InitDeviceObjects()
{
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: RestoreDeviceObjects()
// Desc: Initialize scene objects.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::RestoreDeviceObjects()
{
    // Set the transform matrices
    D3DXVECTOR3 vEyePt    = D3DXVECTOR3( 0.0f, 0.0f, 2.0f );
    D3DXVECTOR3 vLookatPt = D3DXVECTOR3( 0.0f, 0.0f, 0.0f );
    D3DXVECTOR3 vUpVec    = D3DXVECTOR3( 0.0f, 1.0f, 0.0f );
    D3DXMATRIX  matWorld, matView, matProj;
    
    D3DXMatrixIdentity( &matWorld );
    D3DXMatrixLookAtLH( &matView, &vEyePt, &vLookatPt, &vUpVec );
    FLOAT fAspect = m_d3dsdBackBuffer.Width / (FLOAT)m_d3dsdBackBuffer.Height;
    D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, fAspect, 1.0f, 500.0f );
    
    m_pd3dDevice->SetTransform( D3DTS_WORLD,      &matWorld );
    m_pd3dDevice->SetTransform( D3DTS_VIEW,       &matView );
    m_pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );

	// fill the vertex buffer with the new data
    D3DVIEWPORT8 vp;
    m_pd3dDevice->GetViewport(&vp);

    // Initialize to render a quad
    CUSTOMVERTEX cvVertices[] =
    {
        {  0.0f,  0.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
		{  (float)vp.Width,  0.0f, 0.5f, 1.0f, 0xffff0000, },
        {  (float)vp.Width, (float)vp.Height, 0.5f, 1.0f, 0xff00ff00, },
        {  0.0f, (float)vp.Height, 0.5f, 1.0f, 0xff00ffff, },
    };

	m_dwSizeofVertices = sizeof(cvVertices);

    // Create the vertex buffer
    if( FAILED( m_pd3dDevice->CreateVertexBuffer( m_dwSizeofVertices,
                                                  0, D3DFVF_CUSTOMVERTEX,
                                                  D3DPOOL_MANAGED, &m_pVB ) ) )
        return E_FAIL;

    VOID* pVertices;
    if( FAILED( m_pVB->Lock( 0, m_dwSizeofVertices, (BYTE**)&pVertices, 0 ) ) )
        return E_FAIL;
    memcpy( pVertices, cvVertices, m_dwSizeofVertices);
    m_pVB->Unlock();
  
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: InvalidateDeviceObjects()
// Desc: Called when the app is exiting, or the device is being changed,
//       this function deletes any device dependent objects.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::InvalidateDeviceObjects()
{
    SAFE_RELEASE( m_pVB );
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: DeleteDeviceObjects()
// Desc: Called when the app is exiting, or the device is being changed,
//       this function deletes any device dependent objects.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::DeleteDeviceObjects()
{
   return S_OK;
}


//-----------------------------------------------------------------------------
// Name: FinalCleanup()
// Desc: Called before the app exits, this function gives the app the chance
//       to cleanup after itself.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::FinalCleanup()
{
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: ConfirmDevice()
// Desc: Called during device intialization, this code checks the device
//       for some minimum set of capabilities
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::ConfirmDevice( D3DCAPS8* pCaps, DWORD dwBehavior, 
                                          D3DFORMAT Format )
{
    return S_OK;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区三区| 欧美精品一区二区三区蜜桃| 亚洲午夜一区二区| 91精品国产欧美一区二区成人| 成人国产精品免费观看| 韩国欧美国产一区| 精品一区二区三区免费| 国内成人自拍视频| 国产成人在线影院| 成人听书哪个软件好| 91在线一区二区三区| 在线中文字幕一区| 欧美精品久久99| wwwwww.欧美系列| 欧美国产综合色视频| 亚洲视频一二区| 亚洲丰满少妇videoshd| 美国三级日本三级久久99| 韩国毛片一区二区三区| www.日韩精品| 欧美肥妇free| 国产亚洲综合av| 亚洲精品菠萝久久久久久久| 日韩精品欧美精品| 国产乱国产乱300精品| 91在线观看污| 日韩一级大片在线| 中文在线资源观看网站视频免费不卡| 综合网在线视频| 麻豆传媒一区二区三区| av资源网一区| 日韩欧美国产成人一区二区| 国产精品精品国产色婷婷| 亚洲成人激情av| 国产福利精品导航| 欧美日韩精品专区| 国产精品三级视频| 蜜桃av一区二区在线观看| 色综合网站在线| 911精品产国品一二三产区| 国产精品色眯眯| 久久精品国产免费| 91成人网在线| 欧美国产禁国产网站cc| 首页国产丝袜综合| 一本色道久久加勒比精品 | 免费成人结看片| 不卡av在线网| 久久精品一二三| 日韩和欧美一区二区三区| 91色九色蝌蚪| 久久久精品天堂| 麻豆免费精品视频| 欧美另类变人与禽xxxxx| 亚洲视频电影在线| 成人中文字幕合集| 久久先锋资源网| 久久精品国产**网站演员| 在线视频观看一区| 亚洲男同1069视频| 99在线热播精品免费| 国产精品你懂的在线欣赏| 国产精品538一区二区在线| 欧美一卡二卡在线| 日韩av在线免费观看不卡| 色视频欧美一区二区三区| 一区二区中文视频| 99在线视频精品| 亚洲三级在线看| 91色.com| 亚洲图片一区二区| 欧美日韩一区精品| 图片区小说区国产精品视频| 欧美色综合天天久久综合精品| 亚洲卡通欧美制服中文| 91麻豆精品秘密| 亚洲精品久久久蜜桃| 欧美在线观看视频一区二区三区| 午夜影视日本亚洲欧洲精品| 欧美在线色视频| 午夜精品久久久久久久蜜桃app| 在线观看欧美黄色| 亚洲成人av电影在线| 欧美伦理视频网站| 黄页网站大全一区二区| 久久久一区二区| 91视频在线看| 亚洲 欧美综合在线网络| 91精品国产综合久久久久久久| 天堂蜜桃一区二区三区| 日韩欧美一区电影| 国产91精品一区二区麻豆网站| 国产农村妇女毛片精品久久麻豆 | 五月天亚洲婷婷| 日韩午夜电影在线观看| 国内成人免费视频| 亚洲图片欧美激情| 欧美老女人第四色| 国产在线精品一区在线观看麻豆| 2020国产精品自拍| 成人av电影免费在线播放| 亚洲男人的天堂在线观看| 91精品国产黑色紧身裤美女| 国产精品自拍三区| 亚洲日本青草视频在线怡红院| 欧美日韩国产免费一区二区| 久久国产精品一区二区| 国产精品卡一卡二卡三| 欧美亚洲综合色| 国产乱码精品一品二品| 亚洲人亚洲人成电影网站色| 91精品国产综合久久久蜜臀粉嫩 | 麻豆一区二区99久久久久| 欧美激情一区二区三区在线| 91美女精品福利| 精品一区二区免费在线观看| 亚洲免费视频成人| 久久色在线视频| 欧美日韩你懂的| 成人app网站| 美女视频黄 久久| 亚洲国产日韩综合久久精品| 国产精品视频第一区| 日韩一区二区三区观看| 一本大道久久a久久综合| 精品无人码麻豆乱码1区2区 | 欧美电影免费观看高清完整版| 91玉足脚交白嫩脚丫在线播放| 国内一区二区视频| 亚洲h在线观看| 亚洲视频免费在线| 亚洲国产成人午夜在线一区| 欧美一卡2卡3卡4卡| 欧美丝袜第三区| 激情丁香综合五月| 日韩精品每日更新| 91高清在线观看| 欧美人狂配大交3d怪物一区| 国产一区二区剧情av在线| 亚洲成a人片在线观看中文| 国产欧美日韩久久| 久久一区二区视频| 欧美一区二区三区成人| 欧美精品日韩一本| 欧美视频在线播放| 色老汉av一区二区三区| 成人高清视频在线| av在线一区二区| 成人一区二区三区| 成人国产精品免费观看视频| 国产精品18久久久久久久网站| 精品一区二区三区视频在线观看| 日韩国产欧美三级| 美女国产一区二区| 韩国v欧美v日本v亚洲v| 国内精品视频666| 国产揄拍国内精品对白| 国产成人av电影在线| 风间由美性色一区二区三区| 成人在线视频首页| 色婷婷一区二区| 日av在线不卡| 亚洲国产精品天堂| 午夜精品影院在线观看| 日韩电影在线一区| 国产一区美女在线| 成人av电影在线观看| 色欧美乱欧美15图片| 欧美在线影院一区二区| 欧美午夜电影在线播放| 日韩一级大片在线| 国产喂奶挤奶一区二区三区| 国产欧美一区二区精品忘忧草| 国产精品久久午夜夜伦鲁鲁| 亚洲三级在线看| 一区二区三区产品免费精品久久75 | 亚洲成人黄色影院| 蜜桃视频在线一区| 成+人+亚洲+综合天堂| 色综合视频一区二区三区高清| 在线免费观看日韩欧美| 日韩免费视频一区二区| 中文字幕乱码一区二区免费| 亚洲另类一区二区| 男女男精品网站| 91亚洲永久精品| 精品国产1区二区| 色94色欧美sute亚洲线路一ni | 精品制服美女久久| 白白色 亚洲乱淫| 欧美一区二区二区| 中文字幕一区在线观看视频| 日韩黄色片在线观看| 99国产精品99久久久久久| 欧美一区二区人人喊爽| 1024精品合集| 国产一区二区三区久久久| 欧美日韩精品欧美日韩精品| 欧美经典一区二区三区| 日韩高清不卡在线|