Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,
gibts ne gute Unit oder n Prog, mit der/dem man schnell und easy das GUI erstellen kann? oder muss ich mir das selbst was zamm friemeln?
schonma danke^^
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Programm GUI oder OpenGL GUI ?
Für Software kannst du z.b. wxWidget mit wxFormBuilder nehmen(cross) oder Borland C++ Builder mit VCL für Windows oder eine freie Delphi Version für Windows.
Bei OpenGL fällt mir keine Lib ein, die ein GUI Editor mit liefert, ausser Irrlicht.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Hey,
eine GUI für OpenGL hab ich schon mal zusammengebaut. Sie ist zwar schon etwas betagt, aber durchaus funktionsfähig.
Einfach mal auf meiner Site nachschauen.
Wenn du noch ein bisschen Zeit hast, kannste warten bis Traude die dglGUI fertig hat, die sehr wahrscheinlich wesentlich besser wird als meine, da sie einfach mehr Ahnung in dem Bereich hat, schätze ich.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
@Flash: wann is die Veröffentlichung ungefähr? Und geht die dann auch mit Delphi?
@MatReno: Hab deine glWindow.pas ma angesehen. Ich such ne Art Memo, bei dem man auch Scollen kann. Bei deiner ListBox/Memo funzt da ja net... Ich hab mir darüber auch ma Gedanken gemacht un der einzige weg der mir jetzt einfällt ist, den Text auf ne Textur zu rendern (in der max. Breite des Memos) und dann die Textur zu "scrollen". Aber auf eine Textur rendern soll ja nich grad sehr schnell sein. Kann man das auch noch irgendwie anders machen??
Mfg Bergmann.
p.s: zur Textausgabe benutz ich die TextSuite von LossyEx.
@Texturrendern: ist auf aktuellen Grafikkarten nicht mehr so schlimm
Alternativ könntest du auf den Stencil-Buffer zurückgreifen (s. Spiegeltutorial), um die Ausgabe auf einen Bereich zu beschränken und dann mit normalen Translate's scrollen.
Oder du machst es ganz auf Software Seite und prüfst bei jedem Buchstaben ob er sichtbar, beschnitten oder unsichtbar ist.
@Java-GUI mit Delphi nutzen: Wenn es da nicht mir vollkommen unbekannte Techniken gibt sollte das nicht möglich sein.
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
OK,
da mach ich das mit der textur. Grund is der "Nachtrag (Oktober 2005)" aus dem Spiegeltut.
Kann ich da einfach glCopyTexImage2D benutzen, oder würde sich ein FBO besser eignen?
€: ich machs doch lieber mit dem Stencil-Buffer. Textur sieht scheiße aus xD
alles voll verzogen -.-
€2: habs jetzt mit dem Stencil-Buffer probiert, aber irgendwie geht das nich...ichhab den Code fast 1 zu 1 aus dem Tutorial kopiert, aber bei mir will das einfach net! -.-
Code:
procedure TForm1.Render;
begin
glMatrixMode(GL_MODELVIEW);
glLoadIdentity;
glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT or GL_STENCIL_BUFFER_BIT);
glTranslatef(0,0,-4);
// Stencilpuffer vorbereiten
glColorMask(False,False,False,False);
glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_ALWAYS,1,1);
glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
glDisable(GL_DEPTH_TEST);
glDisable(GL_TEXTURE_2D);
//Maske zeichnen
glColor4f(1,1,1,1);
glBegin(GL_QUADS);
glVertex3f(-0.5,0.5,0);
glVertex3f(-0.5,-0.5,0);
glVertex3f(0.5,-0.5,0);
glVertex3f(0.5,0.5,0);
glEnd;
glEnable(GL_TEXTURE_2D);
glEnable(GL_DEPTH_TEST);
glColorMask(True,True,True,True);
glStencilFunc(GL_EQUAL,1,1);
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
//sich drehendes Dreieck
glPushMatrix;
glRotatef(Angle,0,1,0);
glColor4f(1,1,1,1);
glBegin(GL_TRIANGLES);
glColor3f(1,0,0); glVertex3f(0,1,0);
glColor3f(0,1,0); glVertex3f(-1.1,-1,0);
glColor3f(0,0,1); glVertex3f(1.1,-1,0);
glEnd;
glPopMatrix;
SwapBuffers(DC);
end;
ich seh immer bloß das bunte dreicke was sich dreht...
kann mir da jmd helfen?
hast du bei der OpenGL-Initialisierung den Stencilbuffer eingeschaltet ?
(da ist dieser Teil, bei dem du lauter Bit-Größen setzt, da muss der Wert für den Stencilbuffer>0 sein)
hab leider gerade keinen Compiler in reichweite, sonst könnte ichs dir genauer sagen.
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also zum Beschneiden von viereckigen Bereichen gibt es den Befehl glScissor. Damit definiert man ein Viereck und alles was außerhalb liegt wird abgeschnitten. In einer Gui muss man sich gar nicht mal mit dem Stencilbuffer rumschlagen, da eh fast alles nur viereckig ist.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Jo, mein Memo alias ListBox kann eigentlich kaum was. Liegt daran, dass ich keine Lust hatte dies zu implementieren.
Für mein damaliges Projekt brauchte ich das net.
Was mir jetzt noch einfällt:
Bei Andorra2D ist glaub ich auch ne sehr gute GUI dabei. Kannst ja mal im Projekte Forum suchen.
//Edit:
Wenn es dir nix ausmacht immer nur ganze Zeilen weiter zu scrollen, kannst du dir ja das mit dem Scissor etc. sparen,
dann geht das ja auch so.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Mit I0n0s hab ich in X-Dream eine sehr gute GUI mit Memo, Listen, Iconbars, Texten, Themes, XML based Formularen und so weiter gebaut aber ist die so stark in X-Dream eingebaut und der Code wird auch nicht mehr gepflegt, dass ich eher davon abraten würde sie produktiv zu verwenden.
Meine letzte Pascal GUI würde dir auch nicht viel bringen, die ist zwar mit und ohne OpenGL funktionsfähig aber ist Vektorbasiert und hat ne sehr bescheidenen Grafiksupport. http://karmarama.developer-alliance.org/upload/Bildschirmfoto-OGL-1.png Es dient halt noch als gute Vorlage, solange Traude's neue Auflage von dglGUI noch nicht da ist, würde ich wohl zu einer der hier gelisteten GUIs raten.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Was das umrechnen betrifft: Das sollte das geringere Problem sein (vorerst). Es sei denn du bist so wahnsinnig und renderst deine GUI im Perspektivischen Modus, das ist nicht empfohlen. Im Orthomodus sind das nichts weiter als ein paar additionen... Irgendwo hatten wir hier auch schonma so nen thread... ahja, hier.
Dort hatte ich eine hand voll Funktionen gepostet, die das benutzen von Scissoring bei GUIs erleichtern. Tun bei mir auch wunderbar ihren dienst, musst halt schauen, ob du das für dich verwenden willst/kannst. Und als letzten Post im Thread gibts auch noch ne nette kleine Zeichnung.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,
bis jetzt hab ich im perspektivischen Modus gerendert. Ich hatte probiert im Ortho modus zu rendern, aber irgendwie hat der aufruf von glOrtho nix gebracht und am ende war trotzdem alles perspektivisch...
Wie mach ich das? Muss das GUI da in ne Textur rendern?
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.