L1: shared LICE drawing kit — theme/palette + component geometry + draw kit; retire GDI text in bank_panel
This commit is contained in:
+45
-6
@@ -329,6 +329,32 @@ target_include_directories(action_buttons PUBLIC src)
|
||||
add_library(drag_out STATIC src/drag_out.cpp)
|
||||
target_include_directories(drag_out PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2m) Pure theme library — NO REAPER, NO SWELL, NO LICE. The Phase L (L1) palette
|
||||
# core of the shared drawing kit: a ROLE-based color model (bg/base..warn), the
|
||||
# interaction-state transform (rest/hover/active/pressed/dragging/focus/disabled),
|
||||
# the Direction C spectral hue ramp, and the WCAG contrast math that lets a unit
|
||||
# test prove every text-on-surface pair clears its floor ("punch to the floor").
|
||||
# THE SINGLE POINT OF CHANGE (DS-2): one direction constants block feeds roleColor;
|
||||
# switching the visual direction is a one-file edit. The draw shell (draw_kit) turns
|
||||
# a KitColor into a LICE_pixel at the boundary. Mirror of mode_switch — pure.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(theme STATIC src/theme.cpp)
|
||||
target_include_directories(theme PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2n) Pure component_geometry library — NO REAPER, NO SWELL, NO LICE. The Phase L (L1)
|
||||
# generic component geometry the kit draws against: button box (inset + graceful
|
||||
# suppression), horizontal slider track/handle/filled geometry + value<->px inverse,
|
||||
# and list-row rect + hover hit-test. The kit-level primitives that don't already
|
||||
# have a pure owner (bank_grid/mode_switch/tab_strip/action_buttons/prune_button
|
||||
# stay the source of truth for THEIR surfaces). Names KitBox/KitButtonBox/
|
||||
# SliderGeometry/ListRowBox avoid the existing ButtonRect/CellRect collisions.
|
||||
# Mirror of prune_button — pure, CTest-covered.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(component_geometry STATIC src/component_geometry.cpp)
|
||||
target_include_directories(component_geometry PUBLIC src)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 3) Standalone tests for the pure modules (run without launching REAPER).
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -431,18 +457,30 @@ add_executable(drag_out_tests tests/test_drag_out.cpp)
|
||||
target_link_libraries(drag_out_tests PRIVATE drag_out)
|
||||
add_test(NAME drag_out_tests COMMAND drag_out_tests)
|
||||
|
||||
add_executable(theme_tests tests/test_theme.cpp)
|
||||
target_link_libraries(theme_tests PRIVATE theme)
|
||||
add_test(NAME theme_tests COMMAND theme_tests)
|
||||
|
||||
add_executable(component_geometry_tests tests/test_component_geometry.cpp)
|
||||
target_link_libraries(component_geometry_tests PRIVATE component_geometry)
|
||||
add_test(NAME component_geometry_tests COMMAND component_geometry_tests)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 4) The REAPER extension — a loadable module (dlopen'd by REAPER, not linked).
|
||||
# ---------------------------------------------------------------------------
|
||||
# LICE sources the bank_panel draws with: lice.cpp (LICE_SysBitmap, FillRect,
|
||||
# Clear, Blit) + lice_line.cpp (Line, DrawRect). lice_line.cpp's bezier helpers
|
||||
# call LICE_FillCircle from lice_arc.cpp, so that TU is required to link even
|
||||
# though the panel draws no arcs. LICE routes GDI through native Win32 or, on
|
||||
# mac/linux, the host SWELL (SWELL_PROVIDED_BY_APP).
|
||||
# LICE sources the bank_panel + draw_kit draw with: lice.cpp (LICE_SysBitmap, FillRect,
|
||||
# GradRect, Clear, Blit) + lice_line.cpp (Line, DrawRect, RoundRect). lice_line.cpp's
|
||||
# bezier helpers call LICE_FillCircle from lice_arc.cpp, so that TU is required to link.
|
||||
# lice_textnew.cpp provides LICE_CachedFont (the kit's AA cached-font engine, Phase L L1 —
|
||||
# the "temple os -> modern" text lever; see draw_kit.cpp). NOTE the "new" variant: it is the
|
||||
# TU that implements the LICE_CachedFont CLASS (lice_text.cpp is the legacy bitmap-font
|
||||
# renderer with no class and would not resolve the symbols). LICE routes GDI through native
|
||||
# Win32 or, on mac/linux, the host SWELL (SWELL_PROVIDED_BY_APP).
|
||||
set(LICE_SRC
|
||||
${WDL_INC}/lice/lice.cpp
|
||||
${WDL_INC}/lice/lice_line.cpp
|
||||
${WDL_INC}/lice/lice_arc.cpp
|
||||
${WDL_INC}/lice/lice_textnew.cpp
|
||||
)
|
||||
|
||||
add_library(reaper_reasampler MODULE
|
||||
@@ -452,6 +490,7 @@ add_library(reaper_reasampler MODULE
|
||||
src/realtime_record.cpp
|
||||
src/persist.cpp
|
||||
src/bank_panel.cpp
|
||||
src/draw_kit.cpp
|
||||
src/mode_switch.cpp
|
||||
src/tab_strip.cpp
|
||||
src/insert.cpp
|
||||
@@ -470,7 +509,7 @@ add_library(reaper_reasampler MODULE
|
||||
src/owned_manifest.cpp
|
||||
src/drag_out_win.cpp
|
||||
)
|
||||
target_link_libraries(reaper_reasampler PRIVATE bank_model capture_paths peaks bank_grid mode_switch tab_strip view_mode_model insert_plan render_settings batch_capture tail_control realtime_record bank_book wav_trim owned_manifest prune_reconcile prune_button app_version provenance action_buttons drag_out)
|
||||
target_link_libraries(reaper_reasampler PRIVATE bank_model capture_paths peaks bank_grid mode_switch tab_strip view_mode_model insert_plan render_settings batch_capture tail_control realtime_record bank_book wav_trim owned_manifest prune_reconcile prune_button app_version provenance action_buttons drag_out theme component_geometry)
|
||||
target_include_directories(reaper_reasampler PRIVATE ${SDK_INC} ${WDL_INC})
|
||||
# OUTPUT_NAME is channel-derived (Phase V, V4): "reaper_reasampler" (stable, default) or
|
||||
# "reaper_reasampler_beta" (beta). REAPER dlopen's any reaper_* module, so both channels'
|
||||
|
||||
Reference in New Issue
Block a user