3D auf Desktop - wie fängt man sowas an?

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

3D auf Desktop - wie fängt man sowas an?

Beitrag von Morty »

Hi an alle.

Neulich sah' ich durch Zufall dieses Video: http://de.youtube.com/watch?v=D2SpwAIqau4

Und da stelle ich mir nun die Frage, wie machen die das? Ich meine, direkt so 3D Kram Fensterlos auf den Desktop. Hmmm?!?!

Die einzige Methode die mir auf die schnelle einfalle würde, wäre über Skining -> Regions. Sprich, es wird alles mit einem Lila Hintergrund gerendert -> und dieser wird dann wieder weggeschnitten.
Nur geht das so gut/schnell? Oder steckt da ein anderer Trick dahinter?

Gruss, Morty
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Beitrag von KatSeiko »

Also ein Versuch wäre, ob das vielleicht über die API und Windowed Screen möglich ist...

Code: Alles auswählen

OpenWindowedScreen(GetDesktopWindow_(), 0, 0, GetSystemMetrics_(0), GetSystemMetrics_(1), 0, 0, 0)
Das dürfte (zumindest theoretisch) einen Screen zum zeichnen auf dem Desktop-Fenster erstellen. Das Hintergrundbild kann man auch mit nem API-Befehl bekommen, aber der Befehl fällt mir grad nicht ein.
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Benutzeravatar
Morty
Beiträge: 268
Registriert: 22.10.2004 07:20
Wohnort: Erfurt
Kontaktdaten:

Beitrag von Morty »

Die Sache ist aber, dass die ja nicht das Hintergrundbild nehmen, sondern im Hintergrund ist der Desktop bzw. andere offene Fenster. Kann man erkennen, wenn im Video eine Bilddatei vom Desktop auf den "Chat" gezogen wird.

Morty
Dare Devil
Beiträge: 237
Registriert: 17.10.2008 18:24
Kontaktdaten:

Beitrag von Dare Devil »

Also mit 3D-Zeugs kenne ich mich nicht aus - aber ich denke nicht, dass das 3D-Zeichnen das Problem ist - sondern das Fenster transparent zu machen und das is mehr oder weniger kein grosses Problem:

Code: Alles auswählen

OpenWindow(0, 0, 0, 200, 200, "Transparentes Fenster", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)

SetWindowLong_(WindowID(0), #GWL_EXSTYLE, #WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(0), 0, 0, 1) 

SetClassLong_(WindowID(0), #GCL_HBRBACKGROUND, 0) 

Repeat : Until WindowEvent() = #PB_Event_CloseWindow
Dann muesste man halt nur noch die 3D-Sprite draufzeichnen und das Fenster randlos machen - also ich denk nich, dass das ein grosses Problem ist.
Bild + Bild

Bild
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Im Video betreiben sie das auf Vista, vielleicht ist es da einfacher weil Aero sowieso schon vom 3D-Part der Grafikkarte berechnet wird...

Allerdings 3D aufm Desktop ah ich schon zu 1998-Zeiten, beim GL-Mark ist so ein Fluggerät über den Desktop gedüst wenn man das Programm gestartet hat.
I´a dllfreak2001
Antworten