48 lines · 1.3 KB · C++
RawDownload
////  Stream.cpp//  interface/src/gpu////  Created by Sam Gateau on 10/29/2014.//  Copyright 2014 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #include "Stream.h" using namespace gpu; void Stream::Format::evaluateCache() {    _channels.clear();    _elementTotalSize = 0;    for(AttributeMap::iterator it = _attributes.begin(); it != _attributes.end(); it++) {        Attribute& attrib = (*it).second;        Channel& channel = _channels[attrib._channel];        channel._slots.push_back(attrib._slot);        channel._stride = std::max(channel._stride, attrib.getSize() + attrib._offset);        channel._netSize += attrib.getSize();        _elementTotalSize += attrib.getSize();    }} bool Stream::Format::setAttribute(Slot slot, Slot channel, Element element, Offset offset, Frequency frequency) {    _attributes[slot] = Attribute((InputSlot) slot, channel, element, offset, frequency);    evaluateCache();    return true;} BufferStream::BufferStream() :    _buffers(),    _offsets(),    _strides(){} BufferStream::~BufferStream() {} void BufferStream::addBuffer(BufferPointer& buffer, Offset offset, Offset stride) {    _buffers.push_back(buffer);    _offsets.push_back(offset);    _strides.push_back(stride);}