Files
o3de/Code/Legacy/CryCommon/IMaterial.h
T
Artur K 2a2847b15d Legacy code cleanup - part 3 (#3903)
* Legacy cleanup - part 3

Not much is left that can be easily removed,
so I think this will be last cleanup before the legacy functionality is replaced.

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* fix windows build, remove a few more things, re-add one file

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Remove legacy RenderBus + more cleanups

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Remove MaterialOwnerBus.h

Clean-up in Cry_Matrix34/33

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
2021-09-07 12:14:16 -06:00

44 lines
1.1 KiB
C++

/*
* 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
*
*/
// Description : IMaterial interface declaration.
#pragma once
#include <smartptr.h>
#include <AzCore/EBus/EBus.h>
struct IShader;
struct SShaderItem;
namespace AZ
{
class MaterialNotificationEvents : public AZ::EBusTraits
{
public:
virtual ~MaterialNotificationEvents() {}
static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Multiple;
static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::Single;
static const bool EnableEventQueue = true;
using EventQueueMutexType = AZStd::mutex;
virtual void OnShaderLoaded([[maybe_unused]] IShader* shader) {}
};
using MaterialNotificationEventBus = AZ::EBus<MaterialNotificationEvents>;
}
struct IMaterial
{
// TODO: Remove it!
virtual ~IMaterial() {}
virtual SShaderItem& GetShaderItem() = 0;
virtual const SShaderItem& GetShaderItem() const = 0;
};