2013-12-19 5 views
2

OpenGL 4를 지원하는 그래픽 카드 드라이버가 업데이트되어 glBegin과 같은 사용되지 않는 기능이 작동하지 않습니다. 그러나, 간단한 삼각형 프로그램을 실행하면 glBegin은 이전과 같이 작동합니다. glBegin은 여전히 ​​OpenGL 4에서 지원됩니까? 아니면 OpenGL 4로 업그레이드하는 단계를 놓쳤습니까?OpenGL 버전에 대해 혼란 스럽습니다.

답변

5

OpenGL 4.x를 지원하는 드라이버를 사용한다고해서 이전 버전의 기능이 손실되지는 않습니다. OpenGL 3.2부터는 코어의 호환성 프로파일이 도입되었으며, 현대와 비추천의 분리가 실제로 이루어집니다.

코어 프로필에서 언급 한 내용이 glBegin과 같이 유효하지 않습니다. 그러나 호환성 프로필에서는 API의 지원 중단 된 부분을 새 부분으로 계속해서 혼합 할 수 있습니다. 대다수의 새로운 기능이 GLSL 및 프로그래밍 가능한 파이프 라인과 관련되어 있기 때문에 대부분의 새로운 OpenGL 기능은 API의 지원되지 않는 부분과 함께 작동하지 않을 수 있습니다.

Mac OS X과 같은 플랫폼에 대해 이야기 할 때 좀 더 복잡해집니다. OS X 10.7부터 Apple은 OpenGL 3.2를 지원하기 시작했습니다. 그러나 그들은 OpenGL 3.2 기능에 액세스하는 방법은 코어 프로필을 얻을 수있는 방법으로 구현을 설계했습니다. 그들은 기존의 OpenGL 2.1 구현을 계속 지원하여 이전 소프트웨어를 다시 작성하지 않아도되지만 OS X의 OpenGL 3.2 이상의 기능을 사용하려면 사용되지 않는 모든 기능을 사용해야합니다. 당신이 실제로 코어 프로필을 얻기 위해 컨텍스트를 만드는 동안 추가 작업을 수행 할 수 있도록


는 사실, 플랫폼은 일반적으로 설계되었습니다. 코어을 구체적으로 요청한 경우가 아니면 호환성 (또는 OpenGL 2.1 구현 인 OS X의 경우)이 표시됩니다. 기존의 소프트웨어에서 가능한 모든 기능을 사용할 수 없게 만드는 방법입니다.

2

"권장되지 않음"은 반드시 "작동하지 않음"을 의미하는 것은 아니며, "표준에서 그렇게 말하면 사용할 수 없습니다"라는 의미는 공급 업체가 하드웨어와 함께 판매하고자하는 것을 자유롭게 구현할 수 있다는 의미입니다. 많은 브랜드는 여전히 자사의 라이브러리에서 더 이상 사용되지 않는 OpenGL 컨텍스트와 함수를 제공합니다.

관련 문제