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

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

?? fixedfuncshader.cpp

?? activate your member account after checking your files. If
?? CPP
?? 第 1 頁 / 共 4 頁
字號:

         SAFE_RELEASE(pBackBuffer);
      }

      if(m_Mode == FFS_MODE_BOTH)
      {
         m_pd3dDevice->SetViewport(&vp);
      }

      if(m_bShowSettingsText)
      {
         RenderSettings(&m_scenestate);
      }

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

   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: InitDeviceObjects()
// Desc: Initialize scene objects.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::InitDeviceObjects()
{
   LPDIRECT3DVERTEXBUFFER9 pMeshSourceVB;
   LPDIRECT3DINDEXBUFFER9  pMeshSourceIB;
   D3DVERTEX*              pSrc;
   D3DVERTEX*              pDst;
	HRESULT					   hr;

   // Restore the font
   m_pFont->InitDeviceObjects(m_pd3dDevice);
   m_pFontSmall->InitDeviceObjects(m_pd3dDevice);

   if(FAILED(m_pObject->Create(m_pd3dDevice, _T(m_strMeshFilename))))
   {
      return D3DAPPERR_MEDIANOTFOUND;
   }

   m_pObject->SetFVF(m_pd3dDevice, D3DVERTEX::FVF);

   m_dwNumVertices  = m_pObject->GetSysMemMesh()->GetNumVertices();
   m_dwNumFaces     = m_pObject->GetSysMemMesh()->GetNumFaces();

   m_pd3dDevice->CreateVertexBuffer(m_dwNumVertices * sizeof(D3DVERTEX),
                                      D3DUSAGE_WRITEONLY, 0, D3DPOOL_MANAGED,
                                      &m_pMeshVB, NULL);
   m_pd3dDevice->CreateIndexBuffer(m_dwNumFaces * 3 * sizeof(WORD),
                                      D3DUSAGE_WRITEONLY,
                                      D3DFMT_INDEX16, D3DPOOL_MANAGED,
                                      &m_pMeshIB, NULL);

   // Copy vertices for mesh
   m_pObject->GetSysMemMesh()->GetVertexBuffer(&pMeshSourceVB);
   m_pMeshVB->Lock(0, 0, (void**)&pDst, 0);
   pMeshSourceVB->Lock(0, 0, (void**)&pSrc, 0);
   memcpy(pDst, pSrc, m_dwNumVertices * sizeof(D3DVERTEX));
   pMeshSourceVB->Unlock();
   pMeshSourceVB->Release();

   hr = D3DXComputeBoundingSphere((D3DXVECTOR3*)pDst, m_pObject->GetSysMemMesh()->GetNumVertices(), 
                                    D3DXGetFVFVertexSize(m_pObject->GetSysMemMesh()->GetFVF()), &m_vObjectCenter, 
                                    &m_fObjectRadius);

   m_pMeshVB->Unlock();

   // Copy indices for mesh
   m_pObject->GetSysMemMesh()->GetIndexBuffer(&pMeshSourceIB);
   m_pMeshIB->Lock(0, 0, (void**)&pDst, 0);
   pMeshSourceIB->Lock(0, 0, (void**)&pSrc, 0);
   memcpy(pDst, pSrc, 3 * m_dwNumFaces * sizeof(WORD));
   m_pMeshIB->Unlock();
   pMeshSourceIB->Unlock();
   pMeshSourceIB->Release();

   //set up tweening. Must have second mesh name be same as first,
   //but ending with a "2" instead of a "1"
   //example: dolphin1.x, dolphin2.x
   if(!m_scenestate.m_bInited)
   {
      m_scenestate.m_bTweening = false;
   }
   char *num;
   if(m_scenestate.m_bTweening)
   {
      num = strstr(m_strMeshFilename, "1.");
      if(num == NULL)
      {
         m_scenestate.m_bTweening = false;
      }
   }
   if(m_scenestate.m_bTweening)
   {
      *num = '2';
      if(FAILED(m_pObject2->Create(m_pd3dDevice, _T(m_strMeshFilename))))
      {
         return D3DAPPERR_MEDIANOTFOUND;
      }
      *num = '1';

      m_pObject2->SetFVF(m_pd3dDevice, D3DVERTEX::FVF);

      m_pd3dDevice->CreateVertexBuffer(m_dwNumVertices * sizeof(D3DVERTEX),
                                      D3DUSAGE_WRITEONLY, 0, D3DPOOL_MANAGED,
                                      &m_pMesh2VB, NULL);

      // Copy vertices for mesh
      m_pObject2->GetSysMemMesh()->GetVertexBuffer(&pMeshSourceVB);
      m_pMesh2VB->Lock(0, 0, (void**)&pDst, 0);
      pMeshSourceVB->Lock(0, 0, (void**)&pSrc, 0);
      memcpy(pDst, pSrc, m_dwNumVertices * sizeof(D3DVERTEX));
      m_pMesh2VB->Unlock();
      pMeshSourceVB->Unlock();
      pMeshSourceVB->Release();

      D3DVERTEXELEMENT9 declMesh[] =
      {
         { 0,  0, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_POSITION, 0}, 
         { 0, 12, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_NORMAL,   0}, 
         { 0, 24, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_COLOR,    0}, 
         { 0, 28, D3DDECLTYPE_FLOAT2,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD, 0}, 

         { 1,  0, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_POSITION, 1}, 
         { 1, 12, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_NORMAL,   1}, 
         { 1, 24, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_COLOR,    1}, 
         { 1, 28, D3DDECLTYPE_FLOAT2,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD, 1}, 
         D3DDECL_END()
      };
   
      if(FAILED(hr = m_pd3dDevice->CreateVertexDeclaration(declMesh, &m_pVertexDeclarationTween)))
      {
         return hr;
      }
   }

   //vertex declaration
   D3DVERTEXELEMENT9 declMesh[] =
   {
      { 0,  0, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_POSITION, 0}, 
      { 0, 12, D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_NORMAL,   0}, 
      { 0, 24, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_COLOR,    0}, 
      { 0, 28, D3DDECLTYPE_FLOAT2,   D3DDECLMETHOD_DEFAULT,  D3DDECLUSAGE_TEXCOORD, 0}, 
      D3DDECL_END()
   };

   if(FAILED(hr = m_pd3dDevice->CreateVertexDeclaration(declMesh, &m_pVertexDeclaration)))
   {
      return hr;
   }
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: InitDiff()
// Desc: Initializes textures needed for diff
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::InitDiff()
{
   HRESULT hr;

   if(m_bDiffInit)
   {
      return S_OK;
   }

   //create/init textures for diff
   hr = D3DXCreateTexture(m_pd3dDevice, m_iWidth, m_iHeight, 1, 
            D3DUSAGE_RENDERTARGET, m_d3dsdBackBuffer.Format, D3DPOOL_DEFAULT, &m_pTexture1);
   if(FAILED(hr))
   {
      return E_FAIL;
   }

   hr = m_pTexture1->GetSurfaceLevel(0, &m_pTextureSurface1);
   if(FAILED(hr))
   {
      return E_FAIL;
   }

   hr = D3DXCreateTexture(m_pd3dDevice, m_iWidth, m_iHeight, 1, 
            D3DUSAGE_RENDERTARGET, m_d3dsdBackBuffer.Format, D3DPOOL_DEFAULT, &m_pTexture2);
   if(FAILED(hr))
   {
      return E_FAIL;
   }

   hr = m_pTexture2->GetSurfaceLevel(0, &m_pTextureSurface2);
   if(FAILED(hr))
   {
      return E_FAIL;
   }

   hr = D3DXCreateTexture(m_pd3dDevice, m_iWidth, m_iHeight, 1, 
            D3DUSAGE_DYNAMIC, m_d3dsdBackBuffer.Format, D3DPOOL_SYSTEMMEM, &m_pTexture3);
   if(FAILED(hr))
   {
      return E_FAIL;
   }

   hr = m_pTexture3->GetSurfaceLevel(0, &m_pTextureSurface3);
   if(FAILED(hr))
   {
      return E_FAIL;
   }

   hr = m_pd3dDevice->CreateVertexBuffer(4 * sizeof(D3DVERTEX),
           D3DUSAGE_WRITEONLY, D3DVERTEX::FVF, D3DPOOL_MANAGED, &m_pQuadVB , NULL);
   if(FAILED(hr))
   {
      return E_FAIL;
   } 

   //set up quad covering entire screen (for diff rendering)
   D3DVERTEX *v;
   m_pQuadVB->Lock(0, 0, (void **) &v, 0);

   v[0].px = -(m_iWidth/2.f);
   v[0].py = -(m_iHeight/2.f);
   v[0].pz = 0.0f;
   v[0].c = 0xFFFFFFFF;
   v[0].tu = 0.f; v[0].tv = 1.f;
    
   v[1].px = -(m_iWidth/2.f);
   v[1].py = +(m_iHeight/2.f);
   v[1].pz = 0.0f;
   v[1].c = 0xFFFFFFFF;
   v[1].tu = 0.f; v[1].tv = 0.f;
    
   v[2].px = +(m_iWidth/2.f);
   v[2].py = +(m_iHeight/2.f);
   v[2].pz = 0.0f;
   v[2].c = 0xFFFFFFFF;
   v[2].tu = 1.f; v[2].tv = 0.f;

   v[3].px = +(m_iWidth/2.f);
   v[3].py = -(m_iHeight/2.f);
   v[3].pz = 0.0f;
   v[3].c = 0xFFFFFFFF;
   v[3].tu = 1.f; v[3].tv = 1.f;

   m_pQuadVB->Unlock();

   m_bDiffInit = true;
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: ReleaseDiff()
// Desc: Releases textures needed for diff
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::ReleaseDiff()
{
   if(!m_bDiffInit)
   {
      return S_OK;
   }

   SAFE_RELEASE(m_pTextureSurface1);
   SAFE_RELEASE(m_pTextureSurface2);
   SAFE_RELEASE(m_pTextureSurface3);
   SAFE_RELEASE(m_pTexture1);
   SAFE_RELEASE(m_pTexture2);
   SAFE_RELEASE(m_pTexture3);

   SAFE_RELEASE(m_pQuadVB);

   m_bDiffInit = false;
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: D3DUtil_InitMaterial()
// Desc: Initializes a D3DMATERIAL9 structure, setting the diffuse and ambient
//       colors. It does not set emissive or specular colors.
// PVS:  This is from an older D3DUtil file
//-----------------------------------------------------------------------------
VOID D3DUtil_InitMaterial(D3DMATERIAL9& mtrl, FLOAT r, FLOAT g, FLOAT b,
                           FLOAT a)
{
    ZeroMemory(&mtrl, sizeof(D3DMATERIAL9));
    mtrl.Specular.r = mtrl.Diffuse.r = mtrl.Ambient.r = r;
    mtrl.Specular.g = mtrl.Diffuse.g = mtrl.Ambient.g = g;
    mtrl.Specular.b = mtrl.Diffuse.b = mtrl.Ambient.b = b;
    mtrl.Specular.a = mtrl.Diffuse.a = mtrl.Ambient.a = a;
}

//-----------------------------------------------------------------------------
// Name: RestoreDeviceObjects()
// Desc: Initialize scene objects.
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::RestoreDeviceObjects()
{
	HRESULT hr;

   m_pFont->RestoreDeviceObjects();
   m_pFontSmall->RestoreDeviceObjects();

   // Restore device-memory objects for the mesh
   m_pObject->RestoreDeviceObjects(m_pd3dDevice);

   if(FAILED(hr = D3DXCreateCubeTextureFromFile(m_pd3dDevice, "Data\\LobbyCube.dds", &m_pCubeMap)))
   {
      return hr;
   }

   //init shader
   LPD3DXBUFFER pBufferErrors = NULL;
   if(FAILED(hr = D3DXCreateEffectFromFile(m_pd3dDevice, "Effects\\FixedFuncShader.fx", 
	        NULL, NULL, D3DXSHADER_DEBUG, NULL, &m_pEffect, &pBufferErrors)))
   {
      return hr;
   }
   if(FAILED(hr = m_pEffect->ValidateTechnique(m_pEffect->GetTechniqueByName("basic"))))
   {
      return hr;
   }
   if(FAILED(m_pEffect->ValidateTechnique(m_pEffect->GetTechniqueByName("basic_with_shader"))))
   {
      return hr;
   }
   if(FAILED(m_pEffect->ValidateTechnique(m_pEffect->GetTechniqueByName("technique_diff"))))
   {
      return hr;
   }


   m_pEffect->OnResetDevice();

   // Set miscellaneous render states
   m_pd3dDevice->SetRenderState(D3DRS_DITHERENABLE,    FALSE);
   m_pd3dDevice->SetRenderState(D3DRS_SPECULARENABLE,  FALSE);
   m_pd3dDevice->SetRenderState(D3DRS_ZENABLE,         TRUE);
   m_pd3dDevice->SetRenderState(D3DRS_NORMALIZENORMALS,TRUE);

   m_iWidth  = m_d3dsdBackBuffer.Width;
   m_iHeight = m_d3dsdBackBuffer.Height;

   m_pd3dDevice->SetRenderState(D3DRS_AMBIENT, 0xFFFFFFFF);

   // Set the world matrix
   D3DXMatrixTranslation(&m_matWorld, -m_vObjectCenter.x,
                                      -m_vObjectCenter.y,
                                      -m_vObjectCenter.z);

   m_pd3dDevice->SetTransform(D3DTS_WORLD,  &m_matWorld);

   // Set the projection matrix
   FLOAT fAspect = ((FLOAT)m_iWidth/2) / m_iHeight;
   D3DXMatrixPerspectiveFovLH(&m_matProj, D3DX_PI/4, fAspect, 
                                m_fObjectRadius/64.0f, m_fObjectRadius*200.0f);
   m_pd3dDevice->SetTransform(D3DTS_PROJECTION, &m_matProj);

   D3DXMatrixTranslation(&m_matViewTrans, 0,0,3.0f * m_fObjectRadius);
   D3DXMatrixIdentity(&m_matViewRot);
   D3DXMatrixMultiply(&m_matView, &m_matViewRot, &m_matViewTrans);
   m_pd3dDevice->SetTransform(D3DTS_VIEW, &m_matView);

   m_scenestate.Set(m_pd3dDevice, m_pEffect);

   // Set the ArcBall parameters
   m_ArcBall.SetWindow(m_iWidth, m_iHeight, 1.0f);
   m_ArcBall.SetTranslationRadius(m_fObjectRadius);
   D3DXMatrixIdentity(&m_matArcBall);

   m_pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
   m_pd3dDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
   m_pd3dDevice->SetRenderState(D3DRS_COLORVERTEX, FALSE);

   //to do the diff
   if(m_Mode == FFS_MODE_DIFF)
   {
      if(FAILED(InitDiff()))
      {
         return E_FAIL;
      }
   }

   //handle command line options
   if(m_bLoadState)
   {
      m_bLoadState = false;
      LoadFullState();
   }
   return S_OK;
}

//-----------------------------------------------------------------------------
// Name: InvalidateDeviceObjects()
// Desc:
//-----------------------------------------------------------------------------
HRESULT CMyD3DApplication::InvalidateDeviceObjects()
{
   if(m_pFont != NULL)
   {
      m_pFont->InvalidateDeviceObjects();
   }
   if(m_pFontSmall != NULL)
   {
      m_pFontSmall->InvalidateDeviceObjects();
   }
   if(m_pObject != NULL)
   {
      m_pObject->InvalidateDeviceObjects();
   }

   if(m_pEffect != NULL)
   {
	   m_pEffect->OnLostDevice();
   }

   SAFE_RELEASE(m_pEffect);
   SAFE_RELEASE(m_pCubeMap);

   if(m_Mode == FFS_MODE_DIFF)
   {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区三区网站 | 青青青爽久久午夜综合久久午夜 | 国产在线国偷精品免费看| 成人一级视频在线观看| 欧美日韩一区三区四区| 中文一区在线播放| 久久99精品国产.久久久久久| 色综合久久综合网97色综合| 国产色综合久久| 美女脱光内衣内裤视频久久影院| 色哟哟国产精品| 国产精品久久久久久久久久免费看| 日精品一区二区三区| 一本大道综合伊人精品热热| 国产亚洲人成网站| 精品在线观看免费| 91精品国产综合久久福利| 亚洲国产另类av| 色婷婷综合久久久久中文| 中文字幕欧美三区| 国产福利一区二区三区| 久久久久久久久岛国免费| 蜜桃视频在线观看一区二区| 欧美伦理视频网站| 亚洲成人精品一区二区| 日韩一区二区免费高清| 日本aⅴ亚洲精品中文乱码| 精品污污网站免费看| 一区二区三区四区蜜桃| 日本电影欧美片| 一区二区三区中文字幕精品精品| av不卡在线播放| 亚洲四区在线观看| 91亚洲资源网| 亚洲精品v日韩精品| 91久久精品国产91性色tv| 亚洲九九爱视频| 在线影院国内精品| 亚洲国产欧美在线人成| 欧美日韩成人在线一区| 日本美女一区二区三区| 精品久久久久久久久久久久久久久 | 精品一区二区三区欧美| 久久久久久黄色| 成人免费观看男女羞羞视频| 中文字幕一区三区| 欧美专区日韩专区| 日本亚洲一区二区| 精品久久久久香蕉网| 国产精品888| 日韩久久一区二区| 欧美一区二区私人影院日本| 精品一区二区三区视频| 国产精品免费久久久久| 色香色香欲天天天影视综合网| 亚洲精品中文字幕在线观看| 欧美日韩一级片在线观看| 蜜桃精品视频在线观看| 久久久不卡影院| 91视频在线观看免费| 天天综合色天天综合| 久久综合狠狠综合久久综合88 | 亚洲国产高清不卡| 色婷婷综合中文久久一本| 日韩av一区二| 日本一区二区不卡视频| 在线观看日韩国产| 国产一二精品视频| 亚洲一二三四在线| 国产欧美一区二区三区沐欲| 日本高清不卡一区| 国产精品小仙女| 亚洲夂夂婷婷色拍ww47| 久久青草国产手机看片福利盒子| 91免费观看视频在线| 麻豆精品视频在线| 亚洲久草在线视频| 久久综合久久鬼色中文字| 欧美主播一区二区三区美女| 国产一区二区三区四| 五月开心婷婷久久| 亚洲人xxxx| 久久精品亚洲麻豆av一区二区 | 国产精品亚洲一区二区三区在线| 亚洲欧美另类久久久精品 | 日韩欧美国产精品一区| 91免费视频网| 国产大片一区二区| 蜜臀av一区二区在线免费观看| 亚洲精品水蜜桃| 国产精品无遮挡| 精品久久人人做人人爰| 欧美二区乱c少妇| 色美美综合视频| 成人高清av在线| 国产一区二区毛片| 乱一区二区av| 免费在线观看不卡| 亚洲.国产.中文慕字在线| 亚洲日本中文字幕区| 中文字幕高清不卡| 国产欧美日韩不卡免费| 久久先锋影音av鲁色资源| 制服丝袜亚洲色图| 欧美精品免费视频| 欧美日韩精品系列| 欧美日韩在线免费视频| 91福利精品视频| 91在线播放网址| 91视频在线观看免费| 91亚洲国产成人精品一区二区三| 国产九色sp调教91| 国产成人无遮挡在线视频| 国产麻豆视频精品| 国产99精品视频| 粉嫩av亚洲一区二区图片| 国产成a人亚洲精| 成人免费电影视频| a4yy欧美一区二区三区| 91在线播放网址| 在线中文字幕不卡| 欧美日韩另类一区| 91精品免费观看| 欧美成人福利视频| 精品国产凹凸成av人导航| 久久日一线二线三线suv| 国产亲近乱来精品视频| 亚洲欧洲日本在线| 亚洲一区影音先锋| 成人一道本在线| 成人毛片视频在线观看| 一本到不卡免费一区二区| 精品视频一区三区九区| 日韩一区二区三区视频| 久久久久久久久久久久久女国产乱| 国产欧美精品国产国产专区| 亚洲同性同志一二三专区| 一区二区三区精品视频在线| 日本v片在线高清不卡在线观看| 久久99精品久久久| 99精品国产热久久91蜜凸| 欧美这里有精品| 欧美不卡123| 国产精品成人网| 三级久久三级久久久| 国产精品99久久久久久宅男| 色天使久久综合网天天| 日韩一级片网址| 国产精品成人免费精品自在线观看 | 婷婷丁香激情综合| 国产精品99精品久久免费| 色欧美乱欧美15图片| 日韩欧美国产精品| 亚洲欧美偷拍三级| 奇米影视在线99精品| 成人高清在线视频| 日韩欧美国产1| 亚洲欧美日韩人成在线播放| 麻豆成人91精品二区三区| 99精品国产热久久91蜜凸| 日韩精品一区二区三区中文不卡 | 国内精品免费**视频| 91在线视频播放| 日韩欧美电影在线| 亚洲免费资源在线播放| 色美美综合视频| 久久婷婷国产综合国色天香| 亚洲国产aⅴ成人精品无吗| 成人网在线免费视频| 日韩午夜在线影院| 一区二区三区四区中文字幕| 国v精品久久久网| 欧美成人乱码一区二区三区| 香蕉乱码成人久久天堂爱免费| 丁香天五香天堂综合| 日韩写真欧美这视频| 亚洲资源在线观看| a美女胸又www黄视频久久| 久久午夜羞羞影院免费观看| 日韩精品亚洲一区二区三区免费| 91丨国产丨九色丨pron| 日本一区二区三区四区在线视频| 日韩精品福利网| 欧美亚洲综合久久| 最新成人av在线| 成人黄色片在线观看| 久久久久久久久岛国免费| 久久精品国产亚洲aⅴ| 3d动漫精品啪啪一区二区竹菊 | 国产欧美一区二区精品忘忧草| 日本一不卡视频| 7799精品视频| 亚洲国产va精品久久久不卡综合| av在线不卡电影| 亚洲欧洲精品一区二区三区| 成人听书哪个软件好| 中文字幕av在线一区二区三区| 国产精品一区二区x88av| 久久九九久久九九| 国产suv精品一区二区6|