idea: display drivers

Charles Davis cdavis at mymail.mines.edu
Sat Feb 6 20:42:57 CST 2010


C.W. Betts wrote:
> Is is just because of the Objective-C code? Would it be safe to make C functions that would call Objective-C?  Such as:
> cheader.h:
> typedef struct struct1 struct1;
> cfuncCreate(struct1 *s);
> cfunc1();
> cfunc2();
> cfuncDestroy (struct1 *s);
> 
> cfile.m:
> @interface WHQFunc
> {
> 
> }
> -(id)init;
> -(void)dealloc;
> @end
> struct 
> {
> 	WHQFunc *ObjC;
> 	int ids;
> }struct1;
> @implementation WHQFunc
> 
> -(id)init
> {
> 	return [super init];
> }
> -(void)dealloc
> {
> 	[super dealloc];
> }
> @end
> 
> cfunc1()
> {
> 
> }
> cfunc2()
> {
> 
> }
> cfuncCreate(struct1 *s)
> {
> 	s = malloc(sizeof(struct1));
> 	[[s->ObjC alloc] init];
> }
> cfuncDestroy (struct1 *s)
> {
> 	[s->ObjC release];
> 	free(s);
> }
> 
Working on it.

The problem is that there can't be any Objective-C code in Wine. At all.
Or C++. Or Fortran. Or Pascal. Or Ada. Or Java. Or C# or VB. Or any
language other than pure, procedural C.

I wanted to wait until it was finished, but I may as well announce it
now. I'm working on a new tool to create pure C bindings to Objective-C
frameworks. That way, you can use an Objective-C framework (like the
Cocoa Foundation and AppKit frameworks) from C. There is a even a
companion framework that lets you define your own classes and create
instances of them--without writing a single line of Objective-C.

If you'll be patient, I'll be finishing it soon, and I'll post the
source and binaries somewhere so you can use it. My intent is precisely,
among other things, to use this to create a Quartz driver that will work
in 64-bit (because the Carbon UI stuff doesn't work in 64-bit).

Chip



More information about the wine-devel mailing list