Showing the changes to libraries/render-utils/src/MeshPartPayload.cpp (1 of 5 files). Show all
Unified · Split
| @@ -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 | ||
| 19 | using namespace render; | 20 | using namespace render; |
| 20 | 21 | ||
| @@ -517,10 +518,16 @@ void ModelMeshPartPayload::bindTransform(gpu::Batch& batch, const ShapePipeline: · 496 unmodified lines | |||
| 517 | } | 518 | } |
| 518 | 519 | ||
| 519 | void ModelMeshPartPayload::startFade() { | 520 | void 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 | ||
| 526 | void ModelMeshPartPayload::render(RenderArgs* args) const { | 533 | void 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 updating | 541 | // 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 | ||