DesktopBuffer für Blitz3D

Übersicht BlitzBasic DLLs und Userlibs

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

BladeRunner

Moderator

BeitragMi, Jul 15, 2009 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Etwas weniger spam würde diesem Thread sehr gut bekommen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

The_Nici

BeitragMi, Jul 15, 2009 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ChristianK hat Folgendes geschrieben:
Nici, hast du vorher auch GetDesktopBuffer aufgerufen?

Ja, habe ich.
Ein kleiner Codeausschnitt:
Code: [AUSKLAPPEN]

   GetDesktopBuffer()
   For y = 0 To gfy - 1
      For x = 0 To gfx - 1
         rgb% = GetDesktopPixel(x,y)
         a = (rgb And $FF000000)/$1000000
         r = (rgb And $FF0000)/$10000
         g = (rgb And $FF00)/$100
         b = rgb And $FF
         PokeByte(desktopbank,3*(x * y),r)
         PokeByte(desktopbank,3*(x * y) + 1,g)
         PokeByte(desktopbank,3*(x * y) + 2,b)
      Next
   Next

InitDesktop wurde auch schon ausgeführt.
MfG und danke für die schnelle Antwort. Smile
 

ChristianK

BeitragMi, Jul 15, 2009 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, bei mir werden die richtigen Farbwerte zurückgegeben. Das erste Sample funktioniert dann bei dir vermutlich auch nicht, oder?
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

The_Nici

BeitragMi, Jul 15, 2009 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, das funktioniert, das ist ja das verrückte.
Wenn ich nun die Pixel per WritePixelFast zeichne, sehe ich nichts. Zeichne ich sie einfach rot, werden sie angezeigt.

Holzchopf

Meisterpacker

BeitragMi, Jul 15, 2009 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
         PokeByte(desktopbank,3*(x * y),r)
         PokeByte(desktopbank,3*(x * y) + 1,g)
         PokeByte(desktopbank,3*(x * y) + 2,b)

ist falsch, das müsste
Code: [AUSKLAPPEN]
         PokeByte(desktopbank,3*(x + y * DesktopWidth),r)
         PokeByte(desktopbank,3*(x + y * DesktopWidth) + 1,g)
         PokeByte(desktopbank,3*(x + y * DesktopWidth) + 2,b)

sein.

Und wieso überhaupt eine Zerlegung? Den Wert könntest du auch einfach mit PokeInt speichern...
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

The_Nici

BeitragMi, Jul 15, 2009 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
danke vielmals Holzchopf! Jetzt geht es.
Entschuldigung an ChristianK dass ich seine Lib dafür verantwortlich machte. Wink

MfG
The_Nici

Edit: Achja, und, Holzchopf, ich brauche nur 3 bytes. Integer = 4 bytes = 25% mehr Speicherauslastung = 25% mehr Traffic beim versenden. ;>
 

jeykey

BeitragSa, Dez 05, 2009 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Weis jemand wie man die Funktion "GrabDesktop" auch unter BlitzMax verwenden kann?
Das Problem ist, dass ich nicht weis was ich für den Parameter "buffer" übergeben soll. Die Funktion "ImageBuffer" gibt es ja nicht in BlitzMax...
Ich hab schon unterschiedliche Sachen wie "pixmap.PixelPtr(0,0)" ausprobiert, aber nichts hat funktioniert.
 

ChristianK

BeitragSa, Dez 05, 2009 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Funktion kannst du leider nicht mit BlitzMax benutzen. Läuft nur mit Blitz3D-Buffern.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Dez 05, 2009 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit BlitzMax geht es auch:

https://www.blitzforum.de/foru...hp?t=15645
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Pummelie

BeitragSo, Jan 23, 2011 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Entschuldigung, das ich die Leiche schände, doch ich habe ein Problem mit der DLL.

Ich kann damit keine "großen" Desktop's abfragen... Nach einem bestimmten bereich liefert mit die DLL bei GetDesktopPixel immer nur eine 0 zurück...

ZB: GetDesktopPixel(1500,50) = 0
It's done when it's done.

hazumu-kun

BeitragMo, Jan 24, 2011 15:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Scheint eine interne Grenze der DLL zu sein.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group