데스크탑 zoom in 기능에 관련해서...
안녕하세요,
전 아치리눅스를 메인으로 쓰고있는데, compiz- zoom in을 상당히 자주하는편입니다. 아주 그냥 시도때도 없이하지요 ^^;
그러다 생각난건데, 앞으로는 데스크탑 화면 랜더링 방식이 고정픽셀수 캔버스에서 벗어나야 할 것 같습니다.
무슨말이냐하면, zoom in을 하게 되면 픽셀 하나하나가 커지는만큼 깍두기처럼 보이겠지요 ^^;
하지만 zoom in 한것에 맞추어서 해상도를 그 부분만 높여 다시 그려주면 zoom in을 해도 깔끔하겠지요?
이를 구현하는 방법은 두가지정도가 생각나는데,
하나는 zoom in을 이벤트로 만들어서 어플리케이션에서 이벤트를 받아서 처리하고 랜더링한 화면을 돌려주게 하는것입니다.
아주 안좋은 방법인데.. 왜냐하면,,
어플리케이션마다 따로따로 기능을 만들어야 하기 때문에 손이 훨씬 많이 갈 뿐만 아니라, 실질적으로 저걸 코딩하는 개발자가 몇이나 될까 싶습니다.
결국 특수한 경우를 빼고는(그래픽툴(잉크스케이프등) 같은 zoom in을 하면서 작업을 하는 경우) 아무도 사용 안하게 될것입니다.
두번째 방법은 Xlib 단에서 처리하는겁니다. 무슨말이냐면, 어떤 GUI 프로그램(GTK,QT,등)을 사용하던 결국엔 Xlib함수들을 호출하게 될것입니다.
예)
XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
XDrawString(d, w, DefaultGC(d, s), 50, 50, msg, strlen(msg));
Xlib단까지 들어가도, 실질적으로 그리는 방식은 거의 벡터드로잉입니다.
따라서 Xlib단에서 적절히 처리만 해주면, 특정 부분만 다른 해상도로 랜더링하고.. 그런게 충분히 가능합니다.
솔찍히 구현비용에 대해 실용성은 얼마나 될까 의문이 들긴 합니다만, zoom in을 해서 텍스트를 많이 읽는 저로써는 무지 좋을 것 같구요,
다른 응용들도 생각해 볼 수 있겠네요 예를들자면.. 고해상도 프린트용 데스크탑 스크린샷??