/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #include #include #include #include namespace AZ { namespace Render { //! In-editor image based lighting component class EditorImageBasedLightComponent final : public EditorRenderComponentAdapter { public: using BaseClass = EditorRenderComponentAdapter; AZ_EDITOR_COMPONENT(AZ::Render::EditorImageBasedLightComponent, EditorImageBasedLightComponentTypeId, BaseClass); static void Reflect(AZ::ReflectContext* context); EditorImageBasedLightComponent() = default; EditorImageBasedLightComponent(const ImageBasedLightComponentConfig& config); // AZ::Component overrides void Activate() override; AZ::u32 OnDiffuseImageAssetChanged(); AZ::u32 OnSpecularImageAssetChanged(); AZ::u32 OnExposureChanged(); private: bool UpdateImageAsset(Data::Asset& asset1, const char* asset1Suffix, const char* asset1Name, Data::Asset& asset2, const char* asset2Suffix, const char* asset2Name); Data::Asset m_specularImageAsset; Data::Asset m_diffuseImageAsset; float m_exposure = 0.0f; }; } // namespace Render } // namespace AZ