GrabImage funktioniert nicht auf allen OS-Systemen gleich

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

rema

Betreff: GrabImage funktioniert nicht auf allen OS-Systemen gleich

BeitragMo, Jan 09, 2006 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe mal ein wenig gestöbert und bin auf einer Tutorial-Seite gestossen:
http://www.2dgamecreators.com/...iders.html

Unter dem Thema: SLIDER_SCROLLBAR kommt ein Beispiel:

Code: [AUSKLAPPEN]
SuperStrict

Local MyWindow:TGadget=CreateWindow("Slider Example", 200,200,320,320,,WINDOW_TITLEBAR)
Local HorizontalSlider:TGadget=CreateSlider(10,210,200,20,MyWindow, SLIDER_HORIZONTAL )
Local VerticalSlider:TGadget=CreateSlider(210,10,20,200,MyWindow, SLIDER_VERTICAL )
Local MyCanvas:TGadget=CreateCanvas(10,10,200,200,MyWindow)

Local map:TPixmap=LoadPixmap("t13-05.jpg")
Local x:Int=0
Local y:Int=0

SetSliderRange VerticalSlider,0, PixmapHeight(Map)-200
SetSliderRange HorizontalSlider,0,PixmapWidth(Map)-200

Repeat
  WaitEvent()

  Select EventID()

     Case EVENT_WINDOWCLOSE
        End

     Case EVENT_GADGETACTION ' Slider-Position feststellen
        Select EventSource()
           Case HorizontalSlider
            Print "slider_h"
              x=EventData()
           Case VerticalSlider
            Print "slider_v"
              y=EventData()
        End Select

        RedrawGadget(MyCanvas) ' GadgetPaint Event auslösen

     Case EVENT_GADGETPAINT ' Gadget bzw Canvas neu zeichnen
      Print "gadget_paint"
      Print "h: "+ x +"   v: "+ y
       SetGraphics CanvasGraphics (MyCanvas) ' Canvas-Buffer setzten
       Cls ' löschen
       DrawPixmap map,0,0 ' mit den Koordinaten [0,0] zeichnen
       Local Pix:TPixmap=GrabPixmap(x,y,200,200) ' ausgewähltes Stück graben, und hier funzt es nicht mit Linux und MacOS
       Cls ' wieder löschen
       DrawPixmap  pix,0,0 ' gegrabtes Image zeichen
       Flip

   End Select

   SetStatusText  MyWindow,"Slider values (x,y)="+x+","+y

Forever


Und diese Ansicht sollte dabei herauskommen:

user posted image

Nun, unter Mac und Linux funktioniert das ganze soweit, nur das GrabPixmap aber nur den vorher sichtbaren Teil kopiert. Der verdeckte Teil bleibt verborgen und somit wird dieser als schwarzer Rand gezeichnet. Schlussendlich habe ich dies unter Windows getestet, und siehe da der Quellcode funktioniert doch, aber eben nur unter Windows.

Grummel, Grummel... Liegts jetzt generell an des OS, bzw ich denke DirectX und OpenGL, oder an GrabImage. Ich denke ersteres....

Ich suche mal im eng. Forum nach obs eine Bugmeldung hat. Sonst genneriere ich eine...

[/list]

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group