본문 바로가기

DEV life/DEV.mobile

midp2.0 on WIPI2.0?


스펙상, WIPI 2.0은 midp2.0 API를 포함합니다.

따라서 midp2.0의 API는 소스레벨에서 정상적으로 컴파일되며 또한 거의 대부분의 경우 정상적으로 동작하는 것으로 보여집니다. 하지만 motive 센터의 Q&A를 읽어보면 100% 보장하지 않는 늬앙스를 느낄 수 있습니다.

실제로 정상적으로 컴파일되었음에도 불구하고 midp 상에서의 결과와 WIPI 상에서의 결과가 일치하지 않는 경우를 경험했습니다. 그것은 바로 Graphics.drawRGB() 메소드의 용례에서 찾을 수 있었습니다.

drawRGB() 메소드는 4444 ARGB 포맷의 픽셀 데이타를 담은 int[] rgbData를 지정한 좌표에 뿌려주는 메소드입니다. 이 메소드를 WIPI2.0 에서 사용할 경우, rgbData를 찍을 좌표쌍 (x, y) 둘 중 어느 것 하나가 음수일 경우 exception이 발생합니다. 아마도, 이것은 어디까지나 제 추측인데, midp API인 drawRGB()를 WIPI 의 low-level에서 구현할 때, getRGBpixels, setRGBpixels 와 같은 내부 처리가 사용되는 듯 합니다. 즉 이전 포스트에서 생긴 문제점이 고스란히 midp의 drawRGB() API를 처리하는데 똑같이 나타나는 것이죠.