Code: Select all
'****************************************************************************
' By Randall Glass
'
' I donate this code to the public domain
'
'*****************************************************************************
#LANG "fblite"
#include once "fbgfx.bi"
DEFINT A-Z
Declare function dylibsymbol ( byval libhandle as integer, symbol as string ) as any ptr
DIM DllPTR AS ANY PTR
type xbr_params
xbrinput AS UBYTE PTR
xbroutput AS UBYTE PTR
inWidth AS INTEGER
inHeight AS INTEGER
inPitch AS INTEGER
outPitch AS INTEGER
xbrdata AS ANY PTR
end type
DIM SHARED XbrParm AS xbr_params
'$static
DIM SHARED rgbtoyuv(16777216) as Ulong
'$Dynamic
DIM SHARED XbrParmPtr AS ANY PTR
XbrParm.xbrdata = @rgbtoyuv(0)
XbrParmPtr = @XbrParm
DIM SHARED xbr_init_data As SUB stdcall(BYVAL MyXbrData AS ANY PTR)
DIM SHARED xbr_filter_xbr2x As SUB stdcall(BYVAL MyXbrParms AS ANY PTR)
DIM SHARED xbr_filter_xbr3x As SUB stdcall(BYVAL MyXbrParms AS ANY PTR)
DIM SHARED xbr_filter_xbr4x As SUB stdcall(BYVAL MyXbrParms AS ANY PTR)
DIM SHARED xbr_filter_hq2x SUB stdcall(BYVAL MyXbrParms AS ANY PTR)
DIM SHARED xbr_filter_hq3x SUB stdcall(BYVAL MyXbrParms AS ANY PTR)
DIM SHARED xbr_filter_hq4x SUB stdcall(BYVAL MyXbrParms AS ANY PTR)
DllPTR = DyLibLoad("libxbr.dll")
If DllPTR = 0 Then
Print "Unable to load libxbr.dll"
SLEEP
END
END IF
xbr_init_data = DyLibSymbol ( DllPTR, "xbr_init_data" )
xbr_filter_xbr2x = DyLibSymbol ( DllPTR, "xbr_filter_xbr2x" )
xbr_init_data(XbrParm.xbrdata)
dim shared ScrPtr as any ptr
ScreenRes(1280, 960, 32,, 1) ' full screen mode
Dim IMG AS ANY PTR
IMG = ImageCreate(640, 480,,32)
BLOAD "Radtutor.bmp", IMG
result% = ImageInfo( IMG,,,,, ScrPtr)
XbrParm.xbrinput = ScrPtr
XbrParm.xbroutput = Screenptr
XbrParm.inWidth = 640
XbrParm.inHeight = 480
XbrParm.inPitch = 2560
XbrParm.outPitch = 5120
cls
SCREENLOCK
xbr_filter_xbr2x( XbrParmPtr)
SCREENUNLOCK
sleep
END