코어 오픈GL

Core Open

Core OpenGL 또는 CGLOpenGL 사양의 OS X 구현에 대한 Apple Inc.의 Macintosh Quartz 윈도우 시스템 인터페이스입니다.CGL은 OpenGL에 대한 X11 인터페이스인 GLX 및 OpenGL에 대한 Microsoft Windows 인터페이스인 WGL과 유사합니다.

역사

OpenGL에 대한 모든 윈도우 시스템 인터페이스는 Silicon Graphics만의 3D 그래픽 애플리케이션 프로그래밍 인터페이스(API) IrisGL을 현재의 OpenGL 표준 형태로 마이그레이션한 것에서 비롯되었습니다.IrisGL을 오픈 스탠다드로 만들기로 결정했을 때 가장 중요한 설계 변경은 이 그래픽스 표준 API 윈도우 시스템을 독립시키는 것이었습니다.따라서 OpenGL로 이동할 때 IrisGL에서 모든 윈도우 시스템별 로직이 제거되었습니다.윈도우 시스템 로직에는 키보드나 마우스 등의 디바이스에서 입력을 수집하는 이벤트 메커니즘과 최신 윈도우 사용자 인터페이스에 그릴 때 사용되는 윈도우 순서 또는 크기 조정 로직이 포함됩니다.또한 OpenGL을 만들기 위해 IrisGL에서 윈도우 메모리 버퍼의 내부 관리도 모두 제거되었습니다.

OpenGL 윈도우 시스템은 시스템에 구애받지 않기 때문에 Apple과 같은 기업은 OpenGL 렌더링 대상으로 사용되는 표면을 구성하고 관리하는 부담을 떠안아야 합니다.

특징들

윈도 시스템인터페이스

OS X에서 CGL은 OpenGL에 대한 윈도우 시스템인터페이스의 기본 레이어입니다.AGL(Apple Graphics Library)과 Cocoa(API)는 모두 OpenGL에 대한 인터페이스를 가지고 있으며 논리 소프트웨어 레이어이며 동작은 CGL에 의존합니다.CGL과 AGL은 자유롭게 상호 운용할 수 있습니다.CGL과 코코아는 함께 사용할 수 있지만, 코코아 클래스는 암시적으로 CGL 상태를 변경할 수 있다.AGL과 코코아의 기능 호출을 혼재시켜서는 안 됩니다.

이들 표면의 구성은 서로 다른 호환 가능한 렌더링 정보가 조합되어 프레임 버퍼를 형성하는 픽셀 포맷 선택 프로세스를 통해 이루어진다.이러한 레이어의 예로는 컬러 버퍼, 투과 버퍼(알파), 스텐실 버퍼깊이 버퍼가 있습니다.CGL 함수 CGLChoosePixelFormat을 사용하여 이 버퍼 호환성 검사를 수행합니다.CGLChoosePixelFormat은 입력 파라미터와 그 스코어링 정책에 따라 그래픽명령어 처리에 사용되는 기본 렌더러가 지원하는 호환 버퍼 구성을 나타내는 픽셀 형식을 선택합니다.렌더러는 시스템에 설치된 그래픽 카드에 대응하도록 하드웨어 기반일 수도 있고 소프트웨어 기반일 수도 있으며 시스템의 메인 CPU가 모든 그래픽 명령어 처리 및 최종 래스터라이제이션 작업을 처리합니다.

Mac OS X의 이종성 처리

Mac OS X의 경우 CGL은 Macintosh 시스템에서의 그래픽 디바이스 설치 및 구성의 이기종 특성도 처리합니다.Macintosh 컴퓨터에는, 몇개의 디스플레이와 그래픽 카드가 인스톨 되어 있는 경우가 있습니다.이러한 구성에서는, 유저의 데스크탑을 가상화(확장)하거나, 복수의 디스플레이에 미러링 하거나 할 수 있습니다.이 디스플레이는, 같은 그래픽 벤더의 복수의 그래픽 카드에 접속되어 있는 경우가 있습니다.

렌더링 제어

사용자가 가상화된 데스크톱을 사용하도록 Macintosh를 설정하고 창을 한 디스플레이에서 다른 디스플레이로 드래그하면 CGL은 명령어 처리의 일관성을 유지하기 위해 디바이스 간에 음영 처리해야 하는 OpenGL 그래픽 상태 관리를 처리합니다.Macintosh 데스크톱에서 두 개의 다른 렌더러가 지원하는 두 개의 서로 다른 디스플레이 간에 창을 끄는 것을 "가상 화면 변경"이라고 합니다.

또한 CGL은 현재 사용 중인 렌더러에 대한 정보를 얻기 위한 메커니즘도 제공합니다.Mac OS X에서 OpenGL 상태를 유지하는 주요 데이터 구조는 CGLContextObj입니다.이러한 CGL 컨텍스트는 CGLGetCurrentContext 콜을 사용하여 언제든지 취득할 수 있습니다.그 후 CGLContextObj에 관련된 렌더러에 대한 자세한 내용을 조회할 수 있습니다.

소프트웨어 렌더러

또한 애플의 사내 OpenGL 소프트웨어 렌더러도 포함되어 있다.원래는 단순한 정수 패키지였지만 10.3에서는 최종적으로 이를 대체하는 새로운 부동소수점 1이 도입되었습니다.소프트웨어 렌더는 느리지만 기본 어플리케이션에서는 충분히 빠르며 개발 목적으로 OS X의 OpenGL 구현과 함께 2014년 1월 8일 Wayback Machine에서 완전한 기능을 아카이브했습니다.

「 」를 참조해 주세요.

외부 링크