현재는 전체 화면만 녹화 되지만 다음과 같이 특정 창만 녹화 하는 기능이 추가되었으면 합니다.
클로드로 플랜 떠보니까 다음과 같이 나오네요
현재 앱은 "화면 전체 / 사용자 지정 사각형 영역 / 특정 창"을 선택하는 영역 선택 오버레이(RegionSelectorWindow)를 이미 갖고 있고, "특정 창" 토글 버튼(Icon_WindowMaximize, RegionSelectionMode.WindowRegion)도 이미 존재한다. 하지만 이 모드는 실제로는 "마우스가 올라간 창의 사각형을 모니터 전체 스크린샷에서 잘라내는" 방식일 뿐이다 — 진짜 창 캡처가 아니라 좌표 스냅일 뿐이라, 창이 움직이거나 다른 창에 가려지면 엉뚱한 화면이 찍힌다.
엔진 레벨에는 이미 WGC(Windows.Graphics.Capture)의 CreateForWindow 인터롭(WgcInterop.CreateItemForWindow, ScreenRecorder.Engine/DirectX/WgcInterop.cs:57)과, 그것을 받는 ScreenVideoSource(IntPtr hwnd, ...) 생성자(ScreenRecorder.Engine/VideoSource/ScreenVideoSource.cs:53)가 이미 구현되어 있다 — 다만 이 생성자를 호출하는 코드가 어디에도 없다(죽은 코드).
목표: 사용자가 화면 위에서 창을 클릭해 고르면(기존 UI 재사용), 선택한 그 창이 이동/리사이즈되어도 계속 따라가며 녹화되는 "진짜 창 단위" WGC 캡처가 동작하도록 양쪽(엔진의 죽은 코드 활성화 + 셸의 UI 배선)을 연결한다.
접근 방식 요약
- UI는 새로 만들지 않는다 — 기존 화면-클릭 오버레이(RegionSelector + RegionSelectorWindow)의 "특정 창" 모드를 그대로 쓰되, 지금은 버려지는 hwnd 정보를 끝까지 흘려보낸다.
- 캡처는 좌표 크롭이 아니라 진짜 WGC per-window 캡처(ScreenVideoSource(IntPtr hwnd, ...))로 전환한다.
- 녹화 도중 대상 창이 닫히면 비디오가 조용히 멈추는 대신, 녹화를 깔끔하게 종료하고 사용자에게 알린다.
- 앱 자신의 창은 선택 목록에서 제외한다(녹화 시작 시 자기 창이 WDA_EXCLUDEFROMCAPTURE로 제외되므로, 그걸 대상으로 고르면 결과가 새까맣게 나오는 상황을 막기 위함).
현재는 전체 화면만 녹화 되지만 다음과 같이 특정 창만 녹화 하는 기능이 추가되었으면 합니다.
클로드로 플랜 떠보니까 다음과 같이 나오네요
현재 앱은 "화면 전체 / 사용자 지정 사각형 영역 / 특정 창"을 선택하는 영역 선택 오버레이(RegionSelectorWindow)를 이미 갖고 있고, "특정 창" 토글 버튼(Icon_WindowMaximize, RegionSelectionMode.WindowRegion)도 이미 존재한다. 하지만 이 모드는 실제로는 "마우스가 올라간 창의 사각형을 모니터 전체 스크린샷에서 잘라내는" 방식일 뿐이다 — 진짜 창 캡처가 아니라 좌표 스냅일 뿐이라, 창이 움직이거나 다른 창에 가려지면 엉뚱한 화면이 찍힌다.
엔진 레벨에는 이미 WGC(Windows.Graphics.Capture)의 CreateForWindow 인터롭(WgcInterop.CreateItemForWindow, ScreenRecorder.Engine/DirectX/WgcInterop.cs:57)과, 그것을 받는 ScreenVideoSource(IntPtr hwnd, ...) 생성자(ScreenRecorder.Engine/VideoSource/ScreenVideoSource.cs:53)가 이미 구현되어 있다 — 다만 이 생성자를 호출하는 코드가 어디에도 없다(죽은 코드).
목표: 사용자가 화면 위에서 창을 클릭해 고르면(기존 UI 재사용), 선택한 그 창이 이동/리사이즈되어도 계속 따라가며 녹화되는 "진짜 창 단위" WGC 캡처가 동작하도록 양쪽(엔진의 죽은 코드 활성화 + 셸의 UI 배선)을 연결한다.
접근 방식 요약