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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 20:13   #1
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию OpenGL. Создание куба на ScrollBox.

есть код для создания куба на форме, хочу перенести его на ScrollBox

Код:
 
procedure TForm1.DrawScene;
begin
 glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);

 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity;
 glTranslatef(0.0, 0.0, -8.0);
 glRotatef(AngleX, 1.0, 0.0, 0.0); 
 glRotatef(AngleY, 0.0, 1.0, 0.0); 
 glRotatef(AngleZ, 0.0, 0.0, 1.0); 

 glBegin(GL_POLYGON);
  glNormal3f(0.0, 0.0, 1.0);
  glVertex3f(1.0, 1.0, 1.0);
  glVertex3f(-1.0, 1.0, 1.0);
  glVertex3f(-1.0, -1.0, 1.0);
  glVertex3f(1.0, -1.0, 1.0);
 glEnd;

 glBegin(GL_POLYGON);
  glNormal3f(0.0, 0.0, -1.0);
  glVertex3f(1.0, 1.0, -1.0);
  glVertex3f(1.0, -1.0, -1.0);
  glVertex3f(-1.0, -1.0, -1.0);
  glVertex3f(-1.0, 1.0, -1.0);
 glEnd;

 glBegin(GL_POLYGON);
  glNormal3f(-1.0, 0.0, 0.0);
  glVertex3f(-1.0, 1.0, 1.0);
  glVertex3f(-1.0, 1.0, -1.0);
  glVertex3f(-1.0, -1.0, -1.0);
  glVertex3f(-1.0, -1.0, 1.0);
 glEnd;

 glBegin(GL_POLYGON);
  glNormal3f(1.0, 0.0, 0.0);
  glVertex3f(1.0, 1.0, 1.0);
  glVertex3f(1.0, -1.0, 1.0);
  glVertex3f(1.0, -1.0, -1.0);
  glVertex3f(1.0, 1.0, -1.0);
 glEnd;

 glBegin(GL_POLYGON);
  glNormal3f(0.0, 1.0, 0.0);
  glVertex3f(-1.0, 1.0, -1.0);
  glVertex3f(-1.0, 1.0, 1.0);
  glVertex3f(1.0, 1.0, 1.0);
  glVertex3f(1.0, 1.0, -1.0);
 glEnd;

 glBegin(GL_POLYGON);
  glNormal3f(0.0, -1.0, 0.0);
  glVertex3f(-1.0, -1.0, -1.0);
  glVertex3f(1.0, -1.0, -1.0);
  glVertex3f(1.0, -1.0, 1.0);
  glVertex3f(-1.0, -1.0, 1.0);
 glEnd;

 SwapBuffers(DC);  
end;
подскажите с чего начать, а я съарентируюсь
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.12.2010, 20:40   #2
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

ну нужно получать контекст не формы, а компонента ScrollBox и тогда на нём рисовать) Всё элементарно просто...

Где ваш код инициализации OpenGL?
SalasAndriy вне форума Ответить с цитированием
Старый 17.12.2010, 20:42   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
контекст не формы
а где ето в моем коде?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.12.2010, 20:44   #4
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Код:
procedure TForm1.InitializeRC;
begin
 glEnable(GL_DEPTH_TEST); 
 glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);
end;
ето?
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.12.2010, 20:48   #5
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

Там есть получение контекста формы, похожее на
Код:
DC := GetDC(Form1.Handle);
Вот замените там и напишите так:
Код:
DC := GetDC(ScrollBox1.Handle);
или давайте сюда весь код разберёмься

Последний раз редактировалось SalasAndriy; 17.12.2010 в 20:51.
SalasAndriy вне форума Ответить с цитированием
Старый 17.12.2010, 20:57   #6
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Form1.PopupMenu:=PopupMenu1;
 Angle:=0;
 AngleX:=30;
 AngleY:=0;
 AngleZ:=0;
 c:=1;
 DC:=GetDC(ScrollBox1.Handle);
 SetDCPixelFormat;
 hrc:=wglCreateContext(DC);
 wglMakeCurrent(DC, hrc);
 InitializeRC;
 glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, @MaterialColor);
end;
спасибо, работаю дальше)
VirusN13
ArtGrek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[OpenGL, Delphi] Добавление текстур на грани куба newStudent Помощь студентам 0 03.12.2010 00:50
создание диаграммы Ганта(ленточный график) с использование OpenGL mc_patrick Помощь студентам 0 30.10.2010 16:25
Координаты текстур куба. DirectX. Crivel Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 16.06.2010 12:45
динамическое создание объектов OpenGl Seran4ek Помощь студентам 2 26.11.2009 17:04
СОЗДАНИЕ 3d КУБА Sergeu Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 13.02.2009 07:31