mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 19:16:56 +02:00
Add more transition icon debugging
This commit is contained in:
parent
7a62ce21f6
commit
5587193640
2 changed files with 34 additions and 4 deletions
|
@ -17,6 +17,8 @@
|
||||||
#include <PerfStat.h>
|
#include <PerfStat.h>
|
||||||
#include <ViewFrustum.h>
|
#include <ViewFrustum.h>
|
||||||
|
|
||||||
|
#include "TransitionStage.h"
|
||||||
|
|
||||||
#include <gpu/Context.h>
|
#include <gpu/Context.h>
|
||||||
|
|
||||||
#include <shaders/Shaders.h>
|
#include <shaders/Shaders.h>
|
||||||
|
@ -142,11 +144,39 @@ void DrawStatus::run(const RenderContextPointer& renderContext, const Input& inp
|
||||||
auto& value = (vec4Num == 0 ? itemStatus[nbItems].first : itemStatus[nbItems].second);
|
auto& value = (vec4Num == 0 ? itemStatus[nbItems].first : itemStatus[nbItems].second);
|
||||||
|
|
||||||
Item::Status::Value status;
|
Item::Status::Value status;
|
||||||
status.setColor(Item::Status::Value::CYAN);
|
auto transitionID = itemScene.getTransitionId();
|
||||||
status.setIcon((unsigned char)Item::Status::Icon::SIMULATION_OWNER);
|
if (transitionID != INVALID_INDEX) {
|
||||||
if (itemScene.getTransitionId() != INVALID_INDEX) {
|
|
||||||
// We have a transition. Show this icon.
|
// We have a transition. Show this icon.
|
||||||
status.setScale(1.0f);
|
status.setScale(1.0f);
|
||||||
|
// Is this a valid transition ID according to FadeJob?
|
||||||
|
auto& transitionStage = scene->getStage<TransitionStage>(TransitionStage::getName());
|
||||||
|
if (transitionStage) {
|
||||||
|
if (transitionStage->isTransitionUsed(transitionID)) {
|
||||||
|
// Valid, active transition
|
||||||
|
status.setColor(Item::Status::Value::CYAN);
|
||||||
|
} else {
|
||||||
|
// Render item has a defined transition ID, but it's unallocated and isn't being processed
|
||||||
|
status.setColor(Item::Status::Value::RED);
|
||||||
|
}
|
||||||
|
// Set icon based on transition type
|
||||||
|
auto& transition = transitionStage->getTransition(transitionID);
|
||||||
|
switch (transition.eventType) {
|
||||||
|
case Transition::Type::USER_ENTER_DOMAIN:
|
||||||
|
case Transition::ELEMENT_ENTER_DOMAIN:
|
||||||
|
status.setIcon((unsigned char)Item::Status::Icon::PACKET_RECEIVED);
|
||||||
|
break;
|
||||||
|
case Transition::Type::USER_LEAVE_DOMAIN:
|
||||||
|
case Transition::ELEMENT_LEAVE_DOMAIN:
|
||||||
|
status.setIcon((unsigned char)Item::Status::Icon::PACKET_SENT);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
status.setIcon((unsigned char)Item::Status::Icon::HAS_ACTIONS);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No way to determine transition
|
||||||
|
status.setScale(0.0f);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
status.setScale(0.0f);
|
status.setScale(0.0f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ namespace render {
|
||||||
|
|
||||||
static bool isIndexInvalid(Index index) { return index == INVALID_INDEX; }
|
static bool isIndexInvalid(Index index) { return index == INVALID_INDEX; }
|
||||||
|
|
||||||
bool checkTransitionId(Index index) const { return _transitions.checkIndex(index); }
|
bool isTransitionUsed(Index index) const { return _transitions.checkIndex(index) && !_transitions.isElementFreed(index); }
|
||||||
|
|
||||||
const Transition& getTransition(Index TransitionId) const { return _transitions.get(TransitionId); }
|
const Transition& getTransition(Index TransitionId) const { return _transitions.get(TransitionId); }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue