Task #1017: PageLayerTree BehindText/InFrontOfText z-order 합성 순서 적용#1163
Merged
Conversation
Owner
|
devel 에 머지했습니다 ( 머지 과정에서 두 가지를 정합했습니다:
별도로, SVG 렌더러( |
This was referenced May 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
background -> behindText -> flow -> inFrontOfTextreplay plane으로 분류하는 공통 helper를 추가했습니다.BehindText/InFrontOfText의미에 맞춰 multi-pass replay 하도록 변경했습니다.replayPlane을 노출하고,samples/복학원서.hwp기반 PageLayerTree replay에서 BehindText/InFrontOfText z-order 합성 정책 일반화 #1017 회귀 테스트를 추가했습니다.Root cause
#1016에서 중앙 baked watermark image payload는 resolved 되었지만, #1017 fixture인
samples/복학원서.hwp에서는 해당 image op가wrap=behindText임에도 raw PageLayerTree 순서상 본문textRun뒤에 위치했습니다.기존 native Skia / CanvasKit direct replay는 tree/leaf raw order를 그대로 따라가므로,
behindTextwatermark가 본문 텍스트 위의 흰 사각처럼 합성될 수 있었습니다.변경
src/paint/replay_order.rsPaintReplayPlane과paint_op_replay_plane()추가PageBackground,BehindTextimage, flow op,InFrontOfTextimage의 replay 순서 contract 정의src/renderer/skia/renderer.rsrhwp-studio/src/view/canvaskit-renderer.tssrc/renderer/canvaskit_policy.rsreplayPlane진단 추가tests/issue_1017.rs,rhwp-studio/tests/render-backend.test.ts비교 이미지
upstream/devel)검증
cargo fmt --all -- --checkcargo testcargo clippy -- -D warningscargo test --features native-skia skia --libnpm --prefix rhwp-studio testcargo run --features native-skia --bin rhwp -- export-png samples/복학원서.hwp -p 0 -o output/task1017-final최종 PNG에서 중앙 baked watermark가 본문 텍스트 뒤에 깔리고, 흰 사각 배경이 본문 위에 올라오지 않는 것을 확인했습니다.
관련 이슈: #1017
Closes #1017