统一 Image 和 Sprite 语义到目前的 Image/Sprite 结构体而非之前的类定义

This commit is contained in:
2026-06-09 10:28:29 +08:00
parent 56eec9e9d2
commit feb088a854
16 changed files with 166786 additions and 167030 deletions
+26 -1
View File
@@ -78,11 +78,12 @@ namespace
Core::DrawContext ctx(2, 1);
ctx.clear_color(RenderData::Color(0, 0, 255, 255));
RenderData::Image sprite(
RenderData::Image image(
sprite_pixels,
2,
1,
RenderData::PixelFormat::RGBA5551);
RenderData::Sprite sprite(&image, 0, 0, image.width, image.height);
ctx.draw_sprite(0, 0, sprite);
CaptureDisplay display;
@@ -95,6 +96,29 @@ namespace
assert(pixels[1] == 0x07E0u);
}
void TestDrawSpriteUsesAtlasSubrect()
{
const uint16_t atlas_pixels[] = {
0xF801u,
0x07C1u
};
RenderData::Image atlas(
atlas_pixels,
2,
1,
RenderData::PixelFormat::RGBA5551);
RenderData::Sprite sprite(&atlas, 1, 0, 1, 1);
Core::DrawContext ctx(1, 1);
ctx.clear_color(RenderData::Color::Blue());
ctx.draw_sprite(0, 0, sprite);
CaptureDisplay display;
const Core::FramePixel* pixels = PresentPixels(ctx, display);
assert(pixels[0] == 0x07E0u);
}
void TestSpriteAssetLoaderRoundTripsRgba5551()
{
const std::string path = "render_pipeline_test.sprite";
@@ -216,6 +240,7 @@ int main()
TestFrameBufferStoresRgb565();
TestImageDefaultsToRgba5551AndReturnsRawPixels();
TestDrawSpriteUsesOneBitAlpha();
TestDrawSpriteUsesAtlasSubrect();
TestSpriteAssetLoaderRoundTripsRgba5551();
TestDrawTextUsesBitMaskAndColor();
TestDrawTextColorChangesPerCallAndBackgroundFill();