36 lines
1.0 KiB
C++
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
|