Я попытался переписать RNFrostedSidebar с помощью Swift, но я встретил проблему.Как использовать UnsafePointer в vImageBoxConvolve_ARGB8888() с помощью Swift?
В строке 99 ~ 101 в RNFrostedSidebar.m,
func vImageBoxConvolve_ARGB8888(_ src: UnsafePointer<vImage_Buffer>,
_ dest: UnsafePointer<vImage_Buffer>,
_ tempBuffer: UnsafeMutablePointer<Void>,
_ srcOffsetToROI_X: vImagePixelCount,
_ srcOffsetToROI_Y: vImagePixelCount,
_ kernel_height: UInt32,
_ kernel_width: UInt32,
_ backgroundColor: UnsafeMutablePointer<UInt8>,
_ flags: vImage_Flags) -> vImage_Error
функция vImageBoxConvolve_ARGB8888(...)
требует UnsafePointer, я пытался использовать effectInBuffer
или &effectInBuffer
, но не работал.
Использование effectInBuffer
как параметр приведет к ошибке 'vImage_Buffer' is not convertible to 'UnsafePointer<vImage_Buffer>'
. Но в Using Swift with Cocoa and Objective-C это кажется действительным.
Как я мог это сделать?
Можете ли вы показать, как вы объявили 'effectInBuffer' и' effectOutBuffer'? Если вы объявили их изменчивыми, использование префикса '&' должно работать. –
@NateCook Как это: 'пусть effectInBuffer = vImage_Buffer (данные: CGBitmapContextGetData (effectInContext), высота: CGBitmapContextGetHeight (effectInContext), ширина: CGBitmapContextGetWidth (effectInContext), rowBytes: CGBitmapContextGetBytesPerRow (effectInContext))' – WildCat