2010-11-19 2 views
0

Mac OSX에서 브라우저 용 플러그인을 만들려고합니다.CGContext로 전역 (화면, 장치) 좌표를 얻는 방법은 무엇입니까?

브라우저 프로세스에서 CGContext를 얻었습니다.

그래서 그걸 그릴 수 있습니다. 내가 무엇을해야

누군가가 내가 쉽게 투명 창을 만들 수 있지만 그 창 적절한 위치를 이동할 수 있습니다 놀라운 사이트 :

나에게 조언을 이벤트 처리에 대한 창을 만들 수 있습니다.

나는 창 크기를 정확히 알고 있지만 창의 원점을 결정할 수 있습니다.

내가 가진 유일한 것은 CGContextRef입니다.

나는 이것을 시도했다.

NSRect rect = [mywindow frame]; 

CGPoint origin; 
origin.x = rect.origin.x; 
origin.y = rect.origin.y; 

CGPoint globalOrigin = CGContextConvertPointToDeviceSpace(cgContext, origin); 

if (globalOrigin.x != origin.x || globalOrigin.y != origin.y) { 
    NSPoint newPoint; 
    newPoint.x = globalOrigin.x; 
    newPoint.y = globalOrigin.y; 
    [mywindow setFrameOrigin:newPoint]; 
} 

운이 없다. 그것은 내가 준 값을 반환했습니다

어떤 조언이 있습니까?

미리 감사드립니다.

답변

0

NPAPI 플러그인에 포함 된 CGContext는 반드시 어떤 창과도 관련이 없으므로 CGContext에서 화면의 위치로 매핑하는 것은 불가능합니다.

0

smorgan 님의 답변이 맞습니다.

아마도 더 많은 설명이 필요한 사람에게 제 생각을 덧붙일 것입니다.

플러그인 프로세스에는 실제 OS 윈도우가없는 CGContext가 있다고 생각합니다. 브라우저 프로세스는 윈도우가 필요하지만 플러그인 프로세스는 도면 데이터를 브라우저 프로세스로 전송하기 때문에 플러그인 프로세스의 CGContext에는 위치가 없습니다. 메모리 버퍼 일 수도 있습니다.

감사합니다. smorgan.

관련 문제