Шаг 17 - ViewPort

В этом шаге мы посмотрим как работает режим сглаживания для точек и разберемся, что же такое viewport.

Сделайте все те же действия, что и в шаге 16, т.е. создайте проект и добавьте в него OpenGL.

Все изменения будут касаться только функции OnDraw. Вот код этой функции:

void CExampleView::OnDraw(CDC* pDC)
{
	CRect clientRect;

	CExampleDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
	GetClientRect(&clientRect);
	glViewport(0, 0, clientRect.right/2, clientRect.bottom/2);

	glClearColor (0.5, 0.5, 0.75, 1.0);	// цвет фона
	glClear (GL_COLOR_BUFFER_BIT);	// очистка буфера цвета
	
	glEnable(GL_POINT_SMOOTH);

	glPointSize (20);			// размер точек
	glColor3f (1.0, 0.0, 0.5);		// текущий цвет примитивов
	glBegin (GL_POINTS);
		glVertex2f (-1, -1);
		glVertex2f (-1, 1);
		glVertex2f (0, 0);
		glVertex2f (1, -1);
		glVertex2f (1, 1);
	glEnd();

	glDisable(GL_POINT_SMOOTH);
}

Здесь следует обратить внимание на команду glEnable(GL_POINT_SMOOTH), которая включает сглаживания для точек и на команду glViewport(...), которая определяет область вывода в окне. Скомпилируйте программку и посмотрите что получилось.

Шпаргалка

  1. создать проект MFC
  2. сделать его OpenGL-ным
  3. в код ф-ции OnDraw добавить команды сглаживания и определения области вывода.

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Kirill V. Ratkin - 22.05.2000