PMG
http://forum.pmg.org.ru/

Создание окна OGL для Form
http://forum.pmg.org.ru/viewtopic.php?f=1&t=6747
Страница 1 из 1

Автор:  Aleksus [ 06 мар 2009 01:59 ]
Заголовок сообщения:  Создание окна OGL для Form

Подскажите пожалуйста...
Пользую C++Builder6
Есть программка в ней ведутся расчеты, сделана через Application, т.е. есть форма, нужно некоторые данные визуализировать...
По урокам NeHe сделал примерно что нужно, осталось передавать туда данные из основной программы, но вот тут появилась проблемка... Не могу заставить основную программу прорисовывать окно для OGL
Подскажите как подключить допустим 2-й урок - ну как самый маленький)) к Application.
Надеюсь получилось объяснить.

Автор:  MagicWolf [ 06 мар 2009 21:52 ]
Заголовок сообщения:  Re: Создание окна OGL для Form

>Не могу заставить основную программу прорисовывать окно для OGL

А посылать сообщения WM_PAINT не пробывал?

Автор:  Aleksus [ 07 мар 2009 17:51 ]
Заголовок сообщения:  Re: Создание окна OGL для Form

MagicWolf, извини а можно поподробнее, я просто с OGL мало знаком, и разберусь с ним наверно не очень скоро. А сделать надо))
Попробовал просто вставить WM_PAINT, почитал справку, честно не очень много понял.
Допустим я создаю новое приложение:
Код:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

Подключаю второй урок
Код:
#include <lesson2.cpp>

И хочу что бы при создании формы создавалось еще и окно OGL как по умолчанию в уроках NeHe размером 600*800 где нить сбоку)))
Подскажи пожалуйста, что нужно написать что бы оно появилось, и скорее всего надо еще что то подключать в Unit1, и возможно в lesson2.cpp.
Заранее большое спасибо.

Автор:  MagicWolf [ 11 мар 2009 14:55 ]
Заголовок сообщения:  Re: Создание окна OGL для Form

Мне трудно сказать как это сделать в Builder, но можно зайти на сайт NeHe там есть исходники первого урока для Builder. А так смысл манипуляций прост: надо иметь окно, получить в нем графический контекст и в нем уже инийиализировать OGL.

Автор:  Aleksus [ 11 мар 2009 18:05 ]
Заголовок сообщения:  Re: Создание окна OGL для Form

Проблема в том что везде указывается как создавать окно OGL из консольного приложения.
Допустим есть что то похожее на уроки NeHe OpenGL по шагам, но там тоже изначально создается проект Win32 Console.
Попробовал сделать на основе примеров из Билдера (там есть 2шт), но тогда получается что непонятно, что и для чего, хотя получилось что то более менее похожее на правду, но уверен что некоторое операции делаю по 2 раза, или они вообще не нужны.

Автор:  MagicWolf [ 15 мар 2009 17:30 ]
Заголовок сообщения:  Re: Создание окна OGL для Form

Исходники для Builder с сайта Nehe смотрел?

Автор:  Aleksus [ 15 мар 2009 23:08 ]
Заголовок сообщения:  Re: Создание окна OGL для Form

Да, да смотрел... НА самом деле плохо владею терминологией, но как мне сказал один из знакомых - проблема в том, что примеры NeHe написаны на чистом WinAPI используя язык C++(мог неправильно понять что он мне сказал). Но для примеров NeHe создаются приложения Win32 Console - т.е. по сути не используется Builder как таковой. ДУмаю и на VisialStudio они с тем же успехом запустятся. Проблема то именно в том что бы заставить создавать окно из Builder-a.
Просто столкнулся с тем, что создать то окно получилось, кое как... Подключил графику - простые тела рисуются, а вот текстура вроде и должна накладываться по идее (делал из уроков NeHe и в консольном приложении работает) а вот в Buildere выдает ошибку. Вот теперь мучаюсь - довольно редко делают приложения с OGL и одновременно форму, да и книжек не найду:( Есть отдельно, как делать формы, есть, как делать OGL, но как совместить - не могу найти :(

Автор:  MagicWolf [ 16 мар 2009 22:01 ]
Заголовок сообщения:  Re: Создание окна OGL для Form

Aleksus писал(а):
Да, да смотрел...

Вот это???
http://nehe.gamedev.net/data/lessons/bc ... 1_bcb6.zip
http://pmg.org.ru/nehe/ogl_builder01.htm

Можно посмотреть:
БХВ - OpenGL. Графика в проектах Delphi, 2000.djvu

Aleksus писал(а):
НА самом деле плохо владею терминологией, но как мне сказал один из знакомых - проблема в том, что примеры NeHe написаны на чистом WinAPI используя язык C++(мог неправильно понять что он мне сказал). Но для примеров NeHe создаются приложения Win32 Console - т.е. по сути не используется Builder как таковой. ДУмаю и на VisialStudio они с тем же успехом запустятся. Проблема то именно в том что бы заставить создавать окно из Builder-a.


Да, правильно. Но посмотри внимательно, для того чтобы инициализировать OGL, надо использовать wgl и контекст рисования:
hDC=GetDC(hWnd)
PixelFormat=ChoosePixelFormat(hDC,&pfd)
SetPixelFormat(hDC,PixelFormat,&pfd)
hRC=wglCreateContext(hDC)

Т.е. из hDC получаем hRC!!! В принципе это все что нужно от Builder. Теперь только надо выводить на hDC средствами OGL, а не Builder, а обработку сообщений делать из Builder.

Aleksus писал(а):
Просто столкнулся с тем, что создать то окно получилось, кое как... Подключил графику - простые тела рисуются, а вот текстура вроде и должна накладываться по идее (делал из уроков NeHe и в консольном приложении работает) а вот в Buildere выдает ошибку.


А в чем проблема. Может просто не может найти текстуру? Это уже ни какого отношения к Builder не имеет.

Aleksus писал(а):
Вот теперь мучаюсь - довольно редко делают приложения с OGL и одновременно форму, да и книжек не найду:( Есть отдельно, как делать формы, есть, как делать OGL, но как совместить - не могу найти :(


Формы и OGL не совместимы, если нет такого особого компонента.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/