#pragma once

#include <cstdint>
#include "Frame_Render_Snapshot.hpp"

class Color_Cache;
struct Node_Execution_Metrics;

struct Prepare_Render_Context {
    const Frame_Render_Snapshot& frame;
    const Renderable_Frame_State& renderable;
    Node_Execution_Metrics* metrics{};
};

struct Paint_Render_Context {
    const Frame_Render_Snapshot& frame;
    const Renderable_Frame_State& renderable;
    Color_Cache& color_cache;
    Node_Execution_Metrics* metrics{};
};

struct Composite_Render_Context {
    const Frame_Render_Snapshot& frame;
    const Renderable_Frame_State* renderable{};
    const Color_Cache* color_cache{};
    Node_Execution_Metrics* metrics{};
};
