[Mono-winforms-list] Does X11 support imply Mac OSX support?

Peter Dennis Bartok peter@novonyx.com
Sun, 26 Sep 2004 00:10:48 -0600


This is a multi-part message in MIME format.

------=_NextPart_000_06C7_01C4A35D.46E5AE40
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

>if such help is still needed. :)
Most certainly is the help needed and appreciated!

>I would love to get my hands dirty in doing some work on Mac support. :)
>where do I begin? I can code and test, have a Mac with latest everything.
Well, that's the thing. You need to know where to begin, we have little Mac 
know-how. There's two general approaches to doing a mac driver. Approach A 
is using the X11 driver and making things work with it and approach B is 
writing a native (Cocoa, or the C version of it, forgot the name) driver, 
and a corresponding theme.

Approach A is probably easier and somewhat faster, but Approach B is the 
'perfect' solution. With A chances are you have the Windows look'n'feel on 
the Mac.

If you you go down route A, the first thing I'm thinking you'll have to look 
at is Cairo. That's what we use for drawing, and that's what I'm guessing is 
blowing up. Someone just last week posted a MacOS X back-end for for Cairo, 
so I'd start by trying to tie that in. We (the SWF team) can provide 
assistance and guidance on the libgdiplus/cairo connection, to get the setup 
right, but we have no Mac or Mac programming experience to support you in 
the actual task.

For approach A, if you 're not scared off yet, you probably want to start by 
getting the latest:
1) cairo (www.cairographics.org)
2) Mac backed for cairo (I have attached the message from the cairo list 
describing it)
3) libgdiplus (from mono cvs)
4) mcs (from mono cvs)
5) mono (from mono cvs)

Then build 1,3,4 and 5 and try a little SWF 'hello world' app and see where 
it crashes. In parallel, build the mac cairo backend, and run some tests for 
cairo to see if the backend works. Next, I'd just hack up libgdiplus and 
force it to use the cairo backend, then run your swf hello world app again 
and see if it still crashes. At that point you have a good starting point to 
start the real work.

For approach B, you need to look at the functions provided by the driver and 
start finding equivalent functions on the Mac, and start using them. That's 
about as detailed as I can be, because I don't know much about the mac. Oh, 
you should be aware that the driver also handles idle and timer delegates.

Hope this helps you get started. Feel free to ask if I missed something.

Thanks!
 Peter 

------=_NextPart_000_06C7_01C4A35D.46E5AE40
Content-Type: message/rfc822;
	name="[cairo] Native Mac OS X port.eml"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="[cairo] Native Mac OS X port.eml"

X-Auth-No: 
Return-Path: <cairo-bounces@cairographics.org>
Received: from gabe.freedesktop.org not authenticated [131.252.208.82] by mail.novonyx.com with NetMail SMTP Agent $Revision:   3.89  $ on Linux; Wed, 22 Sep 2004 16:21:11 -0600
Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 55134A12B9; Thu, 23 Sep 2004 08:21:09 +1000 (EST)
X-Original-To: cairo@cairographics.org
Delivered-To: cairo@cairographics.org
Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.84]) by gabe.freedesktop.org (Postfix) with ESMTP id CC1D0A1123 for <cairo@cairographics.org>; Thu, 23 Sep 2004 08:21:03 +1000 (EST)
Received: from mac.com (smtpin08-en2 [10.13.10.153]) by smtpout.mac.com (8.12.6/MantshX 2.0) with ESMTP id i8MLpAMU014566 for <cairo@cairographics.org>; Wed, 22 Sep 2004 14:51:10 -0700 (PDT)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
Received: from [192.168.0.3] ([81.107.94.240]) (authenticated bits=0) by mac.com (Xserve/smtpin08/MantshX 4.0) with ESMTP id i8MLp98G018229 for <cairo@cairographics.org>; Wed, 22 Sep 2004 14:51:10 -0700 (PDT)
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Message-ID: <822D1754-0CE1-11D9-A23A-00039371865E@mac.com>
Content-Type: text/plain;
	format=flowed;
	charset="US-ASCII"
To: <cairo@cairographics.org>
From: "Calum Robinson" <calumr@mac.com>
Date: Wed, 22 Sep 2004 22:51:07 +0100
X-Mailer: Apple Mail (2.618)
Subject: [cairo] Native Mac OS X port
X-BeenThere: cairo@cairographics.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: cairo mailing list <cairo.cairographics.org>
List-Unsubscribe: <http://cairographics.org/cgi-bin/mailman/listinfo/cairo>,<mailto:cairo-request@cairographics.org?subject=unsubscribe>
List-Archive: <http://freedesktop.org/pipermail/cairo>
List-Post: <mailto:cairo@cairographics.org>
List-Help: <mailto:cairo-request@cairographics.org?subject=help>
List-Subscribe: <http://cairographics.org/cgi-bin/mailman/listinfo/cairo>,<mailto:cairo-request@cairographics.org?subject=subscribe>
Sender: <cairo-bounces@cairographics.org>
Errors-To: cairo-bounces@cairographics.org

http://homepage.mac.com/calumr/cairo.png

http://homepage.mac.com/calumr/cairo-macosx.zip

I have a CoreGraphics port of Cairo up & running - 1 or 2 minor bits 
(and 1 major bit - fonts) aren't working , but as it's mostly done I'm 
starting to wonder how this port should be made available for other 
developers.

I could edit the Makefile and add a CoreGraphics backend, which I will 
do at some point, but Makefiles are not my strong point. What might be 
better is to add the XCode project to Cairo CVS so that other 
developers can build the Cairo.framework used in the test app (I 
suspect more OS X developers would use a framework instead of whatever 
the Makefile builds).

If anyone wants to check it out, then you'll need XCode 1.2 (the code 
should hopefully work on Mac OS 10.2, but I haven't verified that yet). 
Just download the zip archive above and decompress it into the cairo/ 
directory in your copy of Cairo CVS (next to glitz & libsvg etc.). It 
contains 1 XCode project for building the Cairo framework and a sample 
app.

Comments, suggestions & general feedback would be much appreciated.


Calum Robinson
http://homepage.mac.com/calumr

_______________________________________________
cairo mailing list
cairo@cairographics.org
http://cairographics.org/cgi-bin/mailman/listinfo/cairo


------=_NextPart_000_06C7_01C4A35D.46E5AE40
Content-Type: message/rfc822;
	name="[cairo] Re Native Mac OS X port.eml"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="[cairo] Re Native Mac OS X port.eml"

X-Auth-No: 
Return-Path: <cairo-bounces@cairographics.org>
Received: from gabe.freedesktop.org not authenticated [131.252.208.82] by mail.novonyx.com with NetMail SMTP Agent $Revision:   3.89  $ on Linux; Wed, 22 Sep 2004 15:58:04 -0600
Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E6D9EA12D7; Thu, 23 Sep 2004 07:58:02 +1000 (EST)
X-Original-To: cairo@cairographics.org
Delivered-To: cairo@cairographics.org
Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.87]) by gabe.freedesktop.org (Postfix) with ESMTP id 09319A1123 for <cairo@cairographics.org>; Thu, 23 Sep 2004 07:58:01 +1000 (EST)
Received: from mac.com (smtpin01-en2 [10.13.10.146]) by smtpout.mac.com (Xserve/MantshX 2.0) with ESMTP id i8MLrPHT018308 for <cairo@cairographics.org>; Wed, 22 Sep 2004 14:53:25 -0700 (PDT)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
Received: from [192.168.0.3] (cpc6-rdng5-3-0-cust240.winn.cable.ntl.com [81.107.94.240]) (authenticated bits=0) by mac.com (Xserve/smtpin01/MantshX 4.0) with ESMTP id i8MLrNmc005319 for <cairo@cairographics.org>; Wed, 22 Sep 2004 14:53:24 -0700 (PDT)
MIME-Version: 1.0
In-Reply-To: <822D1754-0CE1-11D9-A23A-00039371865E@mac.com>
References: <822D1754-0CE1-11D9-A23A-00039371865E@mac.com>
Content-Type: text/plain;
	format=flowed;
	charset="US-ASCII"
Message-ID: <D5D1D9B7-0CE1-11D9-A23A-00039371865E@mac.com>
Content-Transfer-Encoding: 7bit
From: "Calum Robinson" <calumr@mac.com>
Date: Wed, 22 Sep 2004 22:53:27 +0100
To: <cairo@cairographics.org>
X-Mailer: Apple Mail (2.618)
Subject: [cairo] Re: Native Mac OS X port
X-BeenThere: cairo@cairographics.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: cairo mailing list <cairo.cairographics.org>
List-Unsubscribe: <http://cairographics.org/cgi-bin/mailman/listinfo/cairo>,<mailto:cairo-request@cairographics.org?subject=unsubscribe>
List-Archive: <http://freedesktop.org/pipermail/cairo>
List-Post: <mailto:cairo@cairographics.org>
List-Help: <mailto:cairo-request@cairographics.org?subject=help>
List-Subscribe: <http://cairographics.org/cgi-bin/mailman/listinfo/cairo>,<mailto:cairo-request@cairographics.org?subject=subscribe>
Sender: <cairo-bounces@cairographics.org>
Errors-To: cairo-bounces@cairographics.org

On 22 Sep 2004, at 22:51, Calum Robinson wrote:

> http://homepage.mac.com/calumr/cairo-macosx.zip

Oh - and you'll need this too:

http://homepage.mac.com/calumr/cairo-src.zip

Stick those 2 source files in the cairo/src directory.


Calum

_______________________________________________
cairo mailing list
cairo@cairographics.org
http://cairographics.org/cgi-bin/mailman/listinfo/cairo


------=_NextPart_000_06C7_01C4A35D.46E5AE40--