BCB OpenGL im Panel Darstellen + über Buttons modifizieren? Hilfe



  • [edit:]
    hab mittlerweile Fortschritte gemacht, und schon einiges erledigt.
    Wäre aber trotzdem dankbar wenn mir jemand dabei helfen könnte z.B, einen Knopf zu erstellen der den zoomfactor verändert oder ähnliches..

    mir gelingt es absolut nicht 2 knopfe zu haben wobei der eine das opengl feld initalisiert und was reinzeichnet (bis hierhin klappts) und einen zweiten der dann z.B. gltranslate durchführt.

    [ursprünglicher thread:]
    Hi,
    ich versuche mich an ner OpenGL Anwendung unter verwendung von
    OpenGLAP for CBuilder 6, v1.08 Hier gibts das

    Hierzu habe ich einige Fragen die ihr vielleicht auch beantworten könnt wenn ihr das Teil garnicht kennt.

    Gibt es mittlerweile (1.08 ist von 2003) einen anderen/besseren Weg einfach ein OpenGL fenster im BCB zu verwenden?

    Und ausserdem scheinen die Funktionen irgendwie beschränkt zu sein sodass ich sie nicht von "void __fastcall TForm1::Button1Click(TObject *Sender)" aus aufrufen kann. Momentan werden alle OpenGl Sachen beim Init oder MouseMove des Panels erledigt.

    Kann mir vielleicht hierzu jemand nen Tip geben wo ich nach dieser Einschränken suchen muss bzw. ob ich mit der Vermutung überhaupt richtig liege.

    Wie ihr sicher merkt bin ich nicht der obercrack aber ich versuche mein bestes und ich fahre momentan sehr gut damit.

    Bin für jede Hilfe dankbar

    Grüße Grey



  • GreyHound schrieb:

    Gibt es mittlerweile (1.08 ist von 2003) einen anderen/besseren Weg einfach ein OpenGL fenster im BCB zu verwenden?

    Eigentlich brauchst Du für OpenGL unter Windows nur eine Fläche zum Draufpinseln, d.h. eine Komponente, die ein Fensterhandle hat (HWND). Also eigentlich alle, sogar ein Button.

    Von da aus kannst Du doch den üblichen NeHe Weg beschreiten, und Dich vom HWND zum HDC (Device Context) und dann zum HGLRC (GL Rendering Context) durchboxen.

    Ab dann kannst Du auf den HGLRC soviel OpenGL kritzeln wie Du willst.

    EDIT: Auch die BCB- und Delphi-Komponenten verwalten ein HWND. Schau mal nach TButton.getHandle() / .handle() / .. oder sowas...



  • http://bdn.borland.com/article/0,1410,10528,00.html
    den dazugehörigen sourcecode gibts hier..

    hat vielleicht jemand was fertiges für den builder da? im web siehts echt mies aus mit irgendetwas was mir weiterhelfen würde.

    [edit:]
    habs gepackt, nen Panel is nun mein Zeichenblock. War ganz easy mit Panel1->Handle
    zu erledigen, dank dir, Duke!

    Aber dennoch....von anderen Funktionen schaff ich es absolut nicht irgendwas zu zeichen.

    Ein Riesenproblem stellt sich immer wenn ich z.b. über den OnClick eines Buttons eine Veränderung wie gltranlate oder so hervorrufen will. Wenn es genau hierzu laufenden Source geben würde wäre ich unentlich dankbar.


Anmelden zum Antworten