Sunday, 15 March 2015

types - Convert CFContextRef to mutable void pointer in swift? -



types - Convert CFContextRef to mutable void pointer in swift? -

i'm trying convert objc code swift:

cgcontextref contextref = cgbitmapcontextcreate(null, proposedrect.size.width, proposedrect.size.height, cgimagegetbitspercomponent(imageref), 0, colorspaceref, (cgbitmapinfo)kcgimagealphapremultipliedfirst); nsgraphicscontext *context = [nsgraphicscontext graphicscontextwithgraphicsport:contextref flipped:no];

so far ended this:

var bitmapcontext: cgcontext = cgbitmapcontextcreate(data, uint(proposedrect.width), uint(proposedrect.height), cgimagegetbitspercomponent(image), 0, colorspace, cgbitmapinfo(cgimagealphainfo.premultipliedfirst.toraw())) allow context = nsgraphicscontext(graphicsport: bitmapcontext, flipped: false)

the problem cgbitmapcontextcreate returns cgcontext type , nsgraphicscontext initializer accepts graphicsport cmutablevoidpointer type. how can convert cgcontext cmutablevoidpointer?

related reverse type casting found here, didn't provide much help me how convert copaquepointer in swift type (cgcontext? in particular)

i ended reinterpretcast function returning intermediate int variable bitmapcontext address.

var bitmapcontext: cgcontext = cgbitmapcontextcreate(...) allow bitmapcontextaddress: int = reinterpretcast(bitmapcontext) allow bitmapcontextpointer: cmutablevoidpointer = copaquepointer(unsafepointer<cgcontext>(bitmapcontextaddress)) allow context = nsgraphicscontext(graphicsport: bitmapcontextpointer, flipped: false)

pointers types casting swift void

No comments:

Post a Comment