2012-03-04 3 views
0

몇 가지 크로스 플랫폼 GUI 라이브러리 (예 : FLTK, wxWidgets, GTK ++)를 사용해 왔지만 아무 것도하지 않아도 같은 느낌을주는 무언가를 만들고 싶습니다. 플랫폼의 기본 외관을 가지고 있지 않은 GUI 구축에 반대하는 사람들이있을 것이라는 것을 이해합니다.하지만 여기에서는 문제가 아닙니다. 는 크로스 플랫폼 GUI - 렌더링 프로세스

그래서 나는 그것을 시도 줄하기로 결정 ... 난 보통 라이브러리에서 제공하는 기본 모양에 의존 & 바인딩 모든 것을 함께 코딩 길을 만들어 내 컨트롤을 구축하고 (2D GUI 프로그래밍에 대한 몇 가지의 OpenGL을 수행하려면 이 점을 염두에두고 wxWidgets & FLTK를 사용하여 작성한 응용 프로그램의 평균 RAM 사용량은 1/2MB 인 반면 매우 기본적인 OpenGL 창은 간단한 배경 범위는 6에서 9 MB입니다.

이 스레드에 대한 실제 질문이 있습니다. 나는 모든 화면 렌더링이 opengl/direct (under t 그는 커버).

누군가 제게 설명하거나 제게 이런 것들이 실제로 어떻게 작동하는지에 대한 통찰력을 줄 수있는 일종의 기사를 연결해 주시겠습니까?

읽어 주셔서 감사합니다.

+0

[Qt] (http://stackoverflow.com/tags/qt/info)? 그것은 프레임 워크보다는 라이프 스타일이 더 많습니다 :) –

+1

FLTK *는 플랫폼과 상관없이 동일하게 보입니다. 특정 플랫폼 대신 특정 구성표를 사용하도록 지정해야합니다. –

답변

0

이러한 다중 플랫폼 툴킷은 일반적으로 도면을 처리하는 많은 백엔드를 지원합니다. 일부 툴킷은 OpenGL을 백엔드로 지원하지만 기본값은 일반적으로 "기본"백엔드입니다.

예. Qt. Windows에서는 기본 백엔드를 그리기 위해 GDI를 사용합니다. 리눅스에서는 XRender를 사용한다고 생각합니다. Symbian과 Mac에서 동일합니다. Qt는 자체 소프트웨어 래스터 라이저도 가지고 있습니다. 물론 OpenGL 백엔드가 있습니다.

왜 이러한 GUI 툴킷 중 일부를 사용하는 응용 프로그램은 간단한 OpenGL 응용 프로그램보다 적은 메모리를 사용할 수 있습니까? 툴킷이 "네이티브"백엔드를 사용한다면 모든 보이는 GUI가 동일한 드로잉 API를 사용할 가능성이 높기 때문에 모든 것이 이미 메모리에로드되어 있습니다. 네이티브 API는 모든 응용 프로그램이 그릴 수있는 전체 화면을 나타내는 하나의 버퍼 만 사용할 수도 있습니다.

그러나 OpenGL을 사용하는 경우 응용 프로그램 창을 나타내는 자체 버퍼가 있습니다. OpenGL 응용 프로그램에는 일반적으로 2D 도면에 필수적이지 않은 z 버퍼, 스텐실 버퍼, 백 버퍼와 같은 여러 프레임 버퍼가 있지만 그래픽 카드 메모리의 공간 일지라도 약간의 공간이 필요합니다. 마지막으로 OpenGL을 사용할 때 필요한 라이브러리가 아직로드되지 않은 것일 수 있습니다.

+0

설명 주셔서 감사합니다. – user1248351

0

귀하의 질문은 입니다. 매우 모호합니다. 그러나 GL 응용 프로그램이 기본 GUI 창보다 많은 메모리를 차지하는 이유에 대해 묻고있는 것처럼 보입니다.

OpenGL 응용 프로그램이기 때문입니다. 즉, OpenGL을 작동시키는 데 필요한 모든 기계류를 저장해야합니다. 그것은 엄청난 크기의 프레임 버퍼가 필요하다는 것을 의미합니다. 즉, 백 버퍼, z 버퍼 등입니다. 기능을 수행하려면 많은 상용구가 필요합니다.

정말, 걱정하지 않겠습니다. 모든 응용 프로그램이하는 일입니다.

관련 문제