Skip to content

v0.17.1

Latest

Choose a tag to compare

@al6uiz al6uiz released this 18 Jun 19:54
· 2 commits to main since this release

What's Changed

English

Following the MewUI.Skia and MewUI.MewDock extensions that shipped with v0.16.0, this release continues to grow the MewUI ecosystem with two more native extensions: the new MewUI.Svg library (deferred from v0.16.0) and the new MewUI.MewCharts charts extension. (All first-party MewUI extensions are implemented on top of MewUI’s IGraphicsContext abstraction without Skia.) On the core side, the Image control gains first-class vector image source support, the MewUI.WebView2.Win32 add-on package is renamed for naming consistency, and two outstanding layout bugs around MinWidth / MaxWidth constraints are fixed.

Added

Libraries

  • MewUI.Svg library — SVG rendering library that lives under extensions/MewUI.Svg. Builds on top of the v0.16.0 GPU interop foundation to composite SVG content directly onto each backend's GPU surface. Vendored on top of the SVG.NET submodule for the parser. Ships with SvgImageSource, which wraps an SVG document as an IImageSource so it can be assigned to Image.Source like any bitmap (with color tinting via Tint for icon use cases), and MewUI.Svg.Sample includes an Icons tab that bundles icons.zip (Simple Icons set) and demonstrates loading and tinting SVG icons at runtime.
    Aprillz MewUI Svg Sample_Cbqk1mzdM8

  • MewUI.MewCharts library — charts extension built on a vendored LiveChartsCore (LiveCharts2 v2.0.4) backend, drawing through the MewUI rendering pipeline.
    Aprillz MewUI MewCharts Sample_rR2EVDrptn

Controls

  • Vector image source support in Image control — adds the IVectorImageSource interface and a dedicated RenderVector path so that vector sources are measured and drawn at native vector resolution. Image.MeasureContent and OnRender resolve vector vs. raster sources automatically.

Diagnostics / analyzers

  • MEW1104 analyzer rule — code-fix that refactors "assignment to fluent call" patterns into idiomatic chained form. Documented in the analyzer README in both English and Korean.

Improved

Backend / platform

  • GDI hit-test against complex clip regions via PtVisible — pixel compositing is now restricted to the HDC clip bounds, improving culling accuracy for non-rectangular clips.

Controls

  • Focus is cleared on a left click that hits no focus target (#91) — clicking empty space now releases focus instead of leaving the previous element selected.

Fixed

Layout

  • Auto measure constraints not clamped to MinWidth / MaxWidth (#173) — auto Width / Height now clamp to the element's min/max bounds before measuring content, while explicit Width / Height keep their existing desired-size behavior.
  • Explicit size lost after min/max constraints (#170) — an explicitly assigned Width / Height is now preserved after the min/max pass instead of being collapsed.

⚠️ Breaking Changes

  • MewUI.Win32.WebView2 renamed to MewUI.WebView2.Win32 — the package, source folder, and project / sample references are renamed to match the MewUI.<Feature>.<Platform> convention used by other platform-specific projects. Consumers must update their PackageReference / ProjectReference.

변경 사항

v0.16.0에서 제공된 MewUI.Skia 및 MewUI.MewDock 확장에 이어, 이번 릴리스에서는 새로운 MewUI.Svg 라이브러리(v0.16.0에서 연기됨)와 새로운 MewUI.MewCharts 차트 확장을 추가하여 MewUI 생태계를 계속 확장합니다. (모든 MewUI 퍼스트파티 확장은 Skia 없이 MewUI의 IGraphicsContext 추상화를 기반으로 구현됩니다.) 코어에서는 Image 컨트롤에 벡터 이미지 소스가 정식으로 지원되고, 명명 규칙의 일관성을 위해 MewUI.WebView2.Win32 애드온 패키지의 이름이 변경되며, MinWidth / MaxWidth 제약과 관련된 두 가지 미해결 레이아웃 버그가 수정됩니다.

추가됨

라이브러리

  • MewUI.Svg 라이브러리extensions/MewUI.Svg에 위치한 SVG 렌더링 라이브러리. v0.16.0에서 도입한 GPU 인터롭 기반 위에서 SVG 콘텐츠를 각 백엔드의 GPU 서피스 위로 직접 합성. 파서는 SVG.NET 서브모듈을 사용. SVG 문서를 IImageSource로 래핑해 비트맵과 동일하게 Image.Source에 할당할 수 있는 SvgImageSource(아이콘 활용을 위한 컬러 틴팅 Tint 지원)를 함께 제공하며, MewUI.Svg.Sample에는 Simple Icons 세트가 담긴 icons.zip을 번들로 제공하고 런타임에 SVG 아이콘을 로드 및 틴팅하는 Icons 탭이 포함되어 있음.
  • MewUI.MewCharts 라이브러리LiveChartsCore(LiveCharts2 v2.0.4) 백엔드 기반 차트 확장. MewUI 렌더링 파이프라인을 통해 그려짐.

컨트롤

  • Image 컨트롤의 벡터 이미지 소스 지원IVectorImageSource 인터페이스와 전용 RenderVector 경로 추가. 벡터 소스는 네이티브 벡터 해상도로 측정되고 그려지며, Image.MeasureContent / OnRender가 벡터 / 래스터 소스를 자동으로 분기 처리.

진단 / 분석기

  • MEW1104 분석 규칙 — "fluent 호출에 대한 속성 대입" 패턴을 관용적인 체인 형태로 리팩터링하는 code fix. 분석기 README(한·영)에 규칙과 예제 문서화.

개선됨

백엔드 / 플랫폼

  • GDI에서 복잡 클립 영역에 대한 PtVisible 기반 히트테스트 — 픽셀 합성을 HDC 클립 범위로 제한하여 비사각형 클립에서의 컬링 정확도 향상.

컨트롤

  • 타깃이 없는 좌클릭 시 포커스 해제 (#91) — 빈 공간 클릭 시 이전 요소를 그대로 두지 않고 포커스가 풀리도록 동작 변경.

수정됨

레이아웃

  • 자동 측정 제약이 MinWidth / MaxWidth로 클램프되지 않던 문제 (#173) — 자동 Width / Height가 콘텐츠 측정 전에 요소의 min/max 범위로 클램프되도록 수정. 명시적 Width / Height의 desired-size 동작은 그대로 유지.
  • min/max 제약 적용 후 명시 크기가 사라지던 문제 (#170) — 명시적으로 지정한 Width / Height가 min/max 처리 후에도 그대로 유지되도록 보정.

⚠️ 호환되지 않는 변경 (Breaking Changes)

  • MewUI.Win32.WebView2MewUI.WebView2.Win32로 이름 변경 — 다른 플랫폼 종속 프로젝트의 MewUI.<Feature>.<Platform> 규칙에 맞춰 패키지, 소스 폴더, 프로젝트 / 샘플 참조의 이름을 변경. 소비 측에서 PackageReference / ProjectReference 갱신 필요.

Full Changelog: v0.16.0...v0.17.0