Plasma Engine  2.0
Loading...
Searching...
No Matches
MaterialContext.h
1#pragma once
2
3#include <EditorEngineProcessFramework/EngineProcess/EngineProcessDocumentContext.h>
4#include <EnginePluginAssets/EnginePluginAssetsDLL.h>
5#include <RendererCore/Declarations.h>
6#include <RendererCore/Meshes/MeshBufferResource.h>
7#include <RendererCore/Meshes/MeshResource.h>
8#include <RendererCore/Shader/ShaderResource.h>
9#include <RendererCore/Textures/Texture2DResource.h>
10
12class plRenderContext;
13
14class PL_ENGINEPLUGINASSETS_DLL plMaterialContext : public plEngineProcessDocumentContext
15{
16 PL_ADD_DYNAMIC_REFLECTION(plMaterialContext, plEngineProcessDocumentContext);
17
18public:
20
21 virtual void HandleMessage(const plEditorEngineDocumentMsg* pMsg) override;
22
23protected:
24 virtual void OnInitialize() override;
25
27 virtual void DestroyViewContext(plEngineProcessViewContext* pContext) override;
28 virtual bool UpdateThumbnailViewContext(plEngineProcessViewContext* pThumbnailViewContext) override;
29
30private:
31 plMaterialResourceHandle m_hMaterial;
32 plMeshResourceHandle m_hBallMesh;
33 plMeshResourceHandle m_hSphereMesh;
34 plMeshResourceHandle m_hBoxMesh;
35 plMeshResourceHandle m_hPlaneMesh;
36 plComponentHandle m_hMeshComponent;
37
38 enum class PreviewModel : plUInt8
39 {
40 Ball,
41 Sphere,
42 Box,
43 Plane,
44 };
45
46 PreviewModel m_PreviewModel = PreviewModel::Ball;
47};
Base class for all messages that are tied to some document.
Definition EngineProcessMessages.h:151
A document context is the counter part to an editor document on the engine side.
Definition EngineProcessDocumentContext.h:42
virtual plEngineProcessViewContext * CreateViewContext()=0
Needs to be implemented to create a view context used for windows and thumbnails rendering.
virtual void DestroyViewContext(plEngineProcessViewContext *pContext)=0
Needs to be implemented to destroy the view context created in CreateViewContext.
virtual bool UpdateThumbnailViewContext(plEngineProcessViewContext *pThumbnailViewContext)
Overwrite this function to apply the thumbnail render settings to the given context.
Definition EngineProcessDocumentContext.cpp:603
Represents the view/window on the engine process side, holds all data necessary for rendering.
Definition EngineProcessViewContext.h:54
Definition MaterialContext.h:15
Definition EngineProcessMessages.h:491
Definition RenderContext.h:30
A handle to a component.
Definition Declarations.h:138