Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 21:41

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Jun 19, 2012 16:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Du hast also ein normales Fenster (TForm) mit einem OpenGL-Kontext der die ganze Form bedeckt und das Fenster ist transparent? Wenn ja, dann vergiss es. Sowas ist im OpenGL-Standard nicht vorgesehen und wird in den seltensten Fällen funktionieren.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 17:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
EWeiss hat geschrieben:
Nein ich habe ein API Fenster welches über CreateWindowEx erstellt wird also zwei davon.


Spielt keine Rolle, TForm kapselt das ja letztendlich. Mir gings drum ob du normale Fenster hast oder eigene in einer OpenGL GUI. Da es aber normale Windowsfenster sind wirst du da vergessen können. Transparente Fenster + OpenGL sind eigentlich ein Nogo. Wundert mich dass es bei dir überhaupt teilweise funktioniert, aber man sollte davon die Finger lassen, die meisten Implementationen unterstützen dass eh nicht.

Sowas macht man dann sowieso über eine eigene GUI. Also ein OpenGL-Fenster und da renderst du dann einfach eigene Fenster drin über eine selbstgebaute GUI.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 17:54 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Für jeden Pixel darf laut MS nur ein HWND existieren.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 17:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
EWeiss hat geschrieben:
Sascha Willems hat geschrieben:
EWeiss hat geschrieben:
Nein ich habe ein API Fenster welches über CreateWindowEx erstellt wird also zwei davon.


Spielt keine Rolle, TForm kapselt das ja letztendlich. Mir gings drum ob du normale Fenster hast oder eigene in einer OpenGL GUI. Da es aber normale Windowsfenster sind wirst du da vergessen können. Transparente Fenster + OpenGL sind eigentlich ein Nogo. Wundert mich dass es bei dir überhaupt teilweise funktioniert, aber man sollte davon die Finger lassen, die meisten Implementationen unterstützen dass eh nicht.

Sowas macht man dann sowieso über eine eigene GUI. Also ein OpenGL-Fenster und da renderst du dann einfach eigene Fenster drin über eine selbstgebaute GUI.


Ich habe eine eigene "GUI" die in keinerweise irgend etwas mit TComponente/TForm oder ähnliche ableitungen hat.
Aufgebaut auf API-Win32.. NonVcl.

Ich weiss auch nicht was da so schwer ist das Window Transparent zu machen das sind reine Speicheroperationen Bild in Speicher kopieren BitBlt und fertig.
Das ist auch nicht mein problem das es geht siehst du ja ;) sondern das ich es nicht verschieben kann.
Von Hand ja! Aber nicht mit den genannten API Funktionen.

Zitat:
Für jeden Pixel darf laut MS nur ein HWND existieren.

Hab auch nichts anderes

gruss


Dann hast du keine 2 Fenster auf deinen Screenshot

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 18:03 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Drück dich doch mal bitte etwas konkreter aus. Du hast also ein OpenGL-Fenster und darüber ein normales Fenster ohne OpenGL-Kontext, welches halbtransparent über dem OpenGL-Fenster liegt? Und das kannst du nicht verschieben wenn du es mit der Maus anpackst? Wenn ja, dann hat das ja mit OpenGL direkt nix zu tun?

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 18:08 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
wenn dem so ist wie Sasha sagt dann verstößt du gegen die Win API da du versuchst einen Pixel mehere HWNDs zuzuweisen. Was du machen könntest wäre entweder den
entsprechenden GL Bereich in ein Bitmap zu kopieren und die Transparenz im 2. Fenster zu simulieren. Oder du verzichtest auf die Events vom 2. Fenster und kopierst dessen
Bitmap in eine GL Textur. Ansonsten normales Blending gibts unter Windows zwischen verschiedenen Fenstern nicht.

[edit]

oder du setzt den "Alphakanal" auf monochrome Werte.

_________________
Meine Homepage


Zuletzt geändert von yunharla am Di Jun 19, 2012 18:14, insgesamt 3-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 18:44 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Sagens mal, weißt du überhaupt warum im ersten Nehe Tutorial zum Beispiel direkt auf solche Sachen wie WS_CLIPCHILDREN hingewiesen wird? oder warum
GTK Anwendungen häufig die Desktop effekte deaktivieren?

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 18:50 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
yunharla hat geschrieben:
oder warum GTK Anwendungen häufig die Desktop effekte deaktivieren?

Das interessiert mich. Bei mir tun sie das nicht (Linux ;) ).

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 18:53 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Lord Horazont hat geschrieben:
yunharla hat geschrieben:
oder warum GTK Anwendungen häufig die Desktop effekte deaktivieren?

Das interessiert mich. Bei mir tun sie das nicht (Linux ;) ).

grüße


Pinguine cheaten halt :P

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 19:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
EWeiss hat geschrieben:
yunharla hat geschrieben:
Sagens mal, weißt du überhaupt warum im ersten Nehe Tutorial zum Beispiel direkt auf solche Sachen wie WS_CLIPCHILDREN hingewiesen wird? oder warum
GTK Anwendungen häufig die Desktop effekte deaktivieren?


Warum die das tun liegt im ermessen jedes einzelnen.
Hift mir aber nicht wirklich weiter ob die nun genug resourcen zur verfügung haben oder nicht.
Für meinen Geschmack möchte ich etwas für's Auge deshalb käme so ein System wie Win8 bsp. für mich auch nicht in frage.
Das ist dann eher was für Leute die wie du schreibst eh alles Ausschalten.

Wenn ich möglichkeiten habe in OpenGL die ich nutzen kann dann tue ich das. ;)

gruss


Also kp aber wenn dir ein standart Werk zu GL wie Nehe dir ein dickes
Zitat:
REQUIERED

an den Kopf knallt und ein anderes standart Werk zu Windows wie MSDN dir sagt "lass es sonst...
Zitat:
draw any child HWND yourself, including dialogs and dropdowns (seit Vista übrigens auch Fonts etc.)

(mhhh woran erinnert mich das gerade??? )
macht dich das nicht ein klein wenig nachdenklich? so nach dem Motto "hey, ich hab da
nicht wirklich ne Wahl weil sonst wirds böse"

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jun 19, 2012 20:12 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Mein lieber der Artikel den ich da zitiert habe geht um zwei Child HWNDs die man untereinander auf einen gemeinsamen Parent HWND vermischt,
in deinen Fall ist der nächsthöhere Parent mit hoher wahrscheinlichkeit aber HWND 0 (also der Desktop). Wenn du also einen Overlay effekt erstellen
willst bleibt dir nur (wie übrigens gleich zum Anfang erwähnt) eines der beiden HWNDs als Parent des anderen zu nutzen oder ein neues gemeinsames
HWND, in dem beide Passen, zu nutzen um den Effekt, wie im Artikel beschrieben, selbst umzusetzen, oder den Effekt auf monochrome (nicht greyscale)
Werte zu beschränken (HRGNs).

[edit]
es gäbe eventuell noch die Möglichkeit einen Hack mit Hilfe des Fensterrahmens zu basteln (der IE kann ja es anscheinend), allerdings keine Ahnung ob
und wie usw. man damit dann auch wirklich arbeiten könnte.

_________________
Meine Homepage


Zuletzt geändert von yunharla am Di Jun 19, 2012 21:27, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 20, 2012 10:15 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Nein ernsthaft, warum tun sie das? Ich würd das gern mal wissen. Ich habe ja auch meine Ursprünge in Windows ;).

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 20, 2012 16:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
EWeiss hat geschrieben:
Lord Horazont hat geschrieben:
Nein ernsthaft, warum tun sie das? Ich würd das gern mal wissen. Ich habe ja auch meine Ursprünge in Windows ;).

grüße


Habe ich doch schon gesagt.
Der eigenen befriedigung wegen und weil ich nicht nur stupid etwas erstellen will
sondern auch freude mit meinen Projekten empfinden möchte.


Sorry, das ging nicht an dich sondern an yunharla. Normalerweise Sieze ich Leute hier nicht :)

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 20, 2012 17:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
naja was ich mich jetzt bei dem Bild mit der Klampfe frage ist: warum nicht einfach ein sehr kleines GL widget/fenster nutzen um in
ein FBO zeichnen lassen und diesen kopieren und anschließend als Bitmap ausgeben? ;) das bissl Performance dürfte doch egal sein.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 13 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 15 Queries | GZIP : On ]