//---------------------------------------------------------------------- void FLOCK::update() { #ifdef CPU updateCPU(); #endif #ifdef GPU updateGPU(); #endif }
bool UniformBlock::updateGPU(Renderer* r, int elemIndex, const UniformBlock& srcBlock) { int len = srcBlock.getTotalSize(); int nelems = srcBlock.getTotalSize() / mElemSize; if ((elemIndex >= 0) && (elemIndex + nelems <= mMaxElems)) { const char* src = (const char*) srcBlock.getData(); int start = mElemSize * elemIndex; mIsDirty = true; memcpy(mUniformData + start, src, len); updateGPU(r, start, len); elemIndex += nelems; if (elemIndex >= mNumElems) { setNumElems(elemIndex); } return true; } LOGE("UniformBlock::updateGPU ERROR %d out of range, maximum is %d", elemIndex, mMaxElems); return false; }