glXCreateNewContext - вказуж новий контекст малювання GLX.

C-специфікація

GLXContext glXCreateNewContext (Display * dpy,
                                GLXFBConfig config,
                                int render_type,
                                GLXContext share_list,
                                Bool direct) ;

 

Параметри

dpy вказує підключення до X-сервера.

config вказує структуру GLXFBConfig з бажаними параметрами для контексту.

render_type вказує тип контексту, який необхідно створити. Повинен містити одне з значень GLX_RGBA_TYPE або GLX_COLOR_INDEX_TYPE.

share_list вказує контекст з яким необхідно розподіляти списки відтворення. Значення NULL вказує, що буде відбуватися жодне розподілення.

direct вказує чи малювання повино виконуватися за допомогою прямого підключення до графічної системи, якщо можливо (значення True) або через X-сервер (значення False).

Опис

Функція glXCreateNewContext створює контекст малювання GLX і повертає його обробник. Цей контекс може використовуватися для малювання у вікна GLX, карти пікселів або піксельні буфери. Якщо glXCreateNewContext провалюється у створенні нового контексту малювання, повертається значення NULL.

Якщо render_type містить значення GLX_RGBA_TYPE, тоді створюється контекст, який підтримує RGBA-малювання. Якщо параметр config являється GLX_COLOR_INDEX_TYPE, тоді створюється контекст, який підримує колір-індексне малювання.

Якщо параметр render_type не містить значення NULL, тоді усі індекси списків відтворення і визначення розподіляються між контекстом render_type і новим створеним контекстом. Довільне число контекстів може розподіляти один простір списків відтворення. Однак, усі контексти малювання, які розподіляють один простір списків відтворення повинні самі існувати в одному адресному просторі. Два контексти малювання розділяють адресний простір, якщо непрямо абидва використовують один сервер, або прямо, якщо обидва містяться у одному процесі. Зверніть увагу, що у випадку непрямої ситуації, не потребується для потоків, які викликають функцію, розділяти один адресний простір, тільки їхні відповідні контексти малювання повинні міститися в одному адресному просторі.

Якщо direct містить значення True, тоді створюється прямий контекст малювання, якщо реалізація підтримує безпосереднє малювання, якщо підключення є до X-сервера розміщого локально, і якщо доступний контекст безпосереднього малювання (реалізації можуть повертати опосередкований контекст коли direct містить значення True). Якщо direct містить значення False, тоді завжди створюється контекст малювання, який малює за допомогою X-сервера. Безпосереднє малювання забезпечує перевагу у ефективності на деяких реалізаціях. Одник, контексти безпосереднього малювання не можуть розподілятися ззовні одного процесу, і вони будуть не вспромозі малювати до карт пікселів GLX.

Нотатки

Функція glXCreateNewContext доступна якщо версія GLX являється 1.3 або вище.

Якщо версія GLX являється 1.1 або 1.0, версія OpenGL повинна бути 1.0. Якщо версія GLX являється 1.2, тоді версія OpenGL повинна бути 1.1. Якщо GLX має версію 1.3, тоді версія OpenGL повинна бути 1.2.

Помилки

NULL повертається якщо виклик завершується невдало на клієнтській стороні.

GLXBadContext генерується якщо render_type не являється контекстом GLX і не містить значення NULL.

GLXBadFBConfig генерується якщо config не являється коректним GLXFBConfig.

BadMatch генерується якщо контекст, який створється не буде розподіляти один адресний простір або екран контексту вказаний у render_type.

BadAlloc генерується якщо контекст, який потрібно створити не буде розділяти адресний простір або екран контексту вказаного у render_type.

BadAlloc генерується якщо сервер не має достатньо ресурсів для створення нового контексту.

BadValue генерується якщо параметр config не являється коректним візуальним елементом (наприклад, якщо певна реалізація GLX не підтримує її).

Перегляньте також

glXChooseFBConfig, glXCreateContext, glXDestroyContext, glXGetFBConfigs, glXGetFBConfigAttrib, glXIsDirect, glXMakeContextCurrent

Оригінал

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glXCreateNewContext.xml