Seite 1 von 1

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

Verfasst: 02.12.2008 12:20
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

Verfasst: 02.12.2008 12:53
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.

Verfasst: 02.12.2008 13:00
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

Verfasst: 02.12.2008 13:44
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.

Verfasst: 02.12.2008 16:09
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.