PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit CBuilder & OpenGL einen Editor schreiben


Einfachkrank
2004-07-13, 15:18:30
Hi,

ich hab grade ne Testversion von dem Borland C++Builder 6.0 aufm Rechner und versuche mit OpenGL eine Oberfläche für einen 3D Objekt Editor zu schreiben(was noch überhaupt nicht hinhaut...).
Vorher hab ich nur mit MSVC++ 6.0 programmiert und komme jetzt überhaupt nicht zurecht. Wenn ich en stink normales Formular habe, wie komme ich an das Handle des Fensters dran(also das HWND-Ding)? Und wenn das mal funktionieren sollte, auf welche Weiße sollte ich das OpenGL Fenster in vier kleine Fenster teilen?

Wenn natürlich jemand einen Editor mit OpenGL unter dem CBuilder entwickelt hat und mir en bischen Quellcode schicken würde, wäre richtig geil, aber bin auch mit Tips zufrieden :-)

MFG Einfachkrank

Lord Nikon
2004-07-13, 23:02:59
Hi,

void Grafik::make_connect(void * Handle)
{
hdc = GetDC(Handle);
setpfd(PixelFormat);
hrc = wglCreateContext(hdc);
wglMakeCurrent(hdc, hrc);
}

void Grafik::setpfd(int PixelFormat )
{
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
24,
0,0,0,0,0,0,
0,0,
0,0,0,0,0,
32,
0,
0,
PFD_MAIN_PLANE,
0,
0,0,0
};
PixelFormat = ChoosePixelFormat(hdc, &pfd);
SetPixelFormat(hdc, PixelFormat, &pfd);
}
// Aufruf zu irgendeinem Zeitpunkt
make_connect(Form1->Handle);

Also das Fenster Handle holst du dir über
Formularname->Handle.Ich hoffe das reicht für den Anfang.

Einfachkrank
2004-07-14, 12:37:10
Ja, super! Das mit dem Handle funktioniert! Danke!

Jetzt ist mein nächstes Problem: Wie teilt ihr das OpenGL Fenster in vier kleine Fenster für die verschiedenen Perspektiven? Was für Möglichkeiten gibts da? Erstellt ihr dann 4x mal den Rendering und Device Context und liegt sie an welche Handles? Mit Edit Feldern klappt das :D, aber sieht nicht so professionell aus :-(

Lord Nikon
2004-07-14, 14:08:36
Also ich hab mir bei solchen Sachen einfach ein weiteres Formular erstellt, die Größe entsprechend angepasst und dann die Header Datei des Formulars in der Header Datei des Hauptformular eingebunden und dann mit der Visible Methode auf True gesetzt.