在VC中使用opengles,首先要把它和DC关联起来。
void MyGles::InitOpengl(HWND hwnd)
{
HDC hdc = GetDC(hwnd);
glesDisplay = eglGetDisplay(hdc);// 得到显示平面
eglInitialize(glesDisplay,NULL,NULL);
const EGLint attrib_list[] = //属性列表
{
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_DEPTH_SIZE, 16,
EGL_STENCIL_SIZE, EGL_DONT_CARE,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_NONE, EGL_NONE
};
EGLConfig configs[10];//用来返回配置
int configsSize = 10; //我们要个
int numConfig; //返回的实际可使用的大小
eglChooseConfig(glesDisplay,attrib_list,configs,10,&numConfig);//配置选择
if(numConfig<1)
return ;
glesSurface = eglCreateWindowSurface(glesDisplay,configs[0],hwnd,attrib_list);//创建surface
if(!glesSurface)
return ;
//创建状态机
glesContext = eglCreateContext(glesDisplay,configs[0],EGL_NO_CONTEXT,attrib_list);
//set当前状态机
eglMakeCurrent(glesDisplay,glesSurface,glesSurface,glesContext);
}
attrib_list的参数对不同的设备会有所不同,具体如何配置还没清楚