当前位置: 首页>>代码示例>>C++>>正文


C++ VertexDeclaration::GetElementParam方法代码示例

本文整理汇总了C++中VertexDeclaration::GetElementParam方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexDeclaration::GetElementParam方法的具体用法?C++ VertexDeclaration::GetElementParam怎么用?C++ VertexDeclaration::GetElementParam使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VertexDeclaration的用法示例。


在下文中一共展示了VertexDeclaration::GetElementParam方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: FillVertexBuffer

void RBExport::FillVertexBuffer( BYTE* pVert, const VertexDeclaration& vertexDecl, 
                                 int startVert, int nVert )
{
    int stride = vertexDecl.m_VertexSize;
    //  positions
    BYTE* pV = pVert;
    for (int i = 0; i < nVert; i++)
    {
        *((Vec3*)pV) = m_Vertices[startVert + i]->pos;
        pV += stride;
    }

    //  normals
    int offset = -1;
    int size   = 0;
    if (m_pConfig->m_bExportNormals && 
        vertexDecl.GetElementParam( VertexComponent_Normal, offset, size ))
    {
        pV = pVert + offset;
        for (int i = 0; i < nVert; i++)
        {
            *((Vec3*)pV) = m_Vertices[startVert + i]->normal;
            pV += stride;
        } 
    }

    //  binormals/tangents

    //  vertex colors
    if (m_pConfig->m_bExportVertexColors && 
        vertexDecl.GetElementParam( VertexComponent_Diffuse, offset, size ))
    {
        pV = pVert + offset;
        for (int i = 0; i < nVert; i++)
        {
            *((DWORD*)pV) = m_Vertices[startVert + i]->color;
            pV += stride;
        } 
    }

    //  uv's
    if (vertexDecl.GetElementParam( VertexComponent_TexCoor0, offset, size ))
    {
        pV = pVert + offset;
        for (int i = 0; i < nVert; i++)
        {
            *((Vec2*)pV) = m_Vertices[startVert + i]->uv;
            pV += stride;
        } 
    }

    //  blend weights/indices
    if (vertexDecl.GetElementParam( VertexComponent_Blend, offset, size ))
    {
        pV = pVert + offset;
        for (int i = 0; i < nVert; i++)
        {
            const ExpVertex* curV = m_Vertices[startVert + i];
            *((DWORD*)pV) = curV->GetPackedBoneW();
            *((DWORD*)(pV + 4)) = curV->GetPackedBoneIdx();
            pV += stride;
        } 
    }

} // RBExport::FillVertexBuffer
开发者ID:skopp,项目名称:rush,代码行数:65,代码来源:mesh.cpp


注:本文中的VertexDeclaration::GetElementParam方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。