From 549c347d6feb2e94a810a720c97a8bf0f57317a1 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Mon, 4 May 2026 16:19:04 +0300 Subject: kms++util: Replace test-pattern generator with pixpat Switch draw_test_pattern() to call libpixpat (linked statically into libkms++util.so) instead of the in-tree pattern generator. Pixpat covers every pattern (kmstest, smpte, solid colors) and every pixel format the previous generator handled, so behavior is unchanged for all callers. Drop the now-unused machinery: conv.h and conv-*.h template writers, color16.h (RGB16/YUV16 plus conversions), the *_old / _single / _multi declarations that had no definitions or callers, and the c_draw_test_pattern C ABI which had no callers anywhere in the tree. RecStandard and ColorRange move from color16.h directly into kms++util.h, since they are still part of the public TestPatternOptions struct. --- kms++util/src/conv-yuv-packed.h | 83 ----------------------------------------- 1 file changed, 83 deletions(-) delete mode 100644 kms++util/src/conv-yuv-packed.h (limited to 'kms++util/src/conv-yuv-packed.h') diff --git a/kms++util/src/conv-yuv-packed.h b/kms++util/src/conv-yuv-packed.h deleted file mode 100644 index 01278ef..0000000 --- a/kms++util/src/conv-yuv-packed.h +++ /dev/null @@ -1,83 +0,0 @@ -#pragma once - -#include - -#include -#include - -#include "conv-common.h" - -namespace kms -{ - -/* YUV Packed */ - -template -struct YUV_Packed_Format - : public FormatLayout< - PlaneLayout, - ComponentLayout, - ComponentLayout, - ComponentLayout - > - > -{ -}; - -// Define common packed YUV formats -using YUYV_Layout = YUV_Packed_Format; - -using YVYU_Layout = YUV_Packed_Format; - -using UYVY_Layout = YUV_Packed_Format; - -using VYUY_Layout = YUV_Packed_Format; - -template -class YUVPackedWriter -{ - using Plane = typename Layout::template plane<0>; - using TStorage = typename Plane::storage_type; - - static constexpr size_t y0_pos = Plane::template find_pos(); - static constexpr size_t y1_pos = Plane::template find_pos(); - static constexpr size_t cb_pos = Plane::template find_pos(); - static constexpr size_t cr_pos = Plane::template find_pos(); - -public: - static void write_pattern(IFramebuffer& fb, size_t start_y, size_t end_y, - auto&& generate_line) - { - std::vector linebuf(fb.width()); - - auto view = make_strided_fb_view(fb.map(0), fb.height(), - fb.width() / 2, // Two pixels per storage unit - fb.stride(0)); - - for (size_t y = start_y; y <= end_y; y++) { - generate_line(y, linebuf); - - for (size_t x = 0; x < fb.width(); x += 2) { - // Get two pixels - const YUV16& pix0 = linebuf[x]; - const YUV16& pix1 = linebuf[x + 1]; - - std::array components; - - components[y0_pos] = pix0.y >> 8; - components[y1_pos] = pix1.y >> 8; - components[cb_pos] = ((pix0.u + pix1.u) / 2) >> 8; - components[cr_pos] = ((pix0.v + pix1.v) / 2) >> 8; - - view(y, x / 2) = Plane::pack(components); - } - } - } -}; - -} // namespace kms -- cgit v1.2.3