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

Harlan Haskins harlan at harlanhaskins.com
Fri Dec 11 14:24:48 CST 2015


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 <gagemorgan at outlook.com> wrote:
> 
> Do so here in a few. Want a bug report for that?
> 
> Sent from Outlook Mobile <https://aka.ms/qtex0l>
> 
> 
> 
> On Fri, Dec 11, 2015 at 12:08 PM -0800, "Harlan Haskins" <harlan at harlanhaskins.com <mailto:harlan at 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 at swift.org <mailto:swift-users at 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 <https://aka.ms/qtex0l>
>> 
>> 
>> 
>> On Thu, Dec 10, 2015 at 10:40 PM -0800, "Jason Dusek" <jason.dusek at gmail.com <mailto:jason.dusek at 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 at swift.org <mailto:swift-users at 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 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>
>> 
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org <mailto:swift-users at swift.org>
>> 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/92262a1b/attachment.html>


More information about the swift-users mailing list