winapi 2

[WinApi] dpi, dip와 렌더타겟 및 물리픽셀 이해

dpi와 dip에 대한 정확한 개념을 사실 완벽하게 이해하지는 못했다. 하지만 direct2d에서 이 개념이 어떻게 쓰이는지는 알아야 추후에 글자가 흐릿해지는 현상을 방지할 수 있다. dpi는 화면 1인치안에 물리적으로 몇개의 픽셀이 있는지를 뜻한다.96 DPI → 1인치에 96픽셀(기본값)192 DPI → 1인치에 192픽셀(200%확대) dip는 모든 디바이스에서 논리적으로 동일한 크기를 가지도록 설계된 단위이다directX에서 NDC좌표계하고 비슷한 개념이다. 디스플레이설정에서 배율 및 레이아웃을 들어가보면 뭐 150%(권장)이렇게 쓰여져 있는 것이 있을것이다. 그리고 고급 디스플레이 설정에 들어가면 본인 컴퓨터의 해상도가 있을것이다. 내꺼는 2560x1440이다. 이건 물리픽셀(정해진 크기의 픽셀..

[WinAPI] COM의 구조와 인터페이스 파헤쳐보기

Graphics (Direct2D)Text ,(DirectWrite),The Windows Shell,The Ribbon control,UI animation등은 Com(Component Object Model)을 기반으로 한다. Common Item Dialog는 Com기반으로 구현된 Windows Shell API인데, 구조를 코드로 파헤쳐보고자한다. 간단히 다음 코드를 보자.IFileOpenDialog* pFileOpen;// Common Item Dialog 객체 생성 및 IFileOpenDialog 인터페이스 포인터 획득hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL, IID_IFileOpenDialog, reinterpret_cast..