#include "D3DHelperFuncs.h"
char *SurfFormatToString(D3DFORMAT srcformat)
{
switch(srcformat) {
case D3DFMT_UNKNOWN: return("D3DFMT_UNKNOWN");
case D3DFMT_R8G8B8: return("D3DFMT_R8G8B8");
case D3DFMT_A8R8G8B8: return("D3DFMT_A8R8G8B8");
case D3DFMT_X8R8G8B8: return("D3DFMT_X8R8G8B8");
case D3DFMT_R5G6B5: return("D3DFMT_R5G6B5");
case D3DFMT_X1R5G5B5: return("D3DFMT_X1R5G5B5");
case D3DFMT_A1R5G5B5: return("D3DFMT_A1R5G5B5");
case D3DFMT_A4R4G4B4: return("D3DFMT_A4R4G4B4");
case D3DFMT_R3G3B2: return("D3DFMT_R3G3B2");
case D3DFMT_A8: return("D3DFMT_A8");
case D3DFMT_A8R3G3B2: return("D3DFMT_A8R3G3B2");
case D3DFMT_X4R4G4B4: return("D3DFMT_X4R4G4B4");
case D3DFMT_A8P8: return("D3DFMT_A8P8");
case D3DFMT_P8: return("D3DFMT_P8");
case D3DFMT_L8: return("D3DFMT_L8");
case D3DFMT_A8L8: return("D3DFMT_A8L8");
case D3DFMT_A4L4: return("D3DFMT_A4L4");
case D3DFMT_V8U8: return("D3DFMT_V8U8");
case D3DFMT_L6V5U5: return("D3DFMT_L6V5U5");
case D3DFMT_X8L8V8U8: return("D3DFMT_X8L8V8U8");
case D3DFMT_Q8W8V8U8: return("D3DFMT_Q8W8V8U8");
case D3DFMT_V16U16: return("D3DFMT_V16U16");
// case D3DFMT_W11V11U10: return("D3DFMT_W11V11U10");
case D3DFMT_UYVY: return("D3DFMT_UYVY");
case D3DFMT_YUY2: return("D3DFMT_YUY2");
case D3DFMT_DXT1: return("D3DFMT_DXT1");
case D3DFMT_DXT2: return("D3DFMT_DXT2");
case D3DFMT_DXT3: return("D3DFMT_DXT3");
case D3DFMT_DXT4: return("D3DFMT_DXT4");
case D3DFMT_DXT5: return("D3DFMT_DXT5");
case D3DFMT_D16_LOCKABLE: return("D3DFMT_D16_LOCKABLE");
case D3DFMT_D32: return("D3DFMT_D32");
case D3DFMT_D15S1: return("D3DFMT_D15S1");
case D3DFMT_D24S8: return("D3DFMT_D24S8");
case D3DFMT_D16: return("D3DFMT_D16");
case D3DFMT_D24X8: return("D3DFMT_D24X8");
case D3DFMT_D24X4S4: return("D3DFMT_D24X4S4");
case D3DFMT_VERTEXDATA: return("D3DFMT_VERTEXDATA");
case D3DFMT_INDEX16: return("D3DFMT_INDEX16");
case D3DFMT_INDEX32: return("D3DFMT_INDEX32");
default: return("**UNKNOWN**");
};
return("");
}
HRESULT CreateQuad(LPDIRECT3DVERTEXBUFFER9 *pVB, D3DPOOL pool, float fSize,
DWORD dwColor, LPDIRECT3DDEVICE9 pDev,
float fTexTileX, float fTexTileY)
{
HRESULT hr;
if(FAILED(hr = pDev->CreateVertexBuffer(6*sizeof(VERTEX_XYZ_DIFFUSE_TEX1),
0, D3DFVF_XYZ_DIFFUSE_TEX1, pool, pVB,NULL)))
return hr;
VERTEX_XYZ_DIFFUSE_TEX1 *pVertices;
float fSizeDiv2 = fSize/2;
if( FAILED( hr = (*pVB)->Lock( 0, 6*sizeof(VERTEX_XYZ_DIFFUSE_TEX1), (VOID**)&pVertices, 0 ) ) )
return hr;
// first triangle
pVertices[0].position = D3DXVECTOR3(-fSizeDiv2, fSizeDiv2, 0.0f);
pVertices[0].color = dwColor;
pVertices[0].tu = 0.0f;
pVertices[0].tv = 0.0f;
pVertices[1].position = D3DXVECTOR3(fSizeDiv2, fSizeDiv2, 0.0f);
pVertices[1].color = dwColor;
pVertices[1].tu = fTexTileX;
pVertices[1].tv = 0.0f;
pVertices[2].position = D3DXVECTOR3(fSizeDiv2, -fSizeDiv2, 0.0f);
pVertices[2].color = dwColor;
pVertices[2].tu = fTexTileX;
pVertices[2].tv = fTexTileY;
// second triangle
pVertices[3].position = D3DXVECTOR3(-fSizeDiv2, fSizeDiv2, 0.0f);
pVertices[3].color = dwColor;
pVertices[3].tu = 0.0f;
pVertices[3].tv = 0.0f;
pVertices[4].position = D3DXVECTOR3(fSizeDiv2, -fSizeDiv2, 0.0f);
pVertices[4].color = dwColor;
pVertices[4].tu = fTexTileX;
pVertices[4].tv = fTexTileY;
pVertices[5].position = D3DXVECTOR3(-fSizeDiv2, -fSizeDiv2, 0.0f);
pVertices[5].color = dwColor;
pVertices[5].tu = 0.0f;
pVertices[5].tv = fTexTileY;
if( FAILED( hr = (*pVB)->Unlock() ) ) return hr;
return(S_OK);
}
HRESULT CreateVertexGrid(LPDIRECT3DVERTEXBUFFER9 *pVB, LPDIRECT3DINDEXBUFFER9 *pIB,
D3DPOOL pool, float fTotalSize, DWORD dwColor,
int iNumVerticesX, int iNumVerticesY, LPDIRECT3DDEVICE9 pDev)
{
HRESULT hr;
// create and fill vertex buffer
{
if(FAILED(hr = pDev->CreateVertexBuffer(iNumVerticesX*iNumVerticesY*sizeof(VERTEX_XYZ_DIFFUSE_TEX1),
0, D3DFVF_XYZ_DIFFUSE_TEX1, pool, pVB,NULL)))
return hr;
VERTEX_XYZ_DIFFUSE_TEX1 *pVertices;
float fSizeDiv2 = fTotalSize/2;
if( FAILED( hr = (*pVB)->Lock( 0, iNumVerticesX*iNumVerticesY*sizeof(VERTEX_XYZ_DIFFUSE_TEX1), (VOID**)&pVertices, 0 ) ) )
return hr;
for (int x=0; x < iNumVerticesX; x++) {
for (int y=0; y < iNumVerticesY; y++) {
pVertices[(y*iNumVerticesX)+x].position = D3DXVECTOR3(
(iNumVerticesX > 1) ? (((float)x/(float)(iNumVerticesX-1))*fTotalSize)-fSizeDiv2 : 0,
(iNumVerticesY > 1) ? (((float)(iNumVerticesY-1-y)/(float)(iNumVerticesY-1))*fTotalSize)-fSizeDiv2 : 0,
0.0f);
pVertices[(y*iNumVerticesX)+x].color = dwColor;
pVertices[(y*iNumVerticesX)+x].tu = (float)x/(float)(iNumVerticesX-1);
pVertices[(y*iNumVerticesX)+x].tv = (float)y/(float)(iNumVerticesY-1);
}
}
}
// create index buffer
{
if(FAILED(hr = pDev->CreateIndexBuffer(
iNumVerticesX*iNumVerticesY*2*3*2, // *2 (tris) *3 (indicies per tri) * 2 (bytes per index)
D3DUSAGE_WRITEONLY, D3DFMT_INDEX16,
D3DPOOL_MANAGED, pIB,NULL)))
return hr;
// lock and fill index buffer
WORD *pIndices;
if(FAILED(hr = (*pIB)->Lock(0, iNumVerticesX*iNumVerticesY*2*3*2, (VOID**)&pIndices,
0)))
return hr;
WORD *pIndex = pIndices;
for (int x=0; x < iNumVerticesX-1; x++) {
for (int y=0; y < iNumVerticesY-1; y++) {
// first triangle
*(pIndex++) = ((y)*iNumVerticesX)+x;
*(pIndex++) = ((y)*iNumVerticesX)+x+1;
*(pIndex++) = ((y+1)*iNumVerticesX)+x+1;
// second triangle
*(pIndex++) = ((y)*iNumVerticesX)+x;
*(pIndex++) = ((y+1)*iNumVerticesX)+x+1;
*(pIndex++) = ((y+1)*iNumVerticesX)+x;
}
}
if(FAILED(hr = (*pIB)->Unlock())) return hr;
if(FAILED(hr = (*pVB)->Unlock())) return hr;
}
return(S_OK);
}
HRESULT CreateVertexFrame(LPDIRECT3DVERTEXBUFFER9 *pVB, LPDIRECT3DINDEXBUFFER9 *pIB,
D3DPOOL pool, float fTotalSize, DWORD dwColor,
int iNumVerticesX, int iNumVerticesY, LPDIRECT3DDEVICE9 pDev)
{
HRESULT hr;
// create and fill vertex buffer
{
if(FAILED(hr = pDev->CreateVertexBuffer((((iNumVerticesX-1)*2)+((iNumVerticesY-1)*2)+2)*sizeof(VERTEX_XYZ_DIFFUSE_TEX1),
0, D3DFVF_XYZ_DIFFUSE_TEX1, pool, pVB,NULL)))
return hr;
VERTEX_XYZ_DIFFUSE_TEX1 *pVertices;
float fSizeDiv2 = fTotalSize/2;
if( FAILED( hr = (*pVB)->Lock( 0, (((iNumVerticesX-1)*2)+((iNumVerticesY-1)*2)+1)*sizeof(VERTEX_XYZ_DIFFUSE_TEX1), (VOID**)&pVertices, 0 ) ) )
return hr;
// top row
for (int x=0; x < iNumVerticesX; x++) {
pVertices->position = D3DXVECTOR3(
(((float)x/(float)(iNumVerticesX-1)
没有合适的资源?快使用搜索试试~ 我知道了~
changjing.rar_changjing_changjingon_effects d3d_visual c
共62个文件
h:13个
cpp:11个
dds:9个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 171 浏览量
2022-09-22
19:20:04
上传
评论
收藏 9.22MB RAR 举报
温馨提示
基于D3D9编写的一个非常漂亮的场景,包括源代码。
资源推荐
资源详情
资源评论
收起资源包目录
changjing.rar (62个子文件)
directx9场景
snow
snow.plg 3KB
AnimSequence.cpp 2KB
CommonFuncs.cpp 4KB
LensFlare.h 2KB
skybox.h 5KB
snow1.pyc 403B
snow.vcproj 10KB
camera.h 900B
LensFlare.cpp 8KB
drawMesh.cpp 4KB
SnowSRC
snowman.x 279KB
snowball1.tga 64KB
terrainRock.bmp 768KB
terrain1.bmp 768KB
snowflake.dds 64KB
CloudyHillsCubemap.dds 2MB
LensFlare_02.dds 4KB
snow.tga 48KB
snow1.tga 48KB
And_You_And_I.mp3 2.07MB
aster1.x 5KB
carrot.dds 3KB
LensFlare_01.dds 4KB
LensFlare_03.dds 4KB
terrain.bmp 768KB
tree_0.x 799KB
white.dds 3KB
snowAccumulation_tree.x 3.83MB
snowAccumulation_terrain.x 843KB
bark.tga 24KB
LensFlare_Halo.dds 256KB
snowball2.tga 64KB
desert.bmp 768KB
black.dds 3KB
pSystem.h 3KB
Timer.h 2KB
snow.ncb 8.28MB
PlayMp3.h 471B
pSystem.cpp 6KB
snow.opt 54KB
snow.cpp 10KB
AnimSequence.h 1KB
camera.cpp 3KB
define.h 400B
PlayMp3.cpp 3KB
drawMesh.h 578B
snow.suo 11KB
D3DHelperFuncs.h 5KB
MinMax.h 395B
snow.sln 872B
python24.dll 1.78MB
D3DHelperFuncs.cpp 17KB
snow.dsw 533B
d3dUtility.cpp 9KB
Timer.cpp 63B
d3dUtility.h 3KB
CommonFuncs.h 2KB
snow.exe 2.03MB
snow.dsp 6KB
snow.vcproj.A0751B3E39094BA.Administrator.user 1KB
snow1.py 137B
www.pudn.com.txt 218B
共 62 条
- 1
资源评论
邓凌佳
- 粉丝: 65
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功