History

don't fade after physics kick in

SamGondelman committed 10 years ago

Commit ccca6d91 parent 4c663b95 files · +26 −10Browse files

Showing the changes to libraries/render-utils/src/MeshPartPayload.cpp (1 of 5 files). Show all

Unified · Split

libraries/render-utils/src/MeshPartPayload.cpp+16−8
@@ -15,6 +15,7 @@ · 14 unmodified lines
15 15
16#include "DeferredLightingEffect.h"16#include "DeferredLightingEffect.h"
17#include "Model.h"17#include "Model.h"
18#include "EntityItem.h"
18 19
19using namespace render;20using namespace render;
20 21
@@ -517,10 +518,16 @@ void ModelMeshPartPayload::bindTransform(gpu::Batch& batch, const ShapePipeline: · 496 unmodified lines
517}518}
518 519
519void ModelMeshPartPayload::startFade() {520void ModelMeshPartPayload::startFade() {
520 _fadeStartTime = usecTimestampNow();521 bool shouldFade = EntityItem::getEntitiesShouldFadeFunction()();
521 _hasStartedFade = true;522 if (shouldFade) {
522 _prevHasStartedFade = false;523 _fadeStartTime = usecTimestampNow();
523 _hasFinishedFade = false;524 _hasStartedFade = true;
525 _hasFinishedFade = false;
526 } else {
527 _isFading = true;
528 _hasStartedFade = true;
529 _hasFinishedFade = true;
530 }
524}531}
525 532
526void ModelMeshPartPayload::render(RenderArgs* args) const {533void ModelMeshPartPayload::render(RenderArgs* args) const {
@@ -533,10 +540,11 @@ void ModelMeshPartPayload::render(RenderArgs* args) const { · 6 unmodified lines
533 // When an individual mesh parts like this finishes its fade, we will mark the Model as 540 // When an individual mesh parts like this finishes its fade, we will mark the Model as
534 // having render items that need updating541 // having render items that need updating
535 bool nextIsFading = _isFading ? isStillFading() : false;542 bool nextIsFading = _isFading ? isStillFading() : false;
536 if (_isFading != nextIsFading || _prevHasStartedFade != _hasStartedFade) {543 bool startFading = !_isFading && !_hasFinishedFade && _hasStartedFade;
537 _isFading = nextIsFading || _prevHasStartedFade != _hasStartedFade;544 bool endFading = _isFading && !nextIsFading;
538 _hasFinishedFade = _prevHasStartedFade == _hasStartedFade && !_isFading;545 if (startFading || endFading) {
539 _prevHasStartedFade = _hasStartedFade;546 _isFading = startFading;
547 _hasFinishedFade = endFading;
540 _model->setRenderItemsNeedUpdate();548 _model->setRenderItemsNeedUpdate();
541 }549 }
542 550