void Hd_TriangleIndexBuilderComputation::AddBufferSpecs( HdBufferSpecVector *specs) const { specs->push_back(HdBufferSpec(HdTokens->indices, GL_INT, 3)); // triangles don't support ptex indexing (at least for now). specs->push_back(HdBufferSpec(HdTokens->primitiveParam, GL_INT, 1)); }
void Hd_SmoothNormalsComputationGPU::AddBufferSpecs(HdBufferSpecVector *specs) const { if (_dstDataType == GL_INT_2_10_10_10_REV) { specs->push_back(HdBufferSpec(_dstName, _dstDataType, 1)); } else { specs->push_back(HdBufferSpec(_dstName, _dstDataType, 3)); } }
void Hd_SmoothNormalsComputation::AddBufferSpecs(HdBufferSpecVector *specs) const { // the datatype of normals is same as points (float or double). specs->push_back(HdBufferSpec(_dstName, GetGLComponentDataType(), (_packed ? 1 : 3))); }
/*virtual*/ void Hd_OsdIndexComputation::AddBufferSpecs(HdBufferSpecVector *specs) const { if (Hd_Subdivision::RefinesToTriangles(_topology->GetScheme())) { // triangles (loop) specs->push_back(HdBufferSpec(HdTokens->indices, GL_INT, 3)); specs->push_back(HdBufferSpec(HdTokens->primitiveParam, GL_INT, 3)); } else if (_topology->RefinesToBSplinePatches()) { // bi-cubic bspline patches specs->push_back(HdBufferSpec(HdTokens->indices, GL_INT, 16)); // 3+1 (includes sharpness) specs->push_back(HdBufferSpec(HdTokens->primitiveParam, GL_INT, 4)); } else { // quads (catmark, bilinear) specs->push_back(HdBufferSpec(HdTokens->indices, GL_INT, 4)); specs->push_back(HdBufferSpec(HdTokens->primitiveParam, GL_INT, 3)); } }
void Hd_AdjacencyBuilderForGPUComputation::AddBufferSpecs( HdBufferSpecVector *specs) const { specs->push_back(HdBufferSpec(HdTokens->adjacency, GL_INT, 1)); }
void Hd_SmoothNormalsComputationGPU::AddBufferSpecs(HdBufferSpecVector *specs) const { specs->push_back(HdBufferSpec(_dstName, _dstDataType, 3)); }
virtual void AddBufferSpecs(HdBufferSpecVector *specs) const { specs->push_back(HdBufferSpec(_name, _type, 1)); }