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


C++ vesSharedPtr::primitiveType方法代码示例

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


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

示例1: drawPrimitive

void vesMapper::drawPrimitive(const vesRenderState &renderState,
                              vesSharedPtr<vesPrimitive> primitive)
{
  // Send the primitive type information out
  renderState.m_material->bindRenderData(
    renderState, vesRenderData(primitive->primitiveType(), this->pointSize(), this->lineWidth()));

  glDrawElements(primitive->primitiveType(), primitive->numberOfIndices(),
                 primitive->indicesValueType(),  (void*)0);
}
开发者ID:FredChamp,项目名称:simple-VES,代码行数:10,代码来源:vesMapper.cpp

示例2: drawTriangles

void vesMapper::drawTriangles(const vesRenderState &renderState,
                              vesSharedPtr<vesPrimitive> triangles)
{
  assert(this->m_geometryData);

  const unsigned int numberOfIndices
    = triangles->numberOfIndices();

  unsigned int drawnIndices = 0;

  while (drawnIndices < numberOfIndices) {
    int numberOfIndicesToDraw = numberOfIndices - drawnIndices;

    if (numberOfIndicesToDraw > this->m_maximumTriangleIndicesPerDraw) {
      numberOfIndicesToDraw = this->m_maximumTriangleIndicesPerDraw;
    }

    uintptr_t offset = 0;

    // Send the primitive type information out
    renderState.m_material->bindRenderData(
      renderState, vesRenderData(triangles->primitiveType(), this->pointSize(), this->lineWidth()));

    if (!this->m_enableWireframe) {
      offset = triangles->sizeOfDataType() * drawnIndices;

      glDrawElements(triangles->primitiveType(), numberOfIndicesToDraw,
                     triangles->indicesValueType(), (void*)offset);
    }
    else {
      for(int i = 0; i < numberOfIndicesToDraw; i += 3)
      {
          offset = triangles->sizeOfDataType() * i + triangles->sizeOfDataType()
                   * drawnIndices;
          glDrawElements(GL_LINE_LOOP, 3,
                         triangles->indicesValueType(), (void*)offset);
      }
    }

    drawnIndices += numberOfIndicesToDraw;
  }
}
开发者ID:FredChamp,项目名称:simple-VES,代码行数:42,代码来源:vesMapper.cpp

示例3: drawPoints

void vesMapper::drawPoints(const vesRenderState &renderState,
                           vesSharedPtr<vesPrimitive> points)
{
  assert(this->m_geometryData);

  if(points->size())
  {
    // Draw using indices
    this->drawPrimitive(renderState, points);
  }
  else
  {
    vesSharedPtr<vesSourceData> data =
        m_geometryData->sourceData(vesVertexAttributeKeys::Position);
    // Send the primitive type information out
    renderState.m_material->bindRenderData(
      renderState, vesRenderData(vesPrimitiveRenderType::Points, this->pointSize(), this->lineWidth()));
    glDrawArrays(points->primitiveType(), 0, data->sizeOfArray());
  }
}
开发者ID:FredChamp,项目名称:simple-VES,代码行数:20,代码来源:vesMapper.cpp


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