Aktuelle Zeit: 20.10.2019 16:44

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: CustomFilterCallback() custom parameter! (Windows x64)
BeitragVerfasst: 08.05.2019 10:06 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Da es keinen Custom Paramater für den Callback gibt habe ich mal was zusammengebastelt :)
Warum es diesen nicht von Haus aus gibt ist mir ein Rätsel.

Code:
Code:
EnableExplicit

UseJPEGImageDecoder()

Procedure.i FilterImageCallback(X.i,Y.i,ColorSrc.i,ColorDst.i)
  Protected *parameter
  !mov rax,[rsp + 150h]                                ;<- locate the image structure
  !mov rax,[rax + 20h]                                 ;<- extract the custom parameter
  !mov qword[p.p_parameter],rax
  Debug *parameter
  ProcedureReturn ColorSrc
EndProcedure

Procedure.i FilterImage(*Buffer,Path.s = #Null$)
  Protected image.i
  Protected backup.i
  Protected *parameter.Integer
  If *Buffer
    image = CatchImage(#PB_Any,*Buffer)
  Else
    If Path
      image = LoadImage(#PB_Any,Path)
    EndIf
  EndIf
  If IsImage(image)
    *parameter = image + $20                          ;<- pointer to the image structure (vacant spot afaik)
    backup = *parameter\i                             ;<- make a backup just to be safe
    If StartDrawing(ImageOutput(image))
      DrawingMode(#PB_2DDrawing_CustomFilter)
      *parameter\i = 123456789                        ;<- set the custom parameter
      CustomFilterCallback(@FilterImageCallback())
      Box(0,0,1,1)                                    ;<- process one pixel
      StopDrawing()
    Else
      FreeImage(image)
      image = #Null
    EndIf
    *parameter\i = backup                             ;<- restore the image structure
  EndIf
  ProcedureReturn image
EndProcedure

FilterImage(#Null,"test.jpg")

End

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye