[swift-users] Need Help with C-to-Swift (finally)

Jack Lawrence jackl at apple.com
Fri Dec 11 18:28:08 CST 2015


For getter-setter pairs like `setLineWidth`, you might consider turning them into properties:

cairo.setLineWidth(0.1) // old
cairo.lineWidth = 0.1 // new

> On Dec 11, 2015, at 4:22 PM, Gage Morgan via swift-users <swift-users at swift.org> wrote:
> 
> Harlan,
> 
> The answer is yes. I even managed to get a couple you didn't list on my own:
> 
> let cairo = Cairo(format: CAIRO_FORMAT_ARGB32, width: 421, height: 410)
> cairo.scale(10.0, y: 10.0)
> cairo.moveTo(29.0, y: 14.7)
> cairo.lineTo(37.6, y: 13.0)
> cairo.moveTo(37.6, y: 13.0)
> cairo.lineTo(30.4, y: 22.2)
> cairo.moveTo(30.4, y: 22.2)
> cairo.lineTo(29.0, y: 14.7)
> cairo.setLineWidth(0.1)
> cairo.stroke()
> cairo.surfaceWriteToPNG("boobs.png")
> 
> Swift is both really neat and really frustrating when learning it. 
> 
> Subject: Re: [swift-users] Need Help with C-to-Swift (finally)
> From: harlan at harlanhaskins.com <mailto:harlan at harlanhaskins.com>
> Date: Fri, 11 Dec 2015 17:21:38 -0500
> CC: kwame.bryan at gmail.com <mailto:kwame.bryan at gmail.com>; swift-users at swift.org <mailto:swift-users at swift.org>
> To: gagemorgan at outlook.com <mailto:gagemorgan at outlook.com>
> 
> Gage,
> 
> Sorry, I just got back from class.
> 
> I’ll respond in line!
> 
> On Dec 11, 2015, at 5:09 PM, Gage Morgan <gagemorgan at outlook.com <mailto:gagemorgan at outlook.com>> wrote:
> 
> Harlan,
> 
> I read on cairographics.org <http://cairographics.org/> about bindings awhile back. I think they want cairo, not surface, so we would have something like:
> 
> let cairo = Surface(format: CAIRO_FORMAT_ARGB32, width: 240, height: 80)
> cairo.setFontFace("serif", weight: CAIRO_FONT_WEIGHT_BOLD)
> cairo.setFontSize(32.0)
> cairo.setSourceRGB(0.0, g: 0.0, b: 1.0)
> cairo.moveTo(x: 10, y: 50)
> cairo.showText("Hello, World!")
> cairo.writeToPNG("hello.png")
> 
> Would this work the same as before without "surface" but instead "cairo”?
> 
> Absolutely! That’s just a variable name — it could be called ‘puppies’, though that’s not very readable.
> 
> 
> Sent from Outlook Mobile <https://aka.ms/qtex0l>
> 
> 
> 
> On Fri, Dec 11, 2015 at 2:00 PM -0800, "Gage Morgan via swift-users" <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
> 
> I went and looked at it, and even now it looks like I want to take every function I've used in Cairo and translate it to Swift. Swift is such a...simple language compared to everything else. That being said, as a result of the specs, it is also much more verbose in terms of writing the code. Compared to other languages, it is written out instead of shoved onto a few lines. 
> 
> Is there a way to import modules into other modules? Because it looks like a weekend project that will eventually get posted by myself at http://github.com/Christoffen-Corporation <http://github.com/Christoffen-Corporation>. 
> 
> Sent from Outlook Mobile <https://aka.ms/qtex0l>
> 
> I’d recommend having a look at the Swift package manager example again — https://github.com/apple/swift-package-manager/blob/master/Documentation/SystemModules.md <https://github.com/apple/swift-package-manager/blob/master/Documentation/SystemModules.md>
> 
> There’s an example of using those modules together.
> 
> 
> On Fri, Dec 11, 2015 at 1:52 PM -0800, "Gage Morgan via swift-users" <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
> 
> I meant the code posted in the Gist link above. I don't know jack squat about qsort. I'm hoping that if I can reverse-engineer code already produced, I can apply it to other parts of Cairo. 
> 
> Sent from Outlook Mobile <https://aka.ms/qtex0l>
> 
> I’ll go ahead and comment it, but I think it’s simplistic enough that it should be readable with a grasp of some Swift concepts. Perhaps it’s a good idea to look through The Swift Programming Language to figure out some of the constructs I used — they’re fairly basic constructs.
> 
> 
> On Fri, Dec 11, 2015 at 1:34 PM -0800, "Kwame Bryan"<kwame.bryan at gmail.com <mailto:kwame.bryan at gmail.com>> wrote:
> 
> Tutorial on the subject. http://chris.eidhof.nl/posts/swift-c-interop.html <http://chris.eidhof.nl/posts/swift-c-interop.html> 
> 
> Regards
> Kwame
> 
> 
> <Mail Attachment.txt><Mail Attachment.txt>
> 
>  _______________________________________________
> swift-users mailing list
> swift-users at swift.org <mailto:swift-users at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users <https://lists.swift.org/mailman/listinfo/swift-users>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20151211/d2ffdf9c/attachment.html>


More information about the swift-users mailing list