C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 2 - Линия 2D / Open GL / Графика

Шаг 2 - Линия 2D

Создание проекта

Проект нам очень подходит старый.

Создаем код

#include "afxwin.h"
#include "GL/gl.h"
#include "GL/glu.h"
#include "GL/glaux.h"

void CALLBACK display(void); 

int main(int argc, char** argv)
{
	auxInitDisplayMode (AUX_SINGLE | AUX_RGB);
	auxInitPosition (0, 0, 500, 500);
	auxInitWindow ("Step1");
	auxMainLoop(display);
	return 0;
}

void CALLBACK display(void)
{
	glBegin(GL_LINES); 
	glVertex2f (0,0); 
	glVertex2f (100,100); 
	glEnd();
	glFlush();
}

Описание

У нас добавилась функция auxMainLoop. Эта функция вызывает другую функцию для прокрутки команд OpenGL. Эта функция должна пользоваться передачей параметров типа FAR PASCAL. Передача параметров происходит через стек, а Pascal и C, передают параметры в разной последовательности. Так вот эта процедура должна передовать параметры как PASCAL.

void CALLBACK display(void); == void FAR PASCAL display(void); == void __stdcall display(void); == void WINAPI display(void); . Данный тип вызовов установлен для всех типов API.

Любая последовательность команд по рисованию , это рисовка по вершинам. Вершины определяються от glBegin(тип) до glEnd(). Между этими командам устанавливаются вершины функцией glVertex2f(x,y) для 2D точек.

glFlush() Прорисовывает экран. Без этой команды вы нечего не увидете. Попробуйте.


Шпаргалка

Создайте функцию для рисования:

void CALLBACK display(void); 

Вызовите её:

auxMainLoop(display);

Начинайте рисовать и заканчивайте так:

glBegin(GL_LINES); 
	//......
glEnd();

Прорисуйте изображение:

glFlush();

| |
Автор Каев Артем.
[AD]