Пятница, 29 Ноября 2024, 05:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
OpenGL + Win32
MatouДата: Воскресенье, 03 Апреля 2011, 23:32 | Сообщение # 1
Исходный коТ
Сейчас нет на сайте
Суть такова, хочется написать окошко с интерфейсом Win32 и чтобы в нем была область на которой бы рендерился OpenGL. Так вот эта самая область для вывода графики должна занимать лишь часть окошка, а не всю рабочюю область. Как такое можно реализовать и много ли вариантов для реализации?


Kefir87Дата: Воскресенье, 03 Апреля 2011, 23:41 | Сообщение # 2
участник
Сейчас нет на сайте
Почему бы просто не указать в glViewport, область в которой необходимо выводить графику.
MatouДата: Понедельник, 04 Апреля 2011, 00:10 | Сообщение # 3
Исходный коТ
Сейчас нет на сайте
Можно конечно, просто хочется чтобы был некий обьект контекст которого можно было бы получать отдельно, а не так что получать контекст всего окна, а использовать только его часть.


Programmer_BДата: Понедельник, 04 Апреля 2011, 00:59 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Писал как-то прототип стратегии на Delphi+OpenGL. GL рендерил на компонент Panel, а под ним были обычные GDI кнопки Button для управления и плюс стандартное меню в окошке. Всё это жутко лагало, так что идти по моим стопам не советую.
Kefir87Дата: Понедельник, 04 Апреля 2011, 11:28 | Сообщение # 5
участник
Сейчас нет на сайте
Вот элементарный пример с выводом на панель, написанный на Delphi



Сообщение отредактировал Kefir87 - Понедельник, 04 Апреля 2011, 11:28
MatouДата: Понедельник, 04 Апреля 2011, 15:37 | Сообщение # 6
Исходный коТ
Сейчас нет на сайте
Я в Делфи не очень, но прочитав код мне показалось что там вроде бы классы используются, а это уже не чистый Win32, а мне бы без надстроек всяких.


Kefir87Дата: Понедельник, 04 Апреля 2011, 15:47 | Сообщение # 7
участник
Сейчас нет на сайте
Quote (Matou)
Я в Делфи не очень, но прочитав код мне показалось что там вроде бы классы используются, а это уже не чистый Win32, а мне бы без надстроек всяких.

Все просто, вот код отрисовки

Code
procedure TfrmGL.FormPaint(Sender: TObject);  
var  
    ps : TPaintStruct;  
begin  
    BeginPaint (Panel1.Handle, ps);        // для более устойчивой работы  
    wglMakeCurrent(dc, hrc);  
    glClearColor (0.5, 0.5, 0.75, 1.0);  
    glClear (GL_COLOR_BUFFER_BIT);  

    glPointSize (20);                   // размер точек  
    glColor3f (1.0, 0.0, 0.5);          // текущий цвет примитивов  
    glBegin (GL_POINTS);                // открываем командную скобку  
      glVertex2f (-1, -1);  
      glVertex2f (-1, 1);  
      glVertex2f (0, 0);  
      glVertex2f (1, -1);  
      glVertex2f (1, 1);  
    glEnd;  
    wglMakeCurrent(0, 0);  
    EndPaint (Panel1.Handle, ps);  
end;
MatouДата: Понедельник, 04 Апреля 2011, 20:40 | Сообщение # 8
Исходный коТ
Сейчас нет на сайте
Ну код отрисовки то я смог найти самостоятельно smile . Мне просто не нравится что все выводится в некий ,как я понял, борландовский TPanel.


AngevengelistДата: Понедельник, 04 Апреля 2011, 20:49 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (Matou)
борландовский TPanel

Нет, никакой разницы на что выводить, создай программно, хоть что-нибудь, хоть Panel, хоть Bitmap и рендери на нем.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг