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