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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2009, 17:36   #1
Clicker
 
Регистрация: 24.11.2009
Сообщений: 6
По умолчанию Вопрос по Opengl

Мне надо посередине формы рисовать картинку в OpenGL.Пробывал через фреймы делать не получается.На фрейме поставил Image1 и написал

Код:
var
  hrc: HGLRC;

procedure SetDCPixelFormat (hdc : HDC);
var
 pfd : TPixelFormatDescriptor;
 nPixelFormat : Integer;
begin
 FillChar (pfd, SizeOf (pfd), 0);
 pfd.dwFlags  := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
 nPixelFormat := ChoosePixelFormat (hdc, @pfd);
 SetPixelFormat (hdc, nPixelFormat, @pfd);
end;

procedure TFrame4.Button1Click(Sender: TObject);
begin
SetDCPixelFormat(image1.Canvas.Handle);
hrc := wglCreateContext(image1.Canvas.Handle);
timer1.Enabled:=true;
end;

procedure TFrame4.Timer1Timer(Sender: TObject);
begin
 wglMakeCurrent(image1.Canvas.Handle, hrc);

 glViewPort (0, 0,100, 100);

 glClearColor (0, 0, 0, 1.0);
 glClear (GL_COLOR_BUFFER_BIT);      

 glPointSize (20);           
 glColor3f (1.0, 0.0, 0.5);
 glBegin (GL_POINTS);
   glVertex2f (-1, -1);
 glEnd;                              

 SwapBuffers(image1.Canvas.Handle);         
 wglMakeCurrent(0, 0);
end;

end.
Clicker вне форума Ответить с цитированием
Старый 24.11.2009, 17:48   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

По-моему GL не сильно дружит со всякими компонентами, у меня глючило со многими, рисуйте на форме.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 24.11.2009, 18:27   #3
Clicker
 
Регистрация: 24.11.2009
Сообщений: 6
По умолчанию

В каких можно так делать?У меня есть рисунок, и мне надо посередине него рисовать картинку на OpenGl
Clicker вне форума Ответить с цитированием
Старый 24.11.2009, 18:36   #4
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Хмм... Делайте контекст на форме, грузите текстуру и рисуте на здоровье.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 24.11.2009, 18:55   #5
Clicker
 
Регистрация: 24.11.2009
Сообщений: 6
По умолчанию

А можно по подробнее
Clicker вне форума Ответить с цитированием
Старый 24.11.2009, 18:59   #6
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Можно. Я так понял, вам нужно картинку на задний фон и поверх него что-то нарисовать, верно? Значит грузите текстуру в буфер, устанавливаете её и рисуете прямоугольник по точкам [-1,-1][-1,1][1,1][1,-1]. После этого вы вольны рисовать поверх всего этого всё что угодно.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 24.11.2009, 19:03   #7
Clicker
 
Регистрация: 24.11.2009
Сообщений: 6
По умолчанию

а если мне надо на задний фон разместить картинку которая не соответствует размерам формы размещая ее по центру,и поверх нее рисовать Opengl. Я с текстурами пока работать не умею, ща пойду в книге поищу
Clicker вне форума Ответить с цитированием
Старый 24.11.2009, 19:16   #8
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

тогда она растянется по размерам формы если указать нужные текстурные координаты. Посмотрите в книге про текстурирование, там не сложно.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 24.11.2009, 19:26   #9
Clicker
 
Регистрация: 24.11.2009
Сообщений: 6
По умолчанию

А можно будет загрузить файл png?
Clicker вне форума Ответить с цитированием
Старый 24.11.2009, 19:29   #10
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Только через расширения, лучше не надо по началу. Сначала разберитесь. А что вам нужно от png?
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D и OpenGl Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 29.10.2017 11:31
OpenGl Freer Помощь студентам 1 25.05.2009 17:57
OpenGL в С# LeGAl Общие вопросы .NET 0 30.04.2009 02:15
OpenGL Witaliy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 01.05.2008 21:05