Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2009, 21:06   #1
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
Печаль OpenGL

Уважаемые прорамисты,начал изучать OpenGL написал маленький пример из книги и попытался скомпилировать,но не получилось( указывает на #include <GL/glut.h>


Помогите пожалуйста,подскажите что не так...(

Вот пример из книги :

Код:
#include <windows.h>
#include <GL/glut.h>
#include <GL/glu.h>
#include <GL/gl.h>

//-------------------

void RenderScene()

{
   glClear(GL_COLOR_BUFFER_BIT);
   glFlush();      
}

void SetupRC()

{
    glClearColor(0.0f,0.0f,1.0f,1.0f); 
}

int main()

{
     
     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
     glutCreateWindow("GLRect");
     glutDisplayFunc(RenderScene);
     SetupRC();
     glutMainLoop();
     
}
Paul_AG вне форума Ответить с цитированием
Старый 13.09.2009, 17:21   #2
DarkElf_89
Пользователь
 
Регистрация: 05.09.2009
Сообщений: 22
По умолчанию

Привет. Насколько я знаю, GLUT это сторонняя библиотека, и следовательно ее надо скачать самому и подключить ... Могу предположить что у тебя компилятор как раз не находит заголочный файл от нее. Ты на чем пишешь - на VS или Builder ? Если нужно, то могу написать простейший пример Opengl, с использованием стандартных средств ... Вообще, если будут вопросы по opengl - обращайся, сейчас пишу движок на нем, так что опыт кое - какой имеется ...)
DarkElf_89 вне форума Ответить с цитированием
Старый 13.09.2009, 17:59   #3
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Спасибо большое за помощь)))Если не сложно покажи,буду очень признателен.Пишу на VS 2005.Библиотеку glut я скачал.Добавил в
glut.h - Include
glut.lib lib
glut.dll system
Но все равно возникает ошибка(
Paul_AG вне форума Ответить с цитированием
Старый 13.09.2009, 19:06   #4
DarkElf_89
Пользователь
 
Регистрация: 05.09.2009
Сообщений: 22
По умолчанию

Вот пример . Писался правда под билдер, но думаю будет несложно использовать все функции в студии ...
Код:
#include <GL/gl.h>

//глобальные переменные
HGLRC   gRC;                  //глобальный контекст рендеринга
HDC      gDC;                  //глобальный контекст устройства

//функция установки формата пикселя
bool setup_PF(HDC hdc){
 PIXELFORMATDESCRIPTOR pfd, *ppfd;
 int pixelformat;
 ppfd = &pfd;
 
 ppfd->nSize = sizeof(PIXELFORMATDESCRIPTOR);
 ppfd->nVersion = 1;
 ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |PFD_DOUBLEBUFFER;
 ppfd->dwLayerMask = PFD_MAIN_PLANE;
 ppfd->iPixelType = PFD_TYPE_RGBA;
 ppfd->cColorBits = 16;
 ppfd->cDepthBits = 16;
 ppfd->cAccumBits = 0;
 ppfd->cStencilBits = 0;
 if ((pixelformat = ChoosePixelFormat(hdc, ppfd)) == 0) return false;  //не удалось изменить формат пикселя
 if (!SetPixelFormat(hdc, pixelformat, ppfd)) return false; //не удалось установить новый формат пикселя
 return true;     
} //в этой функции, скорее всего, тебе никогда ничего менять не придется, во всяком случае на первых этапах ...

//далее, где нибудь при создании окна пишем следующее
gDC = GetDC(h);   //h-хэндл окна приложения, не знаю как в VS, в билдере это Form1->Handle
if (!setup_PF(gDC)) {
  //не получилось установить формат пикселя, тут например выведем сообщение об ошибке
} else {
 gRC = wglCreateContext(ghDC);    //создаем контекст рендеринга
 wglMakeCurrent(gDC, gRC);          //делаем его активным
 glClearColor(0.0, 0.0, 0.0, 0.0);     //закрашиваем экран черным цветом в данном случае
 glViewport( 0, 0, ww, hw);          //устанавливаем область вывода внутри окна, в данном случае все окно, ww и hw - соответственно ширина и высота нашего окна

 //дальше можно установить еще кое-какие парамтры, если дальше собираешься что-то рисовать
 //установим параметры перспективы, все что ниже - это если создаем 3D приложение
 glMatrixMode( GL_PROJECTION );      //изменяем матрицу проекции
 glLoadIdentity();         //сбросим матрицу
 gluPerspective( 45.0f, (GLfloat)ww/(GLfloat)hw, 0.1, 200);  //параметры перспективы - угол обзора, ширина и высота нашего окна, ближняя и дальняя плоскости отсчения
 gluLookAt(0,0,1,0,0,0, 0,1,0);  //координаты камеры, первые 3 - сами координаты, вторые 3 - точка на которую смотрим, последние 3-положение оси Y
 glMatrixMode( GL_MODELVIEW );    //включаем матрицу вида
 glLoadIdentity();         //сбросим матрицу
 glEnable(GL_COLOR_MATERIAL);    
 glEnable(GL_DEPTH_TEST);          //включаем тест глубины для 3D приложения 
}

//при закрытии окна не забываем освобождать ресурсы
wglMakeCurrent(gDC,0);     //освобождаем контекст рендеринга
wglDeleteContext(gRC);     //удаляем его
ReleaseDC(h, gDC);   //освобождаем контекст устройства, h-снова хэндл нашего окна

//а вот собственно функция для рисования, ее вызываем например ну скажем в обработчике нажатия кнопки
void myDraw(){
 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);  //очищаем буфер цвета и буфер глубины (если он включен)
 glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);     //параметры рисования полигонов
 //дальше нарисуем например треугольник
 glColor3f(1,0,0);      //установим цвет треугольника - красный
 glBegin(GL_TRIANGLE);      
  glVertex3f(0,0,0);  //первая вершина треугольника, координаты
  glVertex3f(0,1,0);  //вторая
  glVertex3f(1,0,0);  //третья
 glEnd();
 SwapBuffers(gDC); //меняем буферы, ну то есть непосредственно рисуем на экране
 //вот и все...
}
вообще можешь поискать в инете уроки от NeHe, они там с исходниками и написаны в VS, но довольно много недочетов имеют

Последний раз редактировалось DarkElf_89; 13.09.2009 в 20:22. Причина: Цвет треугольника неправильно указал)))) исправил
DarkElf_89 вне форума Ответить с цитированием
Старый 13.09.2009, 19:39   #5
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Спасибо большое)
Paul_AG вне форума Ответить с цитированием
Старый 14.09.2009, 00:32   #6
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Извините,а у вас нет случайно этой библиотеки glut.h ? Никак не могу найти в интернете(
Paul_AG вне форума Ответить с цитированием
Старый 14.09.2009, 00:38   #7
DarkElf_89
Пользователь
 
Регистрация: 05.09.2009
Сообщений: 22
По умолчанию

Нет, glut нету, не пользовался я ей как-то...
Вы же писали что скачали библиотеку ...))
На всякий случай смотрите здесь, самая последняя версия 3.7.6 .
DarkElf_89 вне форума Ответить с цитированием
Старый 14.09.2009, 01:44   #8
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Да)Я скачал,подключил указал в компиляторе но она почему то не работает(Скачал другую и все равно ошибка(указал в project - properties - Linker - Input и все равно не работает(Даже студию другую переустановил..что такое?((((
Paul_AG вне форума Ответить с цитированием
Старый 14.09.2009, 01:48   #9
DarkElf_89
Пользователь
 
Регистрация: 05.09.2009
Сообщений: 22
По умолчанию

А какой текст ошибки выдает студия у вас?
DarkElf_89 вне форума Ответить с цитированием
Старый 14.09.2009, 02:12   #10
Paul_AG
Форумчанин
 
Регистрация: 16.03.2009
Сообщений: 152
По умолчанию

Код:
------ Build started: Project: 02, Configuration: Debug Win32 ------
Compiling...
stdafx.cpp
Compiling...
02.cpp
Compiling resources...
Compiling manifest to resources...
Linking...
MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
C:\Documents and Settings\Paul_AG\Τα έγγραφά μου\Visual Studio 2005\Projects\02\Debug\02.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Paul_AG\Τα έγγραφά μου\Visual Studio 2005\Projects\02\02\Debug\BuildLog.htm"
02 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Paul_AG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D и OpenGl Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 29.10.2017 11:31
OpenGL Д'якон Компьютерное железо 5 31.01.2009 22:48
OpenGL yanl Компьютерное железо 0 16.11.2008 00:52
OpenGL Witaliy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 01.05.2008 21:05
OpenGL prizrak1390 Свободное общение 2 07.04.2008 13:43