37 lines
868 B
C++
37 lines
868 B
C++
#pragma once
|
|
|
|
#include <sophia/entity.hpp>
|
|
#include <sophia/handles.hpp>
|
|
#include <sophia/math.hpp>
|
|
#include <sophia/scene.hpp>
|
|
|
|
namespace sophia {
|
|
|
|
enum class ClearFlags : u8 {
|
|
None = 0,
|
|
Color = 1 << 0,
|
|
Depth = 1 << 1,
|
|
Stencil = 1 << 2,
|
|
All = Color | Depth | Stencil
|
|
};
|
|
|
|
struct SceneView {
|
|
SceneHandle scene = INVALID_HANDLE;
|
|
RenderTargetHandle target =
|
|
INVALID_HANDLE; // null implies render to swapchain
|
|
Entity camera; // null implies use scene's active camera
|
|
|
|
// TODO(#76): not used yet; every view renders to its whole target.
|
|
vec4 viewport{0.0f, 0.0f, 1.0f, 1.0f};
|
|
|
|
vec4 clearColor{0.f, 0.f, 0.f, 1.f};
|
|
ClearFlags clearFlags = ClearFlags::All;
|
|
|
|
u32 priority = 0; // Lower priority renders first
|
|
u32 layerMask = 0xFFFFFFFF;
|
|
|
|
bool enabled = true; // Disabled views are kept but not rendered
|
|
};
|
|
|
|
} // namespace sophia
|