Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где скачать OpenGL для С++ Bilder 
:(
    Опции темы
Shadex
Дата 26.5.2005, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: 1
Всего: 1



Подскажите пожалуйста где можно скачать OpenGL для С++ Bilder, буду очень признателен... smile
PM MAIL   Вверх
Dark Elf
Дата 27.5.2005, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: нет
Всего: 10



В общем-то он входит в поставку С++ Builder
А что у тебя не получается скомпилить? Покажи код


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
Shadex
Дата 27.5.2005, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 23.5.2005

Репутация: 1
Всего: 1



да просто у меня уже есть готовая прога, я её откурываю в С Bilder и он мне сразу говорит что панель OpenGL не обнаружена...
вот код:
Код

#include <vcl.h>
#pragma hdrstop

#include "ug171517s2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "OpenGLPanel"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
 RotX=(float)TrackBar1->Position;
 RotY=(float)TrackBar2->Position;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OpenGLPanel1Init(TObject *Sender)
{
    glViewport(0,0,(GLsizei)OpenGLPanel1->Width,(GLsizei)OpenGLPanel1->Height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    if ( OpenGLPanel1->Height==0)
      gluPerspective(45, (GLdouble)OpenGLPanel1->Width, 1.0, 2000.0);
    else
        gluPerspective(45, (GLdouble)OpenGLPanel1->Width/
                           (GLdouble)OpenGLPanel1->Height,1.0, 2000.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glEnable(GL_DEPTH_TEST);
        glClearColor(0.0,0.0,0.0,1.0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OpenGLPanel1Resize(TObject *Sender)
{
 glViewport(0,0,(GLsizei)OpenGLPanel1->Width,(GLsizei)OpenGLPanel1->Height);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 if ( OpenGLPanel1->Height==0)
    gluPerspective(45, (GLdouble)OpenGLPanel1->Width, 1.0, 2000.0);
 else
    gluPerspective(45, (GLdouble)OpenGLPanel1->Width/
                           (GLdouble)OpenGLPanel1->Height,1.0, 2000.0);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::OpenGLPanel1Paint(TObject *Sender)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glPushMatrix();
 glTranslated(0.0, 0.0, -5.0);
 glRotatef(RotX, 1.0, 0.0, 0.0);
 glRotatef(RotY, 0.0, 1.0, 0.0);
 float a=3.5;
 glBegin(GL_POLYGON);
    glColor3f(0.0,0.0,1.0);
    glVertex3f(  0.2*a,  0.225*a,  0.275*a);
    glVertex3f( -0.2*a,  0.225*a,  0.275*a);
    glVertex3f( -0.2*a, -0.225*a,  0.275*a);
    glVertex3f(  0.2*a, -0.225*a,  0.275*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(0.0,1.0,0.0);
    glVertex3f( -0.2*a, -0.225*a,  0.275*a);
    glVertex3f( -0.2*a,  0.225*a,  0.275*a);
    glVertex3f( -0.2*a,  0.225*a,  0.085*a);
    glVertex3f( -0.2*a, -0.075*a,  0.085*a);
    glVertex3f( -0.2*a, -0.075*a, -0.275*a);
    glVertex3f( -0.2*a, -0.225*a, -0.275*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(0.0,1.0,0.0);
    glVertex3f( -0.1*a,  0.225*a,  0.085*a);
    glVertex3f( -0.1*a, -0.075*a,  0.085*a);
    glVertex3f( -0.1*a, -0.075*a, -0.155*a);
    glVertex3f( -0.1*a,  0.225*a, -0.075*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(0.0,1.0,1.0);
    glVertex3f( -0.2*a, -0.225*a,  0.275*a);
    glVertex3f(  0.2*a, -0.225*a,  0.275*a);
    glVertex3f(  0.2*a, -0.225*a, -0.275*a);
    glVertex3f( -0.2*a, -0.225*a, -0.275*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(1.0,0.0,0.0);
    glVertex3f(-0.2*a, -0.075*a, -0.275*a);
    glVertex3f( 0.2*a, -0.075*a, -0.275*a);
    glVertex3f( 0.2*a, -0.225*a, -0.275*a);
    glVertex3f(-0.2*a, -0.225*a, -0.275*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(1.0,0.0,0.0);
    glVertex3f( 0.1*a, -0.075*a, -0.155*a);
    glVertex3f( -0.1*a, -0.075*a, -0.155*a);
    glVertex3f( -0.1*a,  0.225*a, -0.075*a);
    glVertex3f(  0.1*a,  0.225*a, -0.075*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(1.0,0.0,0.0);
    glVertex3f( 0.1*a,  0.225*a,  0.085*a);
    glVertex3f( 0.1*a, -0.075*a,  0.085*a);
    glVertex3f( 0.2*a, -0.075*a,  0.085*a);
    glVertex3f( 0.2*a,  0.225*a,  0.085*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(1.0,0.0,0.0);
    glVertex3f( -0.1*a,  0.225*a,  0.085*a);
    glVertex3f( -0.1*a, -0.075*a,  0.085*a);
    glVertex3f( -0.2*a, -0.075*a,  0.085*a);
    glVertex3f( -0.2*a,  0.225*a,  0.085*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(1.0,0.0,1.0);
    glVertex3f( 0.2*a, -0.225*a,  0.275*a);
    glVertex3f( 0.2*a,  0.225*a,  0.275*a);
    glVertex3f( 0.2*a,  0.225*a,  0.085*a);
    glVertex3f( 0.2*a, -0.075*a,  0.085*a);
    glVertex3f( 0.2*a, -0.075*a, -0.275*a);
    glVertex3f( 0.2*a, -0.225*a, -0.275*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(1.0,0.0,1.0);
    glVertex3f( 0.1*a,  0.225*a,  0.085*a);
    glVertex3f( 0.1*a, -0.075*a,  0.085*a);
    glVertex3f( 0.1*a, -0.075*a, -0.155*a);
    glVertex3f( 0.1*a,  0.225*a, -0.075*a);
 glEnd();

 glBegin(GL_POLYGON);
    glColor3f(1.0,1.0,0.0);
    glVertex3f( -0.2*a,  0.225*a,  0.275*a);
    glVertex3f( -0.2*a,  0.225*a,  0.085*a);
    glVertex3f(  0.2*a,  0.225*a,  0.085*a);
    glVertex3f(  0.2*a,  0.225*a,  0.275*a);
 glEnd();
 glBegin(GL_POLYGON);
    glColor3f(1.0,1.0,0.0);
    glVertex3f( -0.1*a,  0.225*a,  0.085*a);
    glVertex3f( -0.1*a,  0.225*a, -0.075*a);
    glVertex3f(  0.1*a,  0.225*a, -0.075*a);
    glVertex3f(  0.1*a,  0.225*a,  0.085*a);
 glEnd();
 glBegin(GL_POLYGON);
    glColor3f(1.0,1.0,0.0);
    glVertex3f( -0.2*a, -0.075*a,  0.085*a);
    glVertex3f( -0.1*a, -0.075*a,  0.085*a);
    glVertex3f( -0.1*a, -0.075*a, -0.155*a);
    glVertex3f(  0.1*a, -0.075*a, -0.155*a);
    glVertex3f(  0.1*a, -0.075*a,  0.085*a);
    glVertex3f(  0.2*a, -0.075*a,  0.085*a);
    glVertex3f(  0.2*a, -0.075*a,  -0.275*a);
    glVertex3f( -0.2*a, -0.075*a,  -0.275*a);
 glEnd();
 glPopMatrix();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if (SaveDialog1->Execute())
       OpenGLPanel1->SaveOpenGLPanelToFile(SaveDialog1->FileName);   
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
 if (PrintDialog1->Execute()) OpenGLPanel1->PrintOpenGLPanel();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
RotX=(float)TrackBar1->Position;
 OpenGLPanel1->Repaint();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TrackBar2Change(TObject *Sender)
{
 RotY=(float)TrackBar2->Position;
 OpenGLPanel1->Repaint();
}
//---------------------------------------------------------------------------

PM MAIL   Вверх
Nemesis
Дата 4.6.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 20.2.2005
Где: Москва

Репутация: нет
Всего: 5



#include "ug171517s2.h"
а это еще что такое?smile
Как-то сложно все у тебя. Просто устанавливаешь C++ Builder. Потом в папке где установлен билдер проверь след:

1) ...\Include\Gl тут должно быть 3 файла: gl.h, glaux.h, glu.h.
2) ...\Lib должны присутствовать след файлы: glu32.lib, glu.lib, opengl32.lib, opengl.lib.
2) Потом проверь наличие длл в самой винде(в папке system32),а именно файла glu32.dll и opengl32.dll.

И вот простенький пример проги:
НО! прога писалась с использованием glut`а, поэтому позаботься,что бы след файлы были у тебя:
1) ...\Include\Gl файл glut.h
2) ...\Lib файлы glut32.lib, glut.lib
3) В винде в system32 след файлы glut32.dll и glut.dll.

Прога:

Код


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

#include <gl\glut.h>
#include <stdlib.h>

#define ESCAPE '\033'

//---------------------------Глобальные переменные---------------------------

GLint Width=800, Height=600;
const int CubeSize=200;
float rot;

//-----------------------------Прорисовка сцены------------------------------

void Init()
{
  unsigned int list=glGenLists(2);

  glNewList(list,GL_COMPILE);
  glBegin(GL_POLYGON);

      glColor3ub(255,   0,      0);
      glVertex3f(0,     0,      0);

      glColor3ub(0,     0,    255);
      glVertex3f(0,   1.5,      0);

      glColor3ub(255, 255,      0);
      glVertex3f(1.5, 1.5,      0);

      glColor3ub(0,   255,      0);
      glVertex3f(1.5,   0,      0);

  glEnd();
  glEndList();
}

void Display(void)
 {
  int left, right, top, bottom;

//Устанавливаем цвет фона
  glClearColor(0.3,0.3,0.3,1);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glEnable(GL_DEPTH_TEST);

  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  glTranslatef(0,0,-10);
  glRotatef(rot,0,1,0);
  glRotatef(30,1,0,0);
  glScalef(55,55,55);

  gluLookAt(0,0,0,0,0,-10,0,1,0);

  glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
  glCullFace(GL_QUADS);

  glCallList(1);

  glDisable(GL_DEPTH_TEST);

  glFinish();

  glutSwapBuffers();
 }

//----------------------------Перерисовка окна------------------------------

void Reshape(GLint w, GLint h)
 {

  Width=w;
  Height=h;

  glViewport(0,0,w,h);

  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  glOrtho(-400,400,-300,300,-1000,1000);

 }

//-------------------------Управление с клавиатуры---------------------------
void Keyboard(unsigned char key, int x, int y)
 {

  if(key=='a')
   {
    rot+=5;
    glutPostRedisplay();
   }
  if(key=='d')
   {
    rot-=2;
    glutPostRedisplay();
   }

  if(key==ESCAPE)
   exit(0);

 }

//-----------------------------Главный цикл----------------------------------

main(int argc, char* argv[])
{

 //Инициализация окна
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
 glutInitWindowSize(Width, Height);
 glutCreateWindow("My first project!");

//Вызов функций-обработчиков
 glutDisplayFunc(Display);
 glutReshapeFunc(Reshape);
 glutKeyboardFunc(Keyboard);

 Init();

//Обработка событий
 glutMainLoop();

 return 0;
}
//---------------------------------------------------------------------------



В проге клавишами "a" и "d" объект поворачивается.
--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.3561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.