glLineStipple - вказує шаблон для пунктирної лінії.
C-специфікація
void glLineStipple (GLint factor, GLushort pattern) ;
Параметри
factor вказує множник для кожного біту шаблону пунктири лінії. Якщо параметр factor містить значення 3, наприклад, кожен біт шаблону використовується три рази перед використанням наступного біту у шаблоні. Параметр factor обрізається до проміжку [1, 256] і має значення за умовчанням 1.
pattern вказує 16-ти бітне ціле число, бітовий шаблон якого визначає які фрагменти ліній будуть намальованими під час растеризації. Біт нуля використовується першим; значення за умовчанням - усі біти встановлені у значення одиниці.
Опис
Пунктир маскує певні фрагменти, які створюються растеризацією; дані фрагменти не будуть намальованими. Маскування отримується використанням трьох шаблонів: 16-бітний шаблон пунктиру в параметрі pattern, множник повторення в параметрі factor, і цілочисельний обрахунок пунктиру в параметрі s.
Обрахунок s встановлюється у значення 0 кожного разу під час виклику функції glBegin і перед кожним сегментом лінії між парами glBegin(GL_LINES)/glEnd. Він інкрементується після кожної генерації фрагменту одиничної ширини або після генерації кожного i-го фрагменту i-го сегменту лінії. Фрагменти i асоційовані з кількістю s маскуються якщо:
pattern bit (s/factor) % 16
являється 0, в іншому випадку ці фрагменти надсилаються до буфера кадру. Нульовий біт з параметра pattern являється менш важливим бітом.
Згладжені лінії трактуються у якості послідовності 1 × width прямокутників для цілей пунктирування. Растеризування прямокутника s залежить від правила описаного для не згладжених ліній, обчислюючи прямокутники на противагу групи фрагментів.
Для увімкнення чи вимкнення пунктирування ліній, викликайте glEnable і glDisable з аргументом GL_LINE_STIPPLE. Якщо увімкнено, шаблон пунктирування застосовується як описано вище. Якщо вимкнено, система поводить себе так ніби усі біти з шаблону містять одиниці. За умовчанням, пунктирування ліній вимкнено.
Помилки
GL_INVALID_OPERATION генерується якщо функція glLineStipple виконується між відповідними викликами функцій glBegin і glEnd.
Пов'язані параметри
glGet з аргументом GL_LINE_STIPPLE_PATTERN
glGet з аргументом GL_LINE_STIPPLE_REPEAT
glIsEnabled з аргументом GL_LINE_STIPPLE
Перегляньте також
glLineWidth, glPolygonStipple
Оригінал
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glLineStipple.xml