mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-07 10:42:35 +02:00
Merge pull request #16547 from zfox23/smartboard_v1.4
DEV-2840: Fix z-fighting issues in Smartboard and enable quicker positional iteration in the future
This commit is contained in:
commit
37efdfd3d4
2 changed files with 16 additions and 2 deletions
|
@ -90,7 +90,8 @@ static const EntityTypes::EntityType LOCAL_SCREENSHARE_WEB_ENTITY_TYPE = EntityT
|
|||
static const uint8_t LOCAL_SCREENSHARE_WEB_ENTITY_FPS = 30;
|
||||
// This is going to be a good amount of work to make this work dynamically for any screensize.
|
||||
// V1 will have only hardcoded values.
|
||||
static const glm::vec3 LOCAL_SCREENSHARE_WEB_ENTITY_LOCAL_POSITION(0.0128f, -0.0918f, 0.0711f);
|
||||
// The `z` value here is dynamic.
|
||||
static const glm::vec3 LOCAL_SCREENSHARE_WEB_ENTITY_LOCAL_POSITION(0.0128f, -0.0918f, 0.0f);
|
||||
static const glm::vec3 LOCAL_SCREENSHARE_WEB_ENTITY_DIMENSIONS(3.6790f, 2.0990f, 0.0100f);
|
||||
static const QString LOCAL_SCREENSHARE_WEB_ENTITY_URL =
|
||||
"https://content.highfidelity.com/Experiences/Releases/usefulUtilities/smartBoard/screenshareViewer/screenshareClient.html";
|
||||
|
@ -241,7 +242,9 @@ void ScreenshareScriptingInterface::handleSuccessfulScreenshareInfoGet(QNetworkR
|
|||
EntityItemProperties localScreenshareWebEntityProps;
|
||||
localScreenshareWebEntityProps.setType(LOCAL_SCREENSHARE_WEB_ENTITY_TYPE);
|
||||
localScreenshareWebEntityProps.setMaxFPS(LOCAL_SCREENSHARE_WEB_ENTITY_FPS);
|
||||
localScreenshareWebEntityProps.setLocalPosition(LOCAL_SCREENSHARE_WEB_ENTITY_LOCAL_POSITION);
|
||||
glm::vec3 localPosition(LOCAL_SCREENSHARE_WEB_ENTITY_LOCAL_POSITION);
|
||||
localPosition.z = _localWebEntityZOffset;
|
||||
localScreenshareWebEntityProps.setLocalPosition(localPosition);
|
||||
localScreenshareWebEntityProps.setSourceUrl(LOCAL_SCREENSHARE_WEB_ENTITY_URL);
|
||||
localScreenshareWebEntityProps.setParentID(_smartboardEntityID);
|
||||
localScreenshareWebEntityProps.setDimensions(LOCAL_SCREENSHARE_WEB_ENTITY_DIMENSIONS);
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
class ScreenshareScriptingInterface : public QObject, public Dependency {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(float localWebEntityZOffset MEMBER _localWebEntityZOffset NOTIFY localWebEntityZOffsetChanged)
|
||||
public:
|
||||
ScreenshareScriptingInterface();
|
||||
~ScreenshareScriptingInterface();
|
||||
|
@ -32,6 +33,7 @@ signals:
|
|||
void screenshareError();
|
||||
void screenshareProcessTerminated();
|
||||
void startScreenshareViewer();
|
||||
void localWebEntityZOffsetChanged(const float& newZOffset);
|
||||
|
||||
private slots:
|
||||
void onWebEventReceived(const QUuid& entityID, const QVariant& message);
|
||||
|
@ -63,6 +65,15 @@ private:
|
|||
int _requestScreenshareInfoRetries{ 0 };
|
||||
void requestScreenshareInfo();
|
||||
|
||||
// Empirically determined. The default value here can be changed in Screenshare scripts, which enables faster iteration when we discover
|
||||
// positional issues with various Smartboard entities.
|
||||
// The following four values are closely linked:
|
||||
// 1. The z-offset of whiteboard polylines (`STROKE_FORWARD_OFFSET_M` in `drawSphereClient.js`).
|
||||
// 2. The z-offset of the screenshare local web entity (`LOCAL_WEB_ENTITY_Z_OFFSET` in `smartboardZoneClient.js`).
|
||||
// 3. The z-offset of the screenshare "glass bezel" (`DEFAULT_SMARTBOARD_SCREENSHARE_GLASS_PROPS` in `smartboardZoneClient.js`).
|
||||
// 4. The z-offset of the screenshare "status icon" (handled in the screenshare JSON file).
|
||||
float _localWebEntityZOffset{ 0.0375f };
|
||||
|
||||
std::unique_ptr<QProcess> _screenshareProcess{ nullptr };
|
||||
QUuid _screenshareViewerLocalWebEntityUUID;
|
||||
QString _token{ "" };
|
||||
|
|
Loading…
Reference in a new issue