Zitat:
OPENGL
...was mir noch nicht so klar ist, ob RoundRect oder beliebige andere Formen /Regionen damit einfach zu erstellen sind...
OpenGL ist, wie so ziemlich jede andere 3D-
API, Polygon-basiert.
Das heisst, du zeichnest Punkte (Vertices) und sagst
OpenGL, wie diese zu Polygonen verbunden werden. Da gibt es dann zig Varianten / Schalter (LINES, TRIANGLES, QUADS, QUAD_STRIPS usw.) und in welcher Reihenfolge ein Front-Face deklariert ist (Im Uhrzeigersinn, gegen den Uhrzeigersinn).
Du kannst damit jede erdenkliche Form erstellen, sei es 2D oder 3D.
Diese Polygone kannst du dann einfärben / per Textur-Koordinaten Texturen draufmappen und z.B. mit Lichtern interagieren lassen (Material-Eigenschaften) oder sogar kleine Mini-Programme (Shader) für die Vertex-Positionierung, Texturierung und Farbgebung schreiben, die dann direkt auf der GPU laufen.
Ob die Anzeige 2D oder 3D ist, kommt hauptsächlich darauf an, wie die Kamera eingestellt ist (Orthogonal oder Perspektive).
Wie du aber siehst, ist das Ganze schon von der Denke her nicht wirklich trivial
Dafür halt mächtig
Zitat:
...und ob eine Initialisierung von
OpenGL in der Anwendung (bsp. in meiner MainForm) genügt und ich dann dies zum zeichnen in allen anderen Kompos benutzen kann.
Es reicht normalerweise, für deine Anwendung einen
OpenGL-Context zu aktivieren. Anwendungen mit mehreren Contexten sind sehr selten.
Dieser Context liegt dann immer auf irgend einer Fläche, sei es die Client-Area der Form oder die eines Panels oder Ähnliches.
Innerhalb dieses Bereichs kannst du dann mit
OpenGL arbeiten, und zwar nur
OpenGL (
VCL-Controls /
GDI(+) funktionieren hier nicht mehr), ausserhalb der Fläche verhält es sich umgekehrt (kein
OpenGL nutzbar,
VCL /
GDI funktioniert).
Hast du z.B. ein Panel auf deiner Form, für das du den
OpenGL Context aktivierst, kannst du dort mit
OpenGL zeichen, und zwar nur dort.
Ist deine ganze Form ein
OpenGL Context, dann musst du alles dort mit
OpenGL zeichen und kannst die
VCL oder
GDI(+) komplett dort vergessen. Es gibt keine Mischformen
Das gleiche gilt auch für Direct3D.