Files
XCEngine/engine/Runtime/Rendering/FrameData/VisibleRenderItem.h

36 lines
1.0 KiB
C++

#pragma once
#include <XCEngine/Core/Math/Matrix4.h>
#include <XCEngine/Core/Types.h>
#include <XCEngine/Resources/Mesh/Mesh.h>
#include "engine/Runtime/Rendering/Picking/ObjectIdCodec.h"
namespace XCEngine {
namespace Components {
class GameObject;
class MeshFilterComponent;
class MeshRendererComponent;
} // namespace Components
namespace Rendering {
struct VisibleRenderItem {
Components::GameObject* gameObject = nullptr;
Components::MeshFilterComponent* meshFilter = nullptr;
Components::MeshRendererComponent* meshRenderer = nullptr;
Resources::Mesh* mesh = nullptr;
const Resources::Material* material = nullptr;
RenderObjectId renderObjectId = kInvalidRenderObjectId;
Core::uint32 materialIndex = 0;
Core::uint32 sectionIndex = 0;
bool hasSection = false;
Core::uint32 renderLayer = 0;
Core::int32 renderQueue = 0;
float cameraDistanceSq = 0.0f;
Math::Matrix4x4 localToWorld = Math::Matrix4x4::Identity();
};
} // namespace Rendering
} // namespace XCEngine