Desktop als Textur verwenden ??

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

loosergt

Betreff: Desktop als Textur verwenden ??

BeitragSa, Jul 17, 2004 23:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man den gesammten Desktop als Textur verwenden ? Wollte diese Textur auf einen Cube kleben und im Vollbildmodus den Cube von der Cam wegdrehen oder was auch immer. Also Quasi-Desktop 3D-mäßig wegdrehen. Wie grabbe ich den Desktop-Inhalt als Textur ? Shocked
Web : http://64kbyte.homeip.net
286@16MHz/8MB/40MB-HD/Voodoo 12MB/SB-16 Value/10MBit-Koax-LAN@topSPEED

Vertex

BeitragSa, Jul 17, 2004 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ja geht, mit ScreenWidth = apiGetDeviceCaps(apiGetDC(0), 8) und ScreenHeight = apiGetDeviceCaps(apiGetDC(0), 10) Breite und Höhe auslesen lassen.
Mit hWnd = apiGetActiveWindow() Fensterhandle, und mit hDC = apiGetDC(hWnd) den DeviceContext vom eigenen Fenster holen.
Das eigene Fenster mit apiShowWindow hWnd, 0 unsichtbar machen. Nun kannst du jeden pixel des Desktops mit apiGetPixel(hDC, x, y) auslesen lassen. Dann das Fenster mit apiShowWindow hWnd, 5 wieder anzeigen, und den DeviceContext mit apiReleaseDC(hDC) freigeben.
mfg olli

loosergt

BeitragSo, Jul 18, 2004 0:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Wink ja prust erstma ...
Also ich hab jetzt mal folgendes geschrieben :

Graphics3D 1024,768,32,1
SetBuffer=BackBuffer()

ScreenWidth = apiGetDeviceCaps(apiGetDC(0))
ScreenHeight = apiGetDeviceCaps(apiGetDC(0), 10)

hWnd = apiGetActiveWindow()
hDC = apiGetDC(hWnd)

apiShowWindow hWnd, 0

For y=0 To 767
For x=0 To 1023
apiGetPixel(hDC, x, y) ;auslesen lassen. Dann das Fenster mit

;>>>>> hier weiss ich nicht weiter !! wohin mit den Pixeln ?

Next
Next

apiShowWindow hWnd, 5 ;wieder anzeigen, und den DeviceContext mit
apiReleaseDC(hDC)


Hilf mir nochmal ... Surprised
Web : http://64kbyte.homeip.net
286@16MHz/8MB/40MB-HD/Voodoo 12MB/SB-16 Value/10MBit-Koax-LAN@topSPEED

Vertex

BeitragSo, Jul 18, 2004 1:14
Antworten mit Zitat
Benutzer-Profile anzeigen
apiGetPixel(hDC, x, y) gibt wie ReadPixel(Fast) einen Integerwert zurück, den du mit WritePixel(Fast) in deine Texture reinzeichnen kannst. hier sei aber anzumerken, dass die Tetxuren natürlich auf 2er Potenzen skaliert werden, also entweder alles ersteinmal in ein Image und dann mit Blitz skalieren(lahm) oder gleich selber die Skalierung mit berechnen und Performencegewinn rausziehen. Ach und: SetBuffer=BackBuffer() geht nicht, und die For-Next-Schleifen kannst du als To-Wert auch ScreenWidth/Height-1 übergeben Smile
mfg olli

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group