set currentNamedCall during setupNamedCalls

This commit is contained in:
Atlante45 2016-01-18 15:42:41 -08:00
parent 670cfc263b
commit d639a838ad
5 changed files with 10 additions and 10 deletions

View file

@ -378,7 +378,9 @@ void Batch::setupNamedCalls(const std::string& instanceName, NamedBatchData::Fun
instance.function = function;
}
_currentNamedCall = instanceName;
captureDrawCallInfo();
_currentNamedCall.clear();
}
BufferPointer Batch::getNamedBuffer(const std::string& instanceName, uint8_t index) {
@ -411,9 +413,8 @@ const Batch::DrawCallInfoBuffer& Batch::getDrawCallInfoBuffer() const {
}
void Batch::captureDrawCallInfo() {
TransformObject object;
if (_invalidModel) {
TransformObject object;
_currentModel.getMatrix(object._model);
// FIXME - we don't want to be using glm::inverse() here but it fixes the flickering issue we are
@ -423,10 +424,10 @@ void Batch::captureDrawCallInfo() {
object._modelInverse = glm::inverse(object._model);
_objects.push_back(object);
}
// Flags are clean
_invalidModel = false;
// Flag is clean
_invalidModel = false;
}
auto& drawCallInfos = getDrawCallInfoBuffer();
drawCallInfos.push_back((uint16)_objects.size() - 1);

View file

@ -447,7 +447,7 @@ public:
};
using TransformObjects = std::vector<TransformObject>;
bool _invalidModel { false };
bool _invalidModel { true };
Transform _currentModel;
TransformObjects _objects;

View file

@ -412,12 +412,12 @@ void GLBackend::do_runLambda(Batch& batch, size_t paramOffset) {
}
void GLBackend::do_startNamedCall(Batch& batch, size_t paramOffset) {
_currentNamedCall = batch._names.get(batch._params[paramOffset]._uint);
batch._currentNamedCall = batch._names.get(batch._params[paramOffset]._uint);
_currentDraw = -1;
}
void GLBackend::do_stopNamedCall(Batch& batch, size_t paramOffset) {
_currentNamedCall.clear();
batch._currentNamedCall.clear();
}
void GLBackend::resetStages() {

View file

@ -482,7 +482,6 @@ protected:
void do_pushProfileRange(Batch& batch, size_t paramOffset);
void do_popProfileRange(Batch& batch, size_t paramOffset);
std::string _currentNamedCall;
int _currentDraw { -1 };
typedef void (GLBackend::*CommandCall)(Batch&, size_t);

View file

@ -168,7 +168,7 @@ void GLBackend::updateTransform(const Batch& batch) {
_transform.update(_commandIndex, _stereo);
auto& drawCallInfoBuffer = batch.getDrawCallInfoBuffer();
if (_currentNamedCall.empty()) {
if (batch._currentNamedCall.empty()) {
auto& drawCallInfo = drawCallInfoBuffer[_currentDraw];
glVertexAttribI2i(gpu::Stream::DRAW_CALL_INFO, (GLint)drawCallInfo.index, (GLint)drawCallInfo.unused);
} else {