/**
* @file mirage_paint_context.cpp
 * @brief 绘制上下文类的实现
 *
 * 实现绘制上下文的各种操作，包括初始化、重置状态、帧控制和父组件管理等。
 * 绘制上下文负责管理UI系统的绘制过程和状态。
 */

#include "mirage_paint_context.h"

//-------------- 初始化 --------------

/**
 * @brief 初始化绘制上下文
 * @param in_size 初始窗口大小
 *
 * 创建所需的渲染资源，加载预定义的渲染管线，并初始化窗口大小。
 * 这是在绘制开始前必须调用的初始化函数。
 */
void mirage_paint_context::init(const Eigen::Vector2i& in_size) {
	elements_.create_resources();
	elements_.load_mirage_pipelines();
	elements_.init_window_size(in_size);
}

/**
 * @brief 重置绘制上下文状态
 *
 * 将图层计数器重置为0，通常在帧结束时调用，
 * 为下一帧的绘制做准备。
 */
void mirage_paint_context::reset() {
	layer_ = 0;
}

//-------------- 帧控制 --------------

/**
 * @brief 开始一个新的绘制帧
 *
 * 设置父组件状态，并通知渲染元素开始新的帧。
 * 每个渲染帧的开始都应调用此函数。
 */
void mirage_paint_context::begin_frame() {
	elements_.begin_frame();
}
