8#include "ncengine/graphics/Camera.h"
13#include "ncengine/type/EngineId.h"
14#include "ncengine/ui/IUI.h"
23struct GraphicsSettings;
25struct ProjectSettings;
71 virtual
void SetUi(ui::IUI* ui) noexcept = 0;
82 virtual
void SetSkybox(const std::
string& path) = 0;
88 virtual auto
GetSkybox() const -> nc::asset::AssetId = 0;
121auto BuildGraphicsModule(const config::ProjectSettings& projectSettings,
122 const config::AssetSettings& assetSettings,
123 const config::GraphicsSettings& graphicsSettings,
124 const config::MemorySettings& memorySettings,
TextureViewType
Texture view types used throughout NcEngine.
Definition: GraphicsUtility.h:24
std::variant< EmptyPassProperties, OutlinePassProperties, NoisePassProperties > PostProcessPassProperties
Generic post process property type.
Definition: PostProcess.h:68
uint32_t PostProcessEffectId
Identifier for a post process effect.
Definition: PostProcess.h:27
Basic camera component.
Definition: Camera.h:44
Modules are extensions that provide functionality to the engine.
Definition: Module.h:19
Provides access to registered Modules.
Definition: ModuleProvider.h:15
Graphics module interface.
Definition: NcGraphics.h:47
virtual void SetSkybox(const std::string &path)=0
Set the current skybox.
virtual auto IsPostProcessEffectEnabled(PostProcessEffectId effectId) const -> bool=0
Returns if a post process effect is enabled.
virtual auto GetPostProcessEffectProperties(PostProcessEffectId effectId, PostProcessPassFlag::type pass) const -> const PostProcessPassProperties &=0
Get the pass properties for a post process effect.
virtual void SetCamera(Camera *camera) noexcept=0
Set the main Camera.
virtual auto GetTextureView(TextureViewType type, uint32_t index) -> void *=0
Get the handle to the texture view at the given index and the given type.
virtual void SetUi(ui::IUI *ui) noexcept=0
Set a custom ui to receive draw callbacks during rendering.
virtual auto GetCamera() noexcept -> Camera *=0
Get the main Camera.
virtual auto GetSkybox() const -> nc::asset::AssetId=0
Gets the current skybox.
virtual bool IsUiHovered() const noexcept=0
Returns if the ui is currently hovered by the mouse.
virtual void ClearEnvironment()=0
Clear all environment data (currently only the skybox).
virtual void SetPostProcessEffectEnabled(PostProcessEffectId effectId, bool enabled)=0
Enabled or disable a post process effect.
virtual void SetPostProcessEffectProperties(PostProcessEffectId effectId, PostProcessPassFlag::type pass, const PostProcessPassProperties &properties)=0
Set the pass properties for a post process effect.
Post process pass flags.
Definition: PostProcess.h:17
Signals for internal engine events.
Definition: Events.h:14