2012-04-23 5 views
3

"검은 색 배경"영역이 없지만 대신 열려있는 다른 창까지 볼 수있는 창을 만들고 싶습니다.투명한 배경을 가진 LWJGL 창?

즉, 장면과 장면 만 렌더링하고, 프레임이없고 배경 영역이 남지 않습니다.

나는 숨겨진 OpenGL 윈도우에 렌더링하고 그것을 메모리에 버퍼링하고, 투명 레이어드 윈도우를 만들고, 메모리에서 투명 윈도우로 복사하는 방법에 대해 읽었습니다.

분명히 이것은 매우 CPU/메모리 집약적 인 것이므로 Java와 LWJGL에서 더 좋은 방법이 있는지 궁금합니다.

답변

2

이는 플랫폼 관련 코드로만 수행 할 수 있습니다.

This thread은 주제에 대해 흥미로운 토론을 제공합니다. This post은 Windows에서이 효과를 얻는 코드 과 Linux에서는 this post입니다.

+0

그래, 구글을 통해, 그 방법은 매우 CPU 집약적 인 말을하는 것으로 나타났습니다. 그것은 Windows에서 이것을 수행하는 유일한 방법 일 수 있습니까? – nighthawk454

+0

예, 불행히도 GPU에서 처리되는 모든 프레임을 RAM에 복사 한 다음 화면에 그리면 투명한 창 효과가 나타납니다. 그리고 이것은 이런 유형의 병목입니다. 당신이 그것에 대해 생각한다면, 빠른 수행이 불가능하기 때문에 이것을 정확하게 수행하는 상용 응용 프로그램이 많이 없습니다. – karlphillip

+0

아, 그게 내가 두려웠 던 것입니다. OS 작가가 지금 쯤에 있어야 할 것 같은데? 설명 주셔서 감사합니다! – nighthawk454

2

"OS/창 관리자/not-you-department"가 다른 창을 소유하기 때문에 이는 OS마다 다릅니다.

Windows에서 OpenGL은 이러한 종류의 합성 작업에 참여할 수 없습니다. 다른 OS가 허용 할 수도 있습니다.

+0

이 링크를 제공해주십시오. 어쨌든 표면을 바탕 화면 합성에 통합해야합니다. Windows의 OpenGL 앱은 어떻게 든 'DWM'을 무시하고 하위 시스템 계층을 사용합니까? 아니면 [DWF for WPF apps] (http://blogs.msdn.com/b/greg_schechter/archive/2006/06/09/623566.aspx)입니까? –

관련 문제