From 2b1ff7495df8e94ec47255616c81291ec0ba75d4 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Mon, 7 Nov 2022 15:02:40 +0200 Subject: SL-18583 Make tools floater restore overrides when canceling changes #1 This works only partially since changes from material editor are not yet tracked. --- indra/newview/llselectmgr.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'indra/newview/llselectmgr.h') diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h index 573eea7a8a..7e7c450767 100644 --- a/indra/newview/llselectmgr.h +++ b/indra/newview/llselectmgr.h @@ -161,6 +161,8 @@ typedef enum e_selection_type SELECT_TYPE_HUD }ESelectType; +typedef std::vector > gltf_materials_vec_t; + const S32 TE_SELECT_MASK_ALL = 0xFFFFFFFF; // Contains information about a selected object, particularly which TEs are selected. @@ -184,12 +186,21 @@ public: LLViewerObject* getObject(); void setObject(LLViewerObject* object); // *NOTE: invalidate stored textures and colors when # faces change + // Used by tools floater's color/texture pickers to restore changes void saveColors(); void saveShinyColors(); void saveTextures(const uuid_vec_t& textures); - void savedGLTFMaterials(const uuid_vec_t& materials); void saveTextureScaleRatios(LLRender::eTexIndex index_to_query); + // GLTF materials are applied to objects by ids, + // overrides get applied on top of materials resulting in + // final gltf material that users see. + // Ids get applied and restored by tools floater, + // overrides get applied in live material editor + void saveGLTFMaterialIds(const uuid_vec_t& materials); + void saveGLTFRenderMaterials(const gltf_materials_vec_t& materials); + LLGLTFMaterial* getSavedGLTFRenderMaterial(S32 te); + BOOL allowOperationOnNode(PermissionBit op, U64 group_proxy_power) const; public: @@ -225,7 +236,8 @@ public: std::vector mSavedColors; std::vector mSavedShinyColors; uuid_vec_t mSavedTextures; - uuid_vec_t mSavedGLTFMaterials; + uuid_vec_t mSavedGLTFMaterialIds; + gltf_materials_vec_t mSavedGLTFRenderMaterials; std::vector mTextureScaleRatios; std::vector mSilhouetteVertices; // array of vertices to render silhouette of object std::vector mSilhouetteNormals; // array of normals to render silhouette of object -- cgit v1.2.3