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