void OsdCudaKernelDispatcher::UpdateEditTable(int tableIndex, const FarTable<unsigned int> &offsets, const FarTable<float> &values, int operation, int primVarOffset, int primVarWidth) { _editTables[tableIndex*2+0].Copy(offsets.GetMemoryUsed(), offsets[0]); _editTables[tableIndex*2+1].Copy(values.GetMemoryUsed(), values[0]); _edits[tableIndex].offsetOffsets.resize(_maxLevel); _edits[tableIndex].valueOffsets.resize(_maxLevel); _edits[tableIndex].numEdits.resize(_maxLevel); for (int i = 0; i < _maxLevel; ++i) { _edits[tableIndex].offsetOffsets[i] = (int)(offsets[i] - offsets[0]); _edits[tableIndex].valueOffsets[i] = (int)(values[i] - values[0]); _edits[tableIndex].numEdits[i] = offsets.GetNumElements(i); } _edits[tableIndex].operation = operation; _edits[tableIndex].primVarOffset = primVarOffset; _edits[tableIndex].primVarWidth = primVarWidth; }
OsdGLSLComputeTable::OsdGLSLComputeTable(const FarTable<float> &farTable) : _buffer(0), _marker(farTable.GetMarkers()) { createBuffer(farTable.GetMemoryUsed(), farTable[0]); }