Народный учебник по OpenGL


Урок 22. Наложение микрорельефа - часть 7


  int len=strlen(extensions);

  for (int i=0; i<len; i++) // Разделим ее символами новой строки вместо пробелов

    if (extensions[i]==' ') extensions[i]='\n';

 

#ifdef EXT_INFO

  MessageBox(hWnd,extensions,"поддерживаются расширения GL:",MB_OK | MB_ICONINFORMATION);

#endif

 

  if (isInString(extensions,"GL_ARB_multitexture") // Мультитекстурирование поддерживается?

    && __ARB_ENABLE  // Проверим флаг

    // Поддерживается среда комбинирования текстур?

    && isInString(extensions,"GL_EXT_texture_env_combine"))

  {      

    glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB,&maxTexelUnits);

    glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC) wglGetProcAddress("glMultiTexCoord1fARB");

    glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC) wglGetProcAddress("glMultiTexCoord2fARB");

    glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC) wglGetProcAddress("glMultiTexCoord3fARB");

    glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC) wglGetProcAddress("glMultiTexCoord4fARB");

    glActiveTextureARB   = (PFNGLACTIVETEXTUREARBPROC) wglGetProcAddress("glActiveTextureARB");

    glClientActiveTextureARB= (PFNGLCLIENTACTIVETEXTUREARBPROC) wglGetProcAddress("glClientActiveTextureARB");

              

#ifdef EXT_INFO

    MessageBox(hWnd,"Будет использовано расширение GL_ARB_multitexture.",

     "опция поддерживается!",MB_OK | MB_ICONINFORMATION);

#endif

 

    return true;

  }

  useMultitexture=false;// Невозможно использовать то, что не поддерживается аппаратурой

  return false;

}

 

InitLights() инициализирует освещение OpenGL, будучи вызвана позже из InitGL().

 

void initLights(void) {

        // Загрузка параметров освещения в GL_LIGHT1

        glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient);




- Начало -  - Назад -  - Вперед -



Книжный магазин