This commit is contained in:
2026-08-27 17:54:05 +08:00
parent bc0bb24aea
commit 14f5421925
16 changed files with 234 additions and 205 deletions
+3 -2
View File
@@ -10,11 +10,12 @@ Frame_2D::Frame_2D(Frame_Identity identity, Pixel_Format output_format)
: Render_Frame(identity), d(std::make_unique<Private>()) {
begin(identity, output_format);
}
void Frame_2D::begin(Frame_Identity identity, Pixel_Format output_format) {
void Frame_2D::begin(Frame_Identity identity, Pixel_Format output_format,
Frame_Request_Source source) {
if (std::ranges::find(supported_pixel_formats, output_format) ==
supported_pixel_formats.end())
throw std::invalid_argument("Frame_2D output pixel format is unsupported");
Render_Frame::begin(identity);
Render_Frame::begin(identity, source);
d->output_format = output_format;
}
Frame_2D::~Frame_2D() = default;
+2 -1
View File
@@ -23,7 +23,8 @@ public:
~Frame_2D() override;
/* 保留二维后端图像分配,只重启物理槽承载的新逻辑帧。 */
void begin(Frame_Identity identity,
Pixel_Format output_format = native_pixel_format);
Pixel_Format output_format = native_pixel_format,
Frame_Request_Source source = Frame_Request_Source::unspecified);
[[nodiscard]] Pixel_Format output_format() const noexcept;
[[nodiscard]] Image_View image() const;
/* 按本帧声明的输出格式生成连续像素;原生格式只做必要的行打包。 */