Поделиться через


Функция glPointSize

Функция glPointSize указывает диаметр растрированных точек.

Синтаксис

void WINAPI glPointSize(
   GLfloat size
);

Параметры

size

Диаметр растрированных точек. Значение по умолчанию — 1.0.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_VALUE
размер меньше или равен нулю.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Функция glPointSize определяет растровый диаметр точек с псевдонимами и с антиалиазированных точек. Использование размера точки, отличного от 1,0, имеет различные эффекты в зависимости от того, включено ли сглаживание точек. Сглаживание точек контролируется путем вызова glEnable и glDisable с аргументом GL_POINT_SMOOTH.

Если сглаживание точек отключено, фактический размер определяется округлением предоставленного размера до ближайшего целого числа. (Если округление приводит к значению 0, это так же, как если бы размер точки был 1.) Если округленный размер нечетный, центральная точка (x,y) фрагмента пикселя, представляющего точку, вычисляется как

(xw + .5, yw + .5)

где индексы w указывают координаты окна. Фрагмент составляют все пиксели, лежащие в квадратной сетке округленного размера по центру (x,y). Если размер четный, центральная точка —

(xw + .5, yw + .5)

и центры растрированного фрагмента — это полу целочисленные координаты окна в квадрате округленного размера по центру (x,y). Всем фрагментам пикселей, созданным при растеризации неантиалиасной точки, назначаются одинаковые связанные данные; значение вершины, соответствующей точке.

Если включено сглаживание, то точечная растеризация создает фрагмент для каждого квадрата пикселя, который пересекается с областью, которая находится в окружности с диаметром, равным текущему размеру точки, и центрируется в точках (xw , yw ). Значение покрытия для каждого фрагмента — это область координат окна пересечения круговой области с соответствующим квадратом пикселя. Это значение сохраняется и используется на последнем шаге растеризации. Данные, связанные с каждым фрагментом, — это данные, связанные с растеризуемой точкой.

Если включено сглаживание точек, поддерживаются не все размеры. Если запрашивается неподдерживаемый размер, используется ближайший поддерживаемый размер. Гарантированно поддерживается только размер 1.0; другие зависят от реализации. Диапазон поддерживаемых размеров и разницу между поддерживаемыми размерами в диапазоне можно запросить, вызвав метод glGet с аргументами GL_POINT_SIZE_RANGE и GL_POINT_SIZE_GRANULARITY.

Размер точки, указанный в glPointSize , всегда возвращается при запросе GL_POINT_SIZE. Зажим и округление точек с псевдонимами и сглаживания не влияют на указанное значение.

Размер точки без сглаживание может быть зажат до максимального значения, зависят от реализации. Хотя это максимальное значение не может быть запрошено, оно должно быть не меньше максимального значения для точек с сглаживание, округленное до ближайшего целочисленного значения.

Следующие функции извлекают сведения, связанные с glPointSize:

glGet с аргументом GL_POINT_SIZE

glGet с GL_POINT_SIZE_RANGE аргументов

glGet с аргументом GL_POINT_SIZE_GRANULARITY

glIsEnabled с аргументом GL_POINT_SMOOTH

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glBegin

glEnable

glEnd

glIsEnabled