mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 04:12:46 +02:00
Merge branch 'master' of https://github.com/highfidelity/hifi
This commit is contained in:
commit
343807a9f5
8 changed files with 18 additions and 15 deletions
|
@ -512,10 +512,10 @@ void AvatarMixer::handleAvatarKilled(SharedNodePointer avatarNode) {
|
||||||
// we relay avatar kill packets to agents that are not upstream
|
// we relay avatar kill packets to agents that are not upstream
|
||||||
// and downstream avatar mixers, if the node that was just killed was being replicatedConnectedAgent
|
// and downstream avatar mixers, if the node that was just killed was being replicatedConnectedAgent
|
||||||
return node->getActiveSocket() &&
|
return node->getActiveSocket() &&
|
||||||
((node->getType() == NodeType::Agent && !node->isUpstream()) ||
|
(((node->getType() == NodeType::Agent || node->getType() == NodeType::EntityScriptServer) && !node->isUpstream()) ||
|
||||||
(avatarNode->isReplicated() && shouldReplicateTo(*avatarNode, *node)));
|
(avatarNode->isReplicated() && shouldReplicateTo(*avatarNode, *node)));
|
||||||
}, [&](const SharedNodePointer& node) {
|
}, [&](const SharedNodePointer& node) {
|
||||||
if (node->getType() == NodeType::Agent) {
|
if (node->getType() == NodeType::Agent || node->getType() == NodeType::EntityScriptServer) {
|
||||||
if (!killPacket) {
|
if (!killPacket) {
|
||||||
killPacket = NLPacket::create(PacketType::KillAvatar, NUM_BYTES_RFC4122_UUID + sizeof(KillAvatarReason), true);
|
killPacket = NLPacket::create(PacketType::KillAvatar, NUM_BYTES_RFC4122_UUID + sizeof(KillAvatarReason), true);
|
||||||
killPacket->write(avatarNode->getUUID().toRfc4122());
|
killPacket->write(avatarNode->getUUID().toRfc4122());
|
||||||
|
|
|
@ -288,6 +288,7 @@ Rectangle {
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: outputDeviceButtonContainer
|
id: outputDeviceButtonContainer
|
||||||
|
visible: false // An experiment. Will you notice?
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.left: inputDeviceButton.right
|
anchors.left: inputDeviceButton.right
|
||||||
anchors.leftMargin: 7
|
anchors.leftMargin: 7
|
||||||
|
@ -343,6 +344,7 @@ Rectangle {
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: statusButtonContainer
|
id: statusButtonContainer
|
||||||
|
visible: false // An experiment. Will you notice?
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.left: outputDeviceButtonContainer.right
|
anchors.left: outputDeviceButtonContainer.right
|
||||||
anchors.leftMargin: 8
|
anchors.leftMargin: 8
|
||||||
|
|
|
@ -471,9 +471,9 @@ Menu::Menu() {
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::ComputeBlendshapes, 0, true,
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::ComputeBlendshapes, 0, true,
|
||||||
DependencyManager::get<ModelBlender>().data(), SLOT(setComputeBlendshapes(bool)));
|
DependencyManager::get<ModelBlender>().data(), SLOT(setComputeBlendshapes(bool)));
|
||||||
|
|
||||||
action = addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::MeshShaders, 0, false);
|
action = addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::MaterialProceduralShaders, 0, false);
|
||||||
connect(action, &QAction::triggered, [action] {
|
connect(action, &QAction::triggered, [action] {
|
||||||
MeshPartPayload::enableMeshShaders = action->isChecked();
|
MeshPartPayload::enableMaterialProceduralShaders = action->isChecked();
|
||||||
});
|
});
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -228,7 +228,7 @@ namespace MenuOption {
|
||||||
const QString ForceCoarsePicking = "Force Coarse Picking";
|
const QString ForceCoarsePicking = "Force Coarse Picking";
|
||||||
const QString ComputeBlendshapes = "Compute Blendshapes";
|
const QString ComputeBlendshapes = "Compute Blendshapes";
|
||||||
const QString HighlightTransitions = "Highlight Transitions";
|
const QString HighlightTransitions = "Highlight Transitions";
|
||||||
const QString MeshShaders = "Enable Procedural Materials on Meshes";
|
const QString MaterialProceduralShaders = "Enable Procedural Materials";
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // hifi_Menu_h
|
#endif // hifi_Menu_h
|
||||||
|
|
|
@ -103,15 +103,15 @@ void setupPreferences() {
|
||||||
preference->setItems(refreshRateProfiles);
|
preference->setItems(refreshRateProfiles);
|
||||||
preferences->addPreference(preference);
|
preferences->addPreference(preference);
|
||||||
|
|
||||||
auto getterMeshShaders = []() -> bool {
|
auto getterMaterialProceduralShaders = []() -> bool {
|
||||||
auto menu = Menu::getInstance();
|
auto menu = Menu::getInstance();
|
||||||
return menu->isOptionChecked(MenuOption::MeshShaders);
|
return menu->isOptionChecked(MenuOption::MaterialProceduralShaders);
|
||||||
};
|
};
|
||||||
auto setterMeshShaders = [](bool value) {
|
auto setterMaterialProceduralShaders = [](bool value) {
|
||||||
auto menu = Menu::getInstance();
|
auto menu = Menu::getInstance();
|
||||||
menu->setIsOptionChecked(MenuOption::MeshShaders, value);
|
menu->setIsOptionChecked(MenuOption::MaterialProceduralShaders, value);
|
||||||
};
|
};
|
||||||
preferences->addPreference(new CheckPreference(GRAPHICS_QUALITY, "Enable Procedural Materials on Meshes", getterMeshShaders, setterMeshShaders));
|
preferences->addPreference(new CheckPreference(GRAPHICS_QUALITY, "Enable Procedural Materials", getterMaterialProceduralShaders, setterMaterialProceduralShaders));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Expose the Viewport Resolution Scale
|
// Expose the Viewport Resolution Scale
|
||||||
|
|
|
@ -44,6 +44,7 @@ const quint64 MIN_TIME_BETWEEN_MY_AVATAR_DATA_SENDS = USECS_PER_SECOND / CLIENT_
|
||||||
* @namespace AvatarList
|
* @namespace AvatarList
|
||||||
*
|
*
|
||||||
* @hifi-assignment-client
|
* @hifi-assignment-client
|
||||||
|
* @hifi-server-entity
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class AvatarReplicas {
|
class AvatarReplicas {
|
||||||
|
|
|
@ -23,10 +23,10 @@
|
||||||
|
|
||||||
#include "RenderPipelines.h"
|
#include "RenderPipelines.h"
|
||||||
|
|
||||||
static const QString ENABLE_MESH_SHADERS_STRING { "HIFI_ENABLE_MESH_SHADERS" };
|
static const QString ENABLE_MATERIAL_PROCEDURAL_SHADERS_STRING { "HIFI_ENABLE_MATERIAL_PROCEDURAL_SHADERS" };
|
||||||
static bool ENABLE_MESH_SHADERS = QProcessEnvironment::systemEnvironment().contains(ENABLE_MESH_SHADERS_STRING);
|
static bool ENABLE_MATERIAL_PROCEDURAL_SHADERS = QProcessEnvironment::systemEnvironment().contains(ENABLE_MATERIAL_PROCEDURAL_SHADERS_STRING);
|
||||||
|
|
||||||
bool MeshPartPayload::enableMeshShaders = false;
|
bool MeshPartPayload::enableMaterialProceduralShaders = false;
|
||||||
|
|
||||||
using namespace render;
|
using namespace render;
|
||||||
|
|
||||||
|
@ -471,7 +471,7 @@ void ModelMeshPartPayload::render(RenderArgs* args) {
|
||||||
|
|
||||||
if (!_drawMaterials.empty() && _drawMaterials.top().material && _drawMaterials.top().material->isProcedural() &&
|
if (!_drawMaterials.empty() && _drawMaterials.top().material && _drawMaterials.top().material->isProcedural() &&
|
||||||
_drawMaterials.top().material->isReady()) {
|
_drawMaterials.top().material->isReady()) {
|
||||||
if (!(enableMeshShaders && ENABLE_MESH_SHADERS)) {
|
if (!(enableMaterialProceduralShaders && ENABLE_MATERIAL_PROCEDURAL_SHADERS)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
auto procedural = std::static_pointer_cast<graphics::ProceduralMaterial>(_drawMaterials.top().material);
|
auto procedural = std::static_pointer_cast<graphics::ProceduralMaterial>(_drawMaterials.top().material);
|
||||||
|
|
|
@ -73,7 +73,7 @@ public:
|
||||||
void addMaterial(graphics::MaterialLayer material);
|
void addMaterial(graphics::MaterialLayer material);
|
||||||
void removeMaterial(graphics::MaterialPointer material);
|
void removeMaterial(graphics::MaterialPointer material);
|
||||||
|
|
||||||
static bool enableMeshShaders;
|
static bool enableMaterialProceduralShaders;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
render::ItemKey _itemKey{ render::ItemKey::Builder::opaqueShape().build() };
|
render::ItemKey _itemKey{ render::ItemKey::Builder::opaqueShape().build() };
|
||||||
|
|
Loading…
Reference in a new issue