附加顶点延迟

Appending a vertex delaration

本文关键字:延迟 顶点      更新时间:2023-10-16

我一直在将2010 sdk中的uvatlas项目从控制台应用程序转换为windows应用程序。它落在了追加顶点声明函数上,所以我试图创建一个函数,将顶点声明追加到顶点声明数组(由网格返回)中,但我的代码似乎只返回一个元素。

D3DVERTEXELEMENT9* appenddecl( D3DVERTEXELEMENT9 decl_add,
                           D3DVERTEXELEMENT9* source, 
                           D3DVERTEXELEMENT9* decl_out,
                           UINT num_decl )

WORD i = 0;
UINT last_offset = 0;
BYTE last_type = 0;
UINT n_offset = 0;

for( i = 0; i < num_decl; i++ )
{
    decl_out->Method = source->Method;
    decl_out->Offset = source->Offset;
    decl_out->Stream = source->Stream;
    decl_out->Type = source->Type;
    decl_out->Usage = source->Usage;
    decl_out->UsageIndex = source->UsageIndex;
    last_offset = decl_out->Offset;
    last_type = decl_out->Type;
    *decl_out++;
    *source++;

}

switch(last_type)
{
    case 0:
     n_offset   = 4;
     break;
     case 1:
      n_offset     = 8;
      break;
     case 2:
      n_offset    = 12;
      break;
      case 3:
      n_offset     = 16;
     break;
    case 4:
     n_offset   = 4;
     break;
  default:
      break;
}

    decl_out->Method = decl_add.Method;             
    decl_out->Offset =  last_offset + n_offset; 
    decl_out->Stream = 0;
    decl_out->Type = decl_add.Type;
    decl_out->Usage = decl_add.Usage;
    decl_out->UsageIndex = 1;

返回decl_out;

}`

有什么想法吗?

谢谢…`

这是第一关,嘿,成功!

打开到应用程序