Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 20.09.2005
Откуда: Москва
Не нашел тему куда можно было бы задать такой вопрос.
Начал изучать OpenGL всего не знаю пока, и хотелось бы узнать можно ли сделать программу так чтобы было как в Delphi, форма с кнопками меню и тд и тп и чтобы по середине где нить, вырисовывалось что то на OpenGL.
К чему спрашиваю....хочу написать программу где будет что то типа механизма двигаться (предмет физика, теоретическая механика) на форме ну и менюшки там кнопки...На Delphi можно написать что то такое используя примитивные функции для рисования, но все же хочется на OpenGL.



Партнер
 

Junior
Статус: Не в сети
Регистрация: 13.02.2007
Откуда: Минск
http://gamedev.ru


 

Member
Статус: Не в сети
Регистрация: 30.03.2009
Откуда: Екатеринбург
можно сделать Panel и там вырисоввывать,в коде вначале поменять Form на Panel точно не помню


 

Member
Статус: Не в сети
Регистрация: 20.09.2005
Откуда: Москва
Про gamedev.ru знаю но пока ничего не нашел там, решил спросить сначала тут


 

Member
Статус: Не в сети
Регистрация: 25.01.2008
Откуда: СПб
Почитай Краснова. А вообще просто устанавливаешь контекст вывода на Panel и пользуешь его Handle
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OpenGL, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    DC: HDC;
    HRC: HGLRC;
    PixeFormat: TPixelFormatDescriptor;
    Fps: TPaintStruct;
    procedure MySetPixelFormat();
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


{ TForm1 }

procedure TForm1.MySetPixelFormat;
var nPixelFormat: Integer;
begin
  FillChar(PixeFormat, SizeOf(PixeFormat), 0);
  with PixeFormat do begin
    nSize := SizeOf(PixeFormat);
    nVersion := 1;
    dwFlags := PFD_DOUBLEBUFFER + PFD_SUPPORT_OPENGL + PFD_DRAW_TO_WINDOW;
    iPixelType := PFD_TYPE_RGBA;
    cColorBits := 24;
    cAlphaBits := 64;
    cAlphaBits := 64;
    cAccumBits := 64;
    cDepthBits := 32;
    cStencilBits := 64;
    iLayerType := PFD_MAIN_PLANE;
  end;
  nPixelFormat := ChoosePixelFormat(DC, @PixeFormat);
  if nPixelFormat<>0 then begin
    SetPixelFormat(DC, nPixelFormat, @PixeFormat);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DC := GetDC(Panel1.Handle);
  MySetPixelFormat;
  HRC := wglCreateContext(DC);
  wglMakeCurrent(DC, HRC);
  glMatrixMode(GL_PROJECTION);//Устанавливаем матрицу
  glLoadIdentity();//Загружаем единичную матрицу
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  BeginPaint(Panel1.Handle,Fps);//Начало рисования
    glClearColor(0.5,0.8,0.9,1);
    glClear(GL_COLOR_BUFFER_BIT);
    SwapBuffers(DC);//Поменять местами буферы
  EndPaint(Panel1.Handle,Fps);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  wglMakeCurrent(0,0);
  wglDeleteContext(HRC);
  ReleaseDC(Panel1.Handle,DC);
  DeleteDC(DC);
end;

end.

_________________
*AMD OverClan*


 

Member
Статус: Не в сети
Регистрация: 20.09.2005
Откуда: Москва
R73 это в Delphi, а на С++ ничего нету?


 

Member
Статус: Не в сети
Регистрация: 24.01.2011
Откуда: Нижегородчина
Фото: 31
Уже отчаявшись найти что-либо в области софта и драйверов решил обратиться сюда.
Имеется процессор Core i5 3750K со встроенной видеокартой HD4000, из настраиваемых через драйвер Intell видеопараметров есть только анизотропная фильтрация и вертик.синхронизация.
С другой стороны есть старенькая игра на движке Q3 - Soldier of Fortune 2 и вот в ней надо включить полноэкранное сглаживание (антиалиасинга FSAA). Точнее даже, в одиночной версии игры это дело включается через настройки самой игры и даже переменная есть, отвечающая за это дело, и всё это работает, а вот в сетевой части эта переменная не поддерживается - оттого все наклонные линнии, естественно, жутко ступенчатые, а вдали всё это друг на дружку накладывается, сливается до трудноразбираемости. Так вот, игра эта идёт через OpenGL32 - можно там как-то что-то поменять/прописать что б режим сглаживания включить принудительно для всех OpenGL-приложений?

_________________
鼠 ( ¦­­­­­­­­­-)ک


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 7 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan