CEGUI

CEGUI
CEGUI
CEGUI example game menu.png
CEGUI를 사용한 게임 메뉴 예시
원저작자폴 D 터너
개발자CEGUI 팀
초기 릴리즈2004년 12월, 17년 전(2004-12)
안정된 릴리스0.8.7(2016년 4월 28일, 6년(2016-04-28)) [±][1]
기입처C++
운영 체제Linux, OS X, Windows
유형위젯 툴킷
면허증.MIT
버전 0.5.0 이전:
GNU LGPL[2]
웹 사이트cegui.org.uk

Crazy Eddie's GUI(CEGUI)는 프로그래밍 언어 C++용 그래픽 사용자 인터페이스(GUI) 라이브러리입니다.비디오 게임의 요구에 맞추어 설계되어 있지만, 애플리케이션이나 툴 등 게임 이외의 태스크에 사용할 수 있습니다.외관상의 유연성과 툴 및 운영체제에서의 사용자 선택에 적합하도록 설계되어 있습니다.

설정 가능성

CEGUI의 강점은 견고성과[3] 구성성입니다.시스템은 파일을 직접 로드하거나 창을 렌더링하거나 텍스트를 직접 표시하거나 시스템에서 입력을 가져오지 않습니다.CEGUI는 특정 컴포넌트와 라이브러리를 사용하기 위한 다수의 모듈이 포함되어 있지만 사용자 정의 코드를 통해 이러한 코드와 인터페이스합니다.

따라서 모든 종류의 자원 관리 시스템 또는 운영 환경에서 CEGUI를 사용할 수 있습니다.입력은 사용자의 코드로 수집되어 사용자가 적합하다고 판단될 때 필터링된 후 CEGUI로 전달되어 윈도우 처리를 해야 합니다.

CEGUI에는 일반적인 위젯 툴킷과 동등한 합리적인 위젯 세트가 포함되어 있습니다.

도구들

CEGUI는 표준 이미지, xml 및 코드 편집 도구를 사용하여 완전히 맞춤화할 수 있습니다.단, CEGUI는 CEGUI 기반의 인터페이스를 설계 및 개발하는 데 도움이 되도록 설계된 도구도 제공합니다.

0.8 이전의 CEGUI 버전에서는 인터페이스의 다양한 측면을 편집하기 위한 별도의 도구가 제공되었습니다.그 중 가장 주목할 만한 것은 Imageset 및 Layout 에디터입니다.

CEGUI 0.8 이후 CEGUI Unified Editor(CEED)라는 새로운 통합 편집 툴이 활발하게 [4]개발되고 있습니다.GUI 개발의 모든 측면을 하나의 툴에 통합합니다.

렌더링

렌더링은 백엔드 렌더링 모듈에 의해 수행됩니다.CEGUI는 Direct3D, OpenGL, OGRE 3D 엔진 및 Irlicht 엔진용 모듈을 제공합니다.다른 모듈은 커스텀엔진용으로 쓸 수 있습니다.

CEGUI의 GUI 컴포넌트는 트리(그래프)[5]로 구성되어 트리 트래버설 순서로 렌더링됩니다.

자원 관리

파일 로드 및 리소스 관리는 백엔드 "자원 공급자 모듈"을 통해 처리됩니다.사용자는 리소스 액세스 방법을 정의하는 커스텀모듈을 생성할 수 있습니다.이를 통해 라이브러리를 거의 모든 운영 환경에서 사용할 수 있습니다.기본 리소스 공급자는 크로스 플랫폼이며 리소스를 로드하기 위한 표준 파일 액세스 메커니즘을 제공합니다.옵션의 미니집 모듈을 사용하면 zip 아카이브에서 리소스를 로드할 수 있습니다.

메모리 관리

CEGUI는 유연한 메모리 관리 시스템을 갖추고 있습니다.이 시스템은 OGRE를 기반으로 하며 클라이언트는 다양한 유형의 할당자를 다른 유형의 개체에 매핑할 수 있습니다.기본적으로 모든 개체는 운영 체제의 기본 할당자를 사용합니다.CEGUI는 OGRE 및 nedmalloc 할당자를 지원합니다.

스크립트 작성

CEGUI에는 옵션의 백엔드 스크립팅 모듈이 있습니다.Lua Python 스크립팅 모듈은 CEGUI에 의해 제공됩니다.완전한 CEGUI Application Programming Interface(API; 응용 프로그램프로그래밍 인터페이스)를 스크립트를 통해 사용할 수 있으므로 클라이언트는 스크립트 환경 내에서 창 작성, 관계 정의 및 이벤트 처리를 모두 수행할 수 있습니다.

룩앤필

CEGUI는 다양한 위젯의 모양과 느낌을 정의하는 강력한 시스템을 갖추고 있습니다.Falagard라는 이름의 이 시스템에서는 XML 파일 또는 C++ 코드를 통해 위젯 모양을 정의할 수 있습니다.또한 위젯의 레이아웃 동작을 변경할 수도 있습니다.

애니매이션

CEGUI에는 애니메이션 시스템이 내장되어 있습니다.이 시스템은 윈도우 이동 및 크기 조정에서 색상 변환 및 이미지 시퀀싱에 이르기까지 많은 표준 전환 효과를 제공합니다.애니메이션은 XML로 정의할 수 있으며 모든 이벤트에 의해 트리거될 수 있습니다.클라이언트는 window 속성을 키 프레임으로 지정할 수 있으며 프레임 간의 이행 방법 및 프레임 간의 이행 시간을 지정할 수 있습니다.

유니코드

CEGUI는 Unicode를 지원하며 옵션의 백엔드 Bidi 모듈을 통해 양방향 언어를 지원합니다.이 지원은 MiniBidi 또는 FriBidi에서 제공됩니다.

라이브러리 의존 관계

CEGUI는 외부 라이브러리에 의존하지 않고 구축할 수 있습니다.단, 일반적인 구성에서는 FreeType, 렌더링 모듈, XML 파서 모듈 및 이미지 코덱모듈이 필요합니다.CEGUI는 모듈러 설계 덕분에 이미 몇 가지 외부 라이브러리를 지원하고 있습니다.

CEGUI에서 지원되는 외부 라이브러리
유형 이름. 추가 정보
렌더링 모듈 OpenGL 3.2+ 코어 프로파일 프로그래밍 가능한 렌더링 파이프라인과 사용되지 않는 기능만 사용하기 때문에 OpenGL Core Profile 컨텍스트(OpenGL 3.2 이후 사용 가능)와 호환됩니다.필요한 기능을 사용할 수 있는 한 이전 버전의 OpenGL 및/또는 호환성 프로파일에서도 사용할 수 있습니다.
오픈GL 고정 함수 렌더링 파이프라인을 사용합니다.일부 OpenGL 확장을 사용하여 OpenGL 1.2의 초기 OpenGL 버전과 호환되도록 설계되었습니다.
Microsoft Direct3d Microsoft Direct3D 9, 10, 및 11은 개별 모듈을 사용하여 지원됩니다.
오그레 최신의 안정된 Ogre 버전은, 릴리스로 서포트되고 있습니다.
이르리히트 엔진 최신 안정적인 Irlicht 버전은 릴리즈에서 지원됩니다.
이미지 코덱모듈 심플한 이미지 로드 라이브러리 (SILY) SOLY 라이브러리에 기반한 기본 이미지 코덱.다양한 [6]형식을 지원합니다.
개발 DevIL 라이브러리에 근거한 이미지 코덱.
프리 이미지 FreeImage 라이브러리를 기반으로 하는 이미지 코덱.
오그레 OGRE의 이미지 로드 기능을 통해 데이터를 로드하는 이미지 코덱.
자원 제공자 모듈 체납 CEGUI 내부 자원 공급자는 추가 모듈을 필요로 하지 않고 사용할 수 있습니다.표준 크로스 플랫폼 파일 액세스를 사용합니다.
오그레 Ogre 사용자는 CEGUI의 Ogre Resource Manager를 사용할 수 있습니다.이렇게 하면 Ogre 리소스에 대해 이미 수행한 것과 동일한 방법으로 CEGUI의 리소스 위치를 지정할 수 있습니다.
미니칩 CEGUI의 Minizip Resource Provider를 사용하면 .zip 파일 내의 위치에서 리소스 파일을 로드할 수 있습니다.
XML 파서 모듈 Expat(익스팟) CEGUI 기본 XML 파서XML 해석에 Expat 라이브러리를 사용합니다.
LibXML2 XML 해석에 LibXML2 라이브러리를 사용합니다.
RapidXml XML 해석에 RapidXml 라이브러리를 사용합니다.
TinyXML XML 해석에 TinyXML 라이브러리를 사용합니다.
Xerces-C++ XML 해석에 Xerces-C++ 라이브러리를 사용합니다.CEGUI의 리소스에 제공된 .xsd 파일을 사용하여 스키마를 검증할 수 있습니다.
글꼴 모듈 프리타입 FreeType은 CEGUI의 기본 글꼴 라이브러리이며 현재 공식적으로 지원되는 유일한 라이브러리입니다.
정규 표현 모듈 Perl 호환 정규 표현(PCRE) 기본 정규 표현 라이브러리로 현재 공식적으로 지원되는 유일한 라이브러리입니다.PCRE 를 사용합니다.
스크립트 모듈 루아 tolua++를 사용하여 lua 바인딩을 제공합니다.
파이썬 PyCEGUI를 사용하여[7] PyCEGUI 공식 바인딩을 사용할 수 있습니다.
메모리 관리 오그레 Ogre의 메모리 할당기는 옵션으로 CEGUI의 메모리 관리에 사용할 수 있습니다.
네드모록 nedmalloc은 메모리 할당자로 사용할 수도 있습니다.
양방향 언어 모듈 미니비디 CEGUI의 Bidi 비주얼 매핑의 MiniBIDI 기반 구현.
프라이비디[8] CEGUI의 Bidi 비주얼 매핑의 FriBIDI 기반 구현.

Ogre3D 라이브러리는 UI를[9] CEGUI 라이브러리에 의존했지만 Ogre3D는 그 이후 자체 UI 솔루션을 포함하도록 바뀌었습니다.이 솔루션은 슬림하지만 기능도 낮습니다.

릴리스 이력

버전 발매일
0.1.0 2004-12-19[10]
0.1.1 2005-01-23
0.2.0 2005-02-17
0.2.1 2005-05-30
0.3.0 2005-06-30
0.4.0 2005-09-07
0.4.1 2005-11-26
0.5.0 2006-11-06
0.6.0 2008-03-27
0.6.2 2008-12-03
0.7.0 2009-09-20
0.7.1 2009-10-26
0.7.2 2010-08-29
0.7.3 2010-10-08
0.7.4 2010-10-11
0.7.5 2010-11-20
0.7.6 2012-01-22
0.7.7 2012-06-23
0.7.8 2013-01-08
0.7.9 2013-01-13
0.8.0 2013-05-26
0.8.1 2013-06-05
0.8.2 2013-06-12
0.8.3 2013-12-07
0.8.4 2014-07-07
0.8.5 2016-03-12

「 」를 참조해 주세요.

레퍼런스

  1. ^ http://cegui.org.uk/download/cegui-087
  2. ^ "Simple DirectMedia Layer - License".
  3. ^ MacDonald, Mickey (29 January 2018). Mastering C++ game development : create professional and realistic 3D games using C++ 17. Birmingham, UK. ISBN 978-1-78862-983-6. OCLC 1023864109.
  4. ^ CEED
  5. ^ Pervasive computing and the networked world : Joint International Conference, ICPCA/SWS 2012, Istanbul, Turkey, November 28-30, 2012, Revised selected papers. Zu, Qiaohong., Hu, Bo., Elçi, Atilla., IEEE Symposium on Web Society (2012 : Istanbul, Turkey). Berlin: Springer. 2013. ISBN 978-3-642-37015-1. OCLC 830532405.{{cite book}}: CS1 유지보수: 기타 (링크)
  6. ^ "SILLY - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)".
  7. ^ "PyCEGUI - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)".
  8. ^ "Home". fribidi.org.
  9. ^ Thorn, Alan. (2008). Cross-platform game development. Plano, Tex.: Wordware Pub. ISBN 978-1-59822-056-8. OCLC 213408662.
  10. ^ "Crazy Eddies GUI System (CEGUI) - Browse /CEGUI Mk-2/0.1.0 at SourceForge.net".

외부 링크