「glBegin」や「glEnd」などの古い命令はOpenGL3.0で廃止予告され、3.1で廃止された。
しかし「ARB_compatibility拡張」がサポートされていれば、使用可能である
【確認用プログラム例】
#include <iostream>
#include <string>
#include <GL/glut.h>
char *CheckExtentions = "GL_ARB_compatibility";
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutCreateWindow("Check OpenGL");
std::cout << "Vendor :"<<glGetString(GL_VENDOR)<<'\n';
std::cout << "GPU : "<<glGetString(GL_RENDERER) <<'\n';
std::cout << "OpenGL ver. " <<glGetString(GL_VERSION)<<'\n';
const unsigned char *str = glGetString(GL_EXTENSIONS);
std::string ext = (reinterpret_cast<const char *>(str));
std::cout << "\n";
if ( ext.find(CheckExtentions) != std::string::npos){
std::cout << CheckExtentions <<" ...[OK]\n";
}else
{
std::cout <<CheckExtentions << "...[BAD]\n";
}
return 0;
}
【メモ】
拡張がOKならば、glBeginなどの命令が今まで通り使用可能である。