本文整理汇总了C++中ref_ptr::dataType方法的典型用法代码示例。如果您正苦于以下问题:C++ ref_ptr::dataType方法的具体用法?C++ ref_ptr::dataType怎么用?C++ ref_ptr::dataType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ref_ptr
的用法示例。
在下文中一共展示了ref_ptr::dataType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: create
ref_ptr<ShaderInput> ShaderInput::copy(const ref_ptr<ShaderInput> &in, GLboolean copyData)
{
ref_ptr<ShaderInput> cp = create(in->name(), in->dataType(), in->valsPerElement());
cp->stride_ = in->stride_;
cp->offset_ = in->offset_;
cp->inputSize_ = in->inputSize_;
cp->elementSize_ = in->elementSize_;
cp->elementCount_ = in->elementCount_;
cp->numVertices_ = in->numVertices_;
cp->numInstances_ = in->numInstances_;
cp->divisor_ = in->divisor_;
cp->buffer_ = 0;
cp->bufferStamp_ = 0;
cp->normalize_ = in->normalize_;
cp->isVertexAttribute_ = in->isVertexAttribute_;
cp->isConstant_ = in->isConstant_;
cp->transpose_ = in->transpose_;
cp->stamp_ = in->stamp_;
cp->forceArray_ = in->forceArray_;
cp->data_ = new byte[cp->inputSize_];
if(copyData && in->data_!=NULL) {
std::memcpy(cp->data_, in->data_, cp->inputSize_);
}
// make data_ stack root
cp->dataStack_.push(cp->data_);
return cp;
}
示例2: addFeedback
void FeedbackState::addFeedback(const ref_ptr<ShaderInput> &in)
{
// remove if already added
if(feedbackAttributeMap_.count(in->name())>0)
{ removeFeedback(in.get()); }
GLuint feedbackCount = (feedbackCount_==0 ? in->numVertices() : feedbackCount_);
feedbackCount_ = feedbackCount;
// create feedback attribute
ref_ptr<ShaderInput> feedback = ShaderInput::create(
in->name(), in->dataType(), in->valsPerElement());
feedback->set_inputSize(feedbackCount * feedback->elementSize());
feedback->set_numVertices(feedbackCount);
feedbackAttributes_.push_front(feedback);
feedbackAttributeMap_[in->name()] = feedbackAttributes_.begin();
requiredBufferSize_ += feedback->inputSize();
}