Could you put some comments explaining what you did in that code? I wouldn't mind learning to write some wrappers...it's inevitable in the end anyways. Subject: Re: [swift-users] Need Help with C-to-Swift (finally) From: har...@harlanhaskins.com Date: Fri, 11 Dec 2015 15:46:21 -0500 CC: jason.du...@gmail.com; swift-users@swift.org To: gagemor...@outlook.com
It’s deceptively simple! Using just the functions exposed by cairo will be a piece of cake. The code will look almost exactly the same and work just as fast/well. However, bridging the C has some nasty effects to the types of your Swift code. For example, surface is of type COpaquePointer which is really unhelpful. It’d probably be a great exercise for you and the community to make nice, Swifty wrappers around Cairo to allow people to write beautiful, Cairo-using code. Like this, except with an actual understanding of libcairo: https://gist.github.com/6b96a1e0ec1ef838b5ea Best,Harlan On Dec 11, 2015, at 3:31 PM, Gage Morgan <gagemor...@outlook.com> wrote:Sir, you've just made my day. So it's really that simple? Subject: Re: [swift-users] Need Help with C-to-Swift (finally) From: har...@harlanhaskins.com Date: Fri, 11 Dec 2015 15:24:48 -0500 CC: jason.du...@gmail.com; swift-users@swift.org To: gagemor...@outlook.com So, it’s a very simple almost one-to-one translation of that C code block to Swift.You have to make sure to import CCairo at the beginning of the file, and change the variable declarations to use let instead of the C declaration. This works for me, as is. import CCairo let surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 240, 80)let cr = cairo_create (surface); cairo_select_font_face(cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD)cairo_set_font_size(cr, 32.0)cairo_set_source_rgb(cr, 0.0, 0.0, 1.0)cairo_move_to(cr, 10.0, 50.0)cairo_show_text(cr, "Hello, world") cairo_destroy(cr)cairo_surface_write_to_png(surface, "hello.png")cairo_surface_destroy(surface) On Dec 11, 2015, at 3:21 PM, Gage Morgan <gagemor...@outlook.com> wrote:Do so here in a few. Want a bug report for that? Sent from Outlook Mobile On Fri, Dec 11, 2015 at 12:08 PM -0800, "Harlan Haskins" <har...@harlanhaskins.com> wrote: Mind sending your CCairo modulemap? I’d love to help you get this translated to Swift. On Dec 11, 2015, at 2:44 PM, Gage Morgan via swift-users <swift-users@swift.org> wrote:I want to call PNG surfaces from Swift, as well as use cairo_line_to() and cairo_move_to() in Swift. Thing is, I need an example of cairo used in Swift so I can apply it to the rest of cairo. My goal is to generate an executable that outputs *.png images using swift. Thanks for the support,--MGage-- Sent from Outlook Mobile On Thu, Dec 10, 2015 at 10:40 PM -0800, "Jason Dusek" <jason.du...@gmail.com> wrote: When you say, output to Swift, do you mean, call it from Swift? Return the PNG or surface to Swift? On Thu, 10 Dec 2015 at 22:39 Gage Morgan via swift-users <swift-users@swift.org> wrote: So, if I had this code written in C: int main (int argc, char *argv[]) { cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80); cairo_t *cr = cairo_create (surface); cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD); cairo_set_font_size (cr, 32.0); cairo_set_source_rgb (cr, 0.0, 0.0, 1.0); cairo_move_to (cr, 10.0, 50.0); cairo_show_text (cr, "Hello, world"); cairo_destroy (cr); cairo_surface_write_to_png (surface, "hello.png"); cairo_surface_destroy (surface); return 0; } how would I output to Swift? If I can get one or two examples, I'll be closer to finished with using Cairo in Swift. _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users