mirror of
https://github.com/overte-org/overte.git
synced 2025-04-11 21:52:58 +02:00
Re review adjustments
This commit is contained in:
parent
513acc529e
commit
386c0f9ab2
15 changed files with 91 additions and 101 deletions
|
@ -1126,6 +1126,14 @@ void MyAvatar::setEnableDebugDrawIKChains(bool isEnabled) {
|
|||
_enableDebugDrawIKChains = isEnabled;
|
||||
}
|
||||
|
||||
void MyAvatar::setEnableMeshVisible(bool isEnabled) {
|
||||
return Avatar::setEnableMeshVisible(isEnabled);
|
||||
}
|
||||
|
||||
bool MyAvatar::getEnableMeshVisible() const {
|
||||
return Avatar::getEnableMeshVisible();
|
||||
}
|
||||
|
||||
void MyAvatar::setEnableInverseKinematics(bool isEnabled) {
|
||||
_skeletonModel->getRig().setEnableInverseKinematics(isEnabled);
|
||||
}
|
||||
|
@ -1475,7 +1483,7 @@ void MyAvatar::setSkeletonModelURL(const QUrl& skeletonModelURL) {
|
|||
_skeletonModelChangeCount++;
|
||||
int skeletonModelChangeCount = _skeletonModelChangeCount;
|
||||
Avatar::setSkeletonModelURL(skeletonModelURL);
|
||||
_skeletonModel->setTagMask(Render::TAG_NONE);
|
||||
_skeletonModel->setTagMask(render::hifi::TAG_NONE);
|
||||
_skeletonModel->setGroupCulled(true);
|
||||
_skeletonModel->setVisibleInScene(true, qApp->getMain3DScene());
|
||||
|
||||
|
@ -2053,7 +2061,7 @@ void MyAvatar::preDisplaySide(const RenderArgs* renderArgs) {
|
|||
_attachmentData[i].jointName.compare("RightEye", Qt::CaseInsensitive) == 0 ||
|
||||
_attachmentData[i].jointName.compare("HeadTop_End", Qt::CaseInsensitive) == 0 ||
|
||||
_attachmentData[i].jointName.compare("Face", Qt::CaseInsensitive) == 0) {
|
||||
uint8_t modelRenderTagBits = shouldDrawHead ? Render::TAG_ALL_VIEWS : Render::TAG_SECONDARY_VIEW;
|
||||
uint8_t modelRenderTagBits = shouldDrawHead ? render::hifi::TAG_ALL_VIEWS : render::hifi::TAG_SECONDARY_VIEW;
|
||||
|
||||
_attachmentModels[i]->setTagMask(modelRenderTagBits);
|
||||
_attachmentModels[i]->setGroupCulled(false);
|
||||
|
|
|
@ -1159,6 +1159,7 @@ public slots:
|
|||
* @function MyAvatar.getEnableMeshVisible
|
||||
* @returns {boolean} <code>true</code> if your avatar's mesh is visible, otherwise <code>false</code>.
|
||||
*/
|
||||
bool getEnableMeshVisible() const override;
|
||||
|
||||
/**jsdoc
|
||||
* Set whether or not your avatar mesh is visible.
|
||||
|
@ -1170,6 +1171,7 @@ public slots:
|
|||
* MyAvatar.setEnableMeshVisible(true);
|
||||
* }, 10000);
|
||||
*/
|
||||
virtual void setEnableMeshVisible(bool isEnabled) override;
|
||||
|
||||
/**jsdoc
|
||||
* @function MyAvatar.setEnableInverseKinematics
|
||||
|
|
|
@ -103,8 +103,8 @@ void ModelOverlay::update(float deltatime) {
|
|||
if (_visibleDirty) {
|
||||
_visibleDirty = false;
|
||||
// don't show overlays in mirrors or spectator-cam unless _isVisibleInSecondaryCamera is true
|
||||
uint8_t modelRenderTagMak = (_isVisibleInSecondaryCamera ? Render::TAG_ALL_VIEWS : Render::TAG_MAIN_VIEW);
|
||||
_model->setTagMask(modelRenderTagMak, scene);
|
||||
uint8_t modelRenderTagMask = (_isVisibleInSecondaryCamera ? render::hifi::TAG_ALL_VIEWS : render::hifi::TAG_MAIN_VIEW);
|
||||
_model->setTagMask(modelRenderTagMask, scene);
|
||||
_model->setVisibleInScene(getVisible(), scene);
|
||||
}
|
||||
if (_drawInFrontDirty) {
|
||||
|
|
|
@ -36,9 +36,9 @@ namespace render {
|
|||
if (overlay->is3D()) {
|
||||
auto overlay3D = std::static_pointer_cast<Base3DOverlay>(overlay);
|
||||
if (overlay3D->getDrawInFront()) {
|
||||
builder.withLayer(Render::LAYER_3D_FRONT);
|
||||
builder.withLayer(render::hifi::LAYER_3D_FRONT);
|
||||
} else if (overlay3D->getDrawHUDLayer()) {
|
||||
builder.withLayer(Render::LAYER_3D_HUD);
|
||||
builder.withLayer(render::hifi::LAYER_3D_HUD);
|
||||
}
|
||||
|
||||
if (overlay->isTransparent()) {
|
||||
|
@ -46,7 +46,7 @@ namespace render {
|
|||
}
|
||||
} else {
|
||||
builder.withViewSpace();
|
||||
builder.withLayer(Render::LAYER_2D);
|
||||
builder.withLayer(render::hifi::LAYER_2D);
|
||||
}
|
||||
|
||||
if (!overlay->getVisible()) {
|
||||
|
@ -54,10 +54,10 @@ namespace render {
|
|||
}
|
||||
|
||||
// always visible in primary view. if isVisibleInSecondaryCamera, also draw in secondary view
|
||||
uint32_t viewTaskBits = Render::TAG_MAIN_VIEW |
|
||||
(overlay->getIsVisibleInSecondaryCamera() ? Render::TAG_SECONDARY_VIEW : Render::TAG_NONE);
|
||||
uint32_t viewTagBits = render::hifi::TAG_MAIN_VIEW |
|
||||
(overlay->getIsVisibleInSecondaryCamera() ? render::hifi::TAG_SECONDARY_VIEW : render::hifi::TAG_NONE);
|
||||
|
||||
builder.withTagBits(viewTaskBits);
|
||||
builder.withTagBits(viewTagBits);
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ const glm::vec3 HAND_TO_PALM_OFFSET(0.0f, 0.12f, 0.08f);
|
|||
|
||||
namespace render {
|
||||
template <> const ItemKey payloadGetKey(const AvatarSharedPointer& avatar) {
|
||||
ItemKey::Builder keyBuilder = ItemKey::Builder::opaqueShape().withTypeMeta().withTagBits(Render::TAG_ALL_VIEWS).withMetaCullGroup();
|
||||
ItemKey::Builder keyBuilder = ItemKey::Builder::opaqueShape().withTypeMeta().withTagBits(render::hifi::TAG_ALL_VIEWS).withMetaCullGroup();
|
||||
auto avatarPtr = static_pointer_cast<Avatar>(avatar);
|
||||
if (!avatarPtr->getEnableMeshVisible()) {
|
||||
keyBuilder.withInvisible();
|
||||
|
@ -587,7 +587,7 @@ void Avatar::addToScene(AvatarSharedPointer self, const render::ScenePointer& sc
|
|||
_renderBound = getBounds();
|
||||
transaction.resetItem(_renderItemID, avatarPayloadPointer);
|
||||
_skeletonModel->addToScene(scene, transaction);
|
||||
_skeletonModel->setTagMask(Render::TAG_ALL_VIEWS);
|
||||
_skeletonModel->setTagMask(render::hifi::TAG_ALL_VIEWS);
|
||||
_skeletonModel->setGroupCulled(true);
|
||||
_skeletonModel->setCanCastShadow(true);
|
||||
_skeletonModel->setVisibleInScene(_isMeshVisible, scene);
|
||||
|
@ -595,7 +595,7 @@ void Avatar::addToScene(AvatarSharedPointer self, const render::ScenePointer& sc
|
|||
processMaterials();
|
||||
for (auto& attachmentModel : _attachmentModels) {
|
||||
attachmentModel->addToScene(scene, transaction);
|
||||
attachmentModel->setTagMask(Render::TAG_ALL_VIEWS);
|
||||
attachmentModel->setTagMask(render::hifi::TAG_ALL_VIEWS);
|
||||
attachmentModel->setGroupCulled(false);
|
||||
attachmentModel->setCanCastShadow(true);
|
||||
attachmentModel->setVisibleInScene(_isMeshVisible, scene);
|
||||
|
@ -811,7 +811,7 @@ void Avatar::fixupModelsInScene(const render::ScenePointer& scene) {
|
|||
_skeletonModel->removeFromScene(scene, transaction);
|
||||
_skeletonModel->addToScene(scene, transaction);
|
||||
|
||||
_skeletonModel->setTagMask(Render::TAG_ALL_VIEWS);
|
||||
_skeletonModel->setTagMask(render::hifi::TAG_ALL_VIEWS);
|
||||
_skeletonModel->setGroupCulled(true);
|
||||
_skeletonModel->setCanCastShadow(true);
|
||||
_skeletonModel->setVisibleInScene(_isMeshVisible, scene);
|
||||
|
@ -825,7 +825,7 @@ void Avatar::fixupModelsInScene(const render::ScenePointer& scene) {
|
|||
attachmentModel->removeFromScene(scene, transaction);
|
||||
attachmentModel->addToScene(scene, transaction);
|
||||
|
||||
attachmentModel->setTagMask(Render::TAG_ALL_VIEWS);
|
||||
attachmentModel->setTagMask(render::hifi::TAG_ALL_VIEWS);
|
||||
attachmentModel->setGroupCulled(false);
|
||||
attachmentModel->setCanCastShadow(true);
|
||||
attachmentModel->setVisibleInScene(_isMeshVisible, scene);
|
||||
|
|
|
@ -1388,8 +1388,8 @@ void ModelEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& sce
|
|||
|
||||
// Default behavior for model is to not be visible in main view if cauterized (aka parented to the avatar's neck joint)
|
||||
auto tagMask = _cauterized ?
|
||||
Render::TAG_SECONDARY_VIEW : // draw in every view except the main one (view zero)
|
||||
Render::TAG_ALL_VIEWS; // draw in all views
|
||||
render::hifi::TAG_SECONDARY_VIEW : // draw in every view except the main one (view zero)
|
||||
render::hifi::TAG_ALL_VIEWS; // draw in all views
|
||||
|
||||
if (model->isVisible() != _visible) {
|
||||
// FIXME: this seems like it could be optimized if we tracked our last known visible state in
|
||||
|
|
|
@ -106,7 +106,7 @@ Model::Model(QObject* parent, SpatiallyNestable* spatiallyNestableOverride) :
|
|||
_blendNumber(0),
|
||||
_appliedBlendNumber(0),
|
||||
_isWireframe(false),
|
||||
_renderItemKeyGlobalFlags(render::ItemKey::Builder().withVisible().withTagBits(Render::TAG_ALL_VIEWS).build())
|
||||
_renderItemKeyGlobalFlags(render::ItemKey::Builder().withVisible().withTagBits(render::hifi::TAG_ALL_VIEWS).build())
|
||||
{
|
||||
// we may have been created in the network thread, but we live in the main thread
|
||||
if (_viewState) {
|
||||
|
@ -812,25 +812,25 @@ bool Model::canCastShadow() const {
|
|||
void Model::setLayeredInFront(bool layeredInFront, const render::ScenePointer& scene) {
|
||||
if (Model::isLayeredInFront() != layeredInFront) {
|
||||
auto keyBuilder = render::ItemKey::Builder(_renderItemKeyGlobalFlags);
|
||||
_renderItemKeyGlobalFlags = (layeredInFront ? keyBuilder.withLayer(Render::LAYER_3D_FRONT) : keyBuilder.withoutLayer());
|
||||
_renderItemKeyGlobalFlags = (layeredInFront ? keyBuilder.withLayer(render::hifi::LAYER_3D_FRONT) : keyBuilder.withoutLayer());
|
||||
updateRenderItemsKey(scene);
|
||||
}
|
||||
}
|
||||
|
||||
bool Model::isLayeredInFront() const {
|
||||
return _renderItemKeyGlobalFlags.isLayer(Render::LAYER_3D_FRONT);
|
||||
return _renderItemKeyGlobalFlags.isLayer(render::hifi::LAYER_3D_FRONT);
|
||||
}
|
||||
|
||||
void Model::setLayeredInHUD(bool layeredInHUD, const render::ScenePointer& scene) {
|
||||
if (Model::isLayeredInHUD() != layeredInHUD) {
|
||||
auto keyBuilder = render::ItemKey::Builder(_renderItemKeyGlobalFlags);
|
||||
_renderItemKeyGlobalFlags = (layeredInHUD ? keyBuilder.withLayer(Render::LAYER_3D_HUD) : keyBuilder.withoutLayer());
|
||||
_renderItemKeyGlobalFlags = (layeredInHUD ? keyBuilder.withLayer(render::hifi::LAYER_3D_HUD) : keyBuilder.withoutLayer());
|
||||
updateRenderItemsKey(scene);
|
||||
}
|
||||
}
|
||||
|
||||
bool Model::isLayeredInHUD() const {
|
||||
return _renderItemKeyGlobalFlags.isLayer(Render::LAYER_3D_HUD);
|
||||
return _renderItemKeyGlobalFlags.isLayer(render::hifi::LAYER_3D_HUD);
|
||||
}
|
||||
|
||||
void Model::setTagMask(uint8_t mask, const render::ScenePointer& scene) {
|
||||
|
@ -840,8 +840,8 @@ void Model::setTagMask(uint8_t mask, const render::ScenePointer& scene) {
|
|||
updateRenderItemsKey(scene);
|
||||
}
|
||||
}
|
||||
Render::Tag Model::getTagMask() const {
|
||||
return (Render::Tag) _renderItemKeyGlobalFlags.getTagBits();
|
||||
render::hifi::Tag Model::getTagMask() const {
|
||||
return (render::hifi::Tag) _renderItemKeyGlobalFlags.getTagBits();
|
||||
}
|
||||
|
||||
void Model::setGroupCulled(bool groupCulled, const render::ScenePointer& scene) {
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include <TriangleSet.h>
|
||||
#include <DualQuaternion.h>
|
||||
|
||||
#include "RenderConstants.h"
|
||||
#include "RenderHifi.h"
|
||||
#include "GeometryCache.h"
|
||||
#include "TextureCache.h"
|
||||
#include "Rig.h"
|
||||
|
@ -91,7 +91,7 @@ public:
|
|||
void setVisibleInScene(bool isVisible, const render::ScenePointer& scene = nullptr);
|
||||
bool isVisible() const;
|
||||
|
||||
Render::Tag getTagMask() const;
|
||||
render::hifi::Tag getTagMask() const;
|
||||
void setTagMask(uint8_t mask, const render::ScenePointer& scene = nullptr);
|
||||
|
||||
bool isGroupCulled() const;
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
//
|
||||
// RenderConstants.h
|
||||
// libraries/render-utils/src
|
||||
//
|
||||
// Created by Sam Gateau on 5/30/2018.
|
||||
// Copyright 2018 High Fidelity, Inc.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
#ifndef hifi_RenderConstants_h
|
||||
#define hifi_RenderConstants_h
|
||||
|
||||
#include <render/Item.h>
|
||||
|
||||
class Render {
|
||||
public:
|
||||
|
||||
// Tag is the alias names of render::ItemKey::Tag combinations used in the Hifi Render Engine
|
||||
enum Tag : uint8_t {
|
||||
TAG_NONE = render::ItemKey::TAG_BITS_NONE, // No Tags at all
|
||||
TAG_MAIN_VIEW = render::ItemKey::TAG_BITS_0, // Main view
|
||||
TAG_SECONDARY_VIEW = render::ItemKey::TAG_BITS_1, // Secondary View
|
||||
TAG_ALL_VIEWS = TAG_MAIN_VIEW | TAG_SECONDARY_VIEW, // All views
|
||||
};
|
||||
|
||||
// Layer is the alias names of the render::ItemKey::Layer used in the Hifi Render Engine
|
||||
enum Layer : uint8_t {
|
||||
LAYER_3D = render::ItemKey::LAYER_DEFAULT,
|
||||
LAYER_3D_FRONT = render::ItemKey::LAYER_1,
|
||||
LAYER_3D_HUD = render::ItemKey::LAYER_2,
|
||||
LAYER_2D = render::ItemKey::LAYER_3,
|
||||
LAYER_BACKGROUND = render::ItemKey::LAYER_BACKGROUND,
|
||||
};
|
||||
};
|
||||
|
||||
#endif // hifi_RenderConstants_h
|
|
@ -27,7 +27,7 @@
|
|||
#include <render/DrawSceneOctree.h>
|
||||
#include <render/BlurTask.h>
|
||||
|
||||
#include "RenderConstants.h"
|
||||
#include "RenderHifi.h"
|
||||
#include "RenderCommonTask.h"
|
||||
#include "LightingModel.h"
|
||||
#include "StencilMaskPass.h"
|
||||
|
@ -201,8 +201,8 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren
|
|||
const auto overlaysInFrontRangeTimer = task.addJob<BeginGPURangeTimer>("BeginOverlaysInFrontRangeTimer", "BeginOverlaysInFrontRangeTimer");
|
||||
|
||||
// Layered Overlays
|
||||
const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, Render::LAYER_3D_FRONT);
|
||||
const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, Render::LAYER_3D_FRONT);
|
||||
const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, render::hifi::LAYER_3D_FRONT);
|
||||
const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, render::hifi::LAYER_3D_FRONT);
|
||||
const auto overlaysInFrontOpaque = filteredOverlaysOpaque.getN<FilterLayeredItems::Outputs>(0);
|
||||
const auto overlaysInFrontTransparent = filteredOverlaysTransparent.getN<FilterLayeredItems::Outputs>(0);
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
#include <render/FilterTask.h>
|
||||
|
||||
#include "RenderConstants.h"
|
||||
#include "RenderHifi.h"
|
||||
#include "StencilMaskPass.h"
|
||||
#include "ZoneRenderer.h"
|
||||
#include "FadeEffect.h"
|
||||
|
@ -80,8 +80,8 @@ void RenderForwardTask::build(JobModel& task, const render::Varying& input, rend
|
|||
task.addJob<PrepareStencil>("PrepareStencil", framebuffer);
|
||||
|
||||
// Layered Overlays
|
||||
const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, Render::LAYER_3D_FRONT);
|
||||
const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, Render::LAYER_3D_FRONT);
|
||||
const auto filteredOverlaysOpaque = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredOpaque", overlayOpaques, render::hifi::LAYER_3D_FRONT);
|
||||
const auto filteredOverlaysTransparent = task.addJob<FilterLayeredItems>("FilterOverlaysLayeredTransparent", overlayTransparents, render::hifi::LAYER_3D_FRONT);
|
||||
const auto overlaysInFrontOpaque = filteredOverlaysOpaque.getN<FilterLayeredItems::Outputs>(0);
|
||||
const auto overlaysInFrontTransparent = filteredOverlaysTransparent.getN<FilterLayeredItems::Outputs>(0);
|
||||
|
||||
|
|
43
libraries/render-utils/src/RenderHifi.h
Normal file
43
libraries/render-utils/src/RenderHifi.h
Normal file
|
@ -0,0 +1,43 @@
|
|||
//
|
||||
// RenderHifi.h
|
||||
// libraries/render-utils/src
|
||||
//
|
||||
// Created by Sam Gateau on 5/30/2018.
|
||||
// Copyright 2018 High Fidelity, Inc.
|
||||
//
|
||||
// Distributed under the Apache License, Version 2.0.
|
||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
#ifndef hifi_RenderHifi_h
|
||||
#define hifi_RenderHifi_h
|
||||
|
||||
#include <render/Item.h>
|
||||
|
||||
|
||||
|
||||
// In the library render-utils we are specializing the generic components of the render library to create the custom hifi render engine
|
||||
// Objects and types serving this goal are define in the namespace render.hifi
|
||||
// TODO: extend the namespace to all the classes where it make sense in render-utils
|
||||
namespace render {
|
||||
namespace hifi {
|
||||
|
||||
// Tag is the alias names of render::ItemKey::Tag combinations used in the Hifi Render Engine
|
||||
enum Tag : uint8_t {
|
||||
TAG_NONE = render::ItemKey::TAG_BITS_NONE, // No Tags at all
|
||||
TAG_MAIN_VIEW = render::ItemKey::TAG_BITS_0, // Main view
|
||||
TAG_SECONDARY_VIEW = render::ItemKey::TAG_BITS_1, // Secondary View
|
||||
TAG_ALL_VIEWS = TAG_MAIN_VIEW | TAG_SECONDARY_VIEW, // All views
|
||||
};
|
||||
|
||||
// Layer is the alias names of the render::ItemKey::Layer used in the Hifi Render Engine
|
||||
enum Layer : uint8_t {
|
||||
LAYER_3D = render::ItemKey::LAYER_DEFAULT,
|
||||
LAYER_3D_FRONT = render::ItemKey::LAYER_1,
|
||||
LAYER_3D_HUD = render::ItemKey::LAYER_2,
|
||||
LAYER_2D = render::ItemKey::LAYER_3,
|
||||
LAYER_BACKGROUND = render::ItemKey::LAYER_BACKGROUND,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif // hifi_RenderHifi_h
|
|
@ -28,26 +28,11 @@ const float Item::Status::Value::GREEN = 120.0f;
|
|||
const float Item::Status::Value::CYAN = 180.0f;
|
||||
const float Item::Status::Value::BLUE = 240.0f;
|
||||
const float Item::Status::Value::MAGENTA = 300.0f;
|
||||
/*
|
||||
const uint8_t ItemKey::TAG_BITS_ALL { 0xFF };
|
||||
const uint8_t ItemKey::TAG_BITS_NONE { 0x00 };
|
||||
const uint8_t ItemKey::TAG_BITS_0 { 0x01 };
|
||||
const uint8_t ItemKey::TAG_BITS_1 { 0x02 };
|
||||
const uint8_t ItemKey::TAG_BITS_2 { 0x04 };
|
||||
const uint8_t ItemKey::TAG_BITS_3 { 0x08 };
|
||||
const uint8_t ItemKey::TAG_BITS_4 { 0x10 };
|
||||
const uint8_t ItemKey::TAG_BITS_5 { 0x20 };
|
||||
const uint8_t ItemKey::TAG_BITS_6 { 0x40 };
|
||||
const uint8_t ItemKey::TAG_BITS_7 { 0x80 };
|
||||
*/
|
||||
|
||||
const uint32_t ItemKey::KEY_TAG_BITS_MASK = ((uint32_t) ItemKey::TAG_BITS_ALL) << FIRST_TAG_BIT;
|
||||
|
||||
// Layer bits are derived from the Layer enum, the number of bits needed to represent integer 0 to NUM_LAYERS
|
||||
//const uint8_t ItemKey::LAYER_BITS_ALL { 0x07 };
|
||||
|
||||
const uint32_t ItemKey::KEY_LAYER_BITS_MASK = ((uint32_t)ItemKey::LAYER_BITS_ALL) << FIRST_LAYER_BIT;
|
||||
|
||||
|
||||
void Item::Status::Value::setScale(float scale) {
|
||||
_scale = (std::numeric_limits<unsigned short>::max() -1) * 0.5f * (1.0f + std::max(std::min(scale, 1.0f), 0.0f));
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ public:
|
|||
|
||||
NUM_TAGS,
|
||||
|
||||
// Tag bits are derived from the Tag enum
|
||||
TAG_BITS_ALL = 0xFF,
|
||||
TAG_BITS_NONE = 0x00,
|
||||
TAG_BITS_0 = 0x01,
|
||||
|
@ -65,18 +66,7 @@ public:
|
|||
TAG_BITS_6 = 0x40,
|
||||
TAG_BITS_7 = 0x80,
|
||||
};
|
||||
/* // Tag bits are derived from the Tag enum
|
||||
constexpr static uint8_t TAG_BITS_ALL;
|
||||
const static uint8_t TAG_BITS_NONE;
|
||||
const static uint8_t TAG_BITS_0;
|
||||
const static uint8_t TAG_BITS_1;
|
||||
const static uint8_t TAG_BITS_2;
|
||||
const static uint8_t TAG_BITS_3;
|
||||
const static uint8_t TAG_BITS_4;
|
||||
const static uint8_t TAG_BITS_5;
|
||||
const static uint8_t TAG_BITS_6;
|
||||
const static uint8_t TAG_BITS_7;
|
||||
*/
|
||||
|
||||
// Items are organized in layers, an item belongs to one of the 8 Layers available.
|
||||
// By default an item is in the 'LAYER_DEFAULT' meaning that it is NOT layered.
|
||||
// THere is NO ordering relationship between layers.
|
||||
|
@ -92,11 +82,10 @@ public:
|
|||
|
||||
NUM_LAYERS,
|
||||
|
||||
NUM_LAYER_BITS = 3,
|
||||
// Layer bits are derived from the Layer enum, the number of bits needed to represent integer 0 to NUM_LAYERS
|
||||
NUM_LAYER_BITS = 3,
|
||||
LAYER_BITS_ALL = 0x07,
|
||||
};
|
||||
// Layer bits are derived from the Layer enum, the number of bits needed to represent integer 0 to NUM_LAYERS
|
||||
// const static uint8_t LAYER_BITS_ALL;
|
||||
|
||||
enum FlagBit : uint32_t {
|
||||
TYPE_SHAPE = 0, // Item is a Shape: Implements the Shape Interface that draw a Geometry rendered with a Material
|
||||
|
|
|
@ -48,6 +48,6 @@ bool blockingInvokeMethod(
|
|||
} }
|
||||
|
||||
#define BLOCKING_INVOKE_METHOD(obj, member, ...) \
|
||||
hifi::qt::blockingInvokeMethod(__FUNCTION__, obj, member, ##__VA_ARGS__)
|
||||
::hifi::qt::blockingInvokeMethod(__FUNCTION__, obj, member, ##__VA_ARGS__)
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue