IDL/Direct Graphics

Mac OS X Lion에서 TVRD 사용시 에러 해결방법

이상우_IDL 2011. 11. 21. 15:35
728x90

Mac의 최신 OS인 Lion이 아직까지(8.1버전 현재) IDL의 공식 지원 OS가 아니라는 것은 지난번에 언급을 한 바 있습니다. 물론 사용은 가능하지만, 간혹 예기치못한 문제들이 몇몇 있는데 지금 언급하려는 것도 그 중 하나입니다. 그래픽 윈도우상에 그려진 내용을 캡쳐하기 위하여 TVRD라는 함수를 쓰는데, OS X Lion에서는 이를 사용할 때 발생하는 문제가 있습니다. 다음과 같이 간단하게 플롯을 하나 그리고 이 화면을 캡쳐한다고 합시다.


WINDOW

PLOT, INDGEN(100)

im = TVRD()


이렇게 하면 캡쳐가 제대로 안되고 다음과 같은 오류메시지가 여러 줄에 걸쳐 나옵니다.


% X windows protocol error: BadMatch (invalid parameter attributes).

% X windows protocol error: BadMatch (invalid parameter attributes).

% X windows protocol error: BadMatch (invalid parameter attributes).

..................................


원인이야 뭔가 구구절절 있겠지만, 다행히도 해결방법은 간단합니다. 다음과 같이 처음에 윈도우를 생성할 때 RETAIN이란 속성에 2라는 값을 부여하면 됩니다.


WINDOW, RETAIN=2

PLOT, INDGEN(100)

im = TVRD()


아니면 작업을 시작하기에 앞서 아예 DEVICE 명령에서 이러한 설정을 해줘도 됩니다.

DEVICE, RETAIN=2

어쨌든 이와 같이 해주면 오류없이 TVRD 함수를 제대로 사용할 수 있습니다. 해결책이 간단하다고 해서 이 문제가 계속 지속되어도 괜찮을 수는 없겠지요. 다음 버전에서는 OS X Lion을 공식지원하면서 이러한 문제도 당연히 해결될 것으로 기대합니다.

LIST