Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Работа в Delphi openGl


Автор: Миринда 5.5.2012, 21:16
Здравствуйте! Нужен совет в такой ситуации. 
Начала изучать OpenGl. Должна выполнить лабораторную, а в последующем - курсовую. У меня Delphi 2009.

Подскажите, что нужно сделать для того чтобы создать проект на OpenGl в Delphi ?
Как подключить заголовочный файл позволяющий подключать библиотеку OpenGL к проектам Delphi 2009 ? 
Где что скачать ?

Автор: Illusion Dolphin 6.5.2012, 01:21
Я не специалист, но https://www.google.by/search?q=OpenGl+Delphi+&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

Код

uses
  ... OpenGL;


А дальше в интернете куча примеров.

Автор: Alexeis 6.5.2012, 15:34
 А еще снизу ссылки есть. А вот учебник с примерами http://pmg.org.ru/nehe/

Автор: Миринда 6.5.2012, 16:16
Спасибо за подсказки!
Объясните пожалуйста, почему этот код, (взяла из видеоурока Владимира Любаева на http://www.delphiexpert.ru/) работает на Delphi7 , но не работает на Delphi 2009 ?

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dglopengl, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  dc,rc: hdc;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
glClearColor (0.5, 0.1, 0.1, 1.0); //Функция для изменения цвета формы, имеющая четыре
                              //параметра. Первые три - это цвет (R,G,B) от 0 до 1,
                              //четвертый - прозрачность
glClear (GL_COLOR_buffer_bit);        //(очистка буфера цвета)
SwapBuffers(dc); //Выводим буфер на экран

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DC:=GetDC(Handle); //Получаем дескриптор окна
  RC:=CreateRenderingContext(DC,
  [opDoubleBuffered],//Включаем двойную буферизацию
  32, // Работаем в 32-битной системе
  24,
  0,
  0,
  0,
  0);
  ActivateRenderingContext(DC, RC);
end;

end.

Если я правильно поняла этот сайт http://pmg.org.ru/nehe/ обучает только на С++ ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)