Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Intel Mac Allegro Port

This thread is locked; no one can reply to it. rss feed Print
Intel Mac Allegro Port
Richard Phipps
Member #1,632
November 2001
avatar

Can I just ask the Mac developers to clarify the current status of the Allegro Intel Mac Port?

We are looking at porting the latest shareware game we are working on to the Mac and we are concerned that the Intel Mac port is not ready to allow us to do this easily.

What are the problem areas that the Mac developers are aware of?

Thank you,
Richard.

Peter Hull
Member #1,136
March 2001

Well, I've got an intel mac and as far as I know it works as well as the PPC version. I recently checked to SVN in some stuff to build a universal binary version of the library. Contact me separately if you need any help on testing/porting.

Pete

juvinious
Member #5,145
October 2004
avatar

Is there a reason the mouse cursor is shown when the mouse is installed in fullscreen. I can't seem to hide it or make it go away, it's pretty annoying.

[edit]
Someone else seems to have the issue as well in the RPs other thread.

__________________________________________
Paintown

Richard Phipps
Member #1,632
November 2001
avatar

Thanks Pete. I'll see what the others say about any problems they've encountered. :)

Peter Hull
Member #1,136
March 2001

On the mouse thing, if I run this code (also attached)

1#include <allegro.h>
2 
3int main(void)
4{
5 allegro_init();
6 install_mouse();
7 install_keyboard();
8 enable_hardware_cursor();
9 set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, 640, 480, 0, 0);
10 show_mouse(screen);
11 readkey();
12 show_mouse(NULL);
13 readkey();
14 set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
15 return 0;
16}
17END_OF_MAIN()

The mouse cursor disappears when I press a key and doesn't come back. Have you got code where it does come back or have I misunderstood or what?

Pete

Richard Phipps
Member #1,632
November 2001
avatar

What ever I did, either with Allegro calls or the Windows specific API I couldn't hide the mouse after show_mouse(screen) if it was a hardware cursor.

Peter Hull
Member #1,136
March 2001

Quote:

What ever I did, either with Allegro calls or the Windows specific API

Are we still talking about Mac OSX or are you trying to blow my tiny mind :P

Now I come to think about it, was this a colour depth related thing? Juvinious and Runesabre, can you tell me what colour depth you're using? Does everything work with my code (in 8bpp)?

Pete

Richard Phipps
Member #1,632
November 2001
avatar

Sorry! I got confused with the other thread in which I had a problem with using a hardware cursor under Windows. DOH! :'(

Peter Hull
Member #1,136
March 2001

OK, fellows, can you try this patch (against 4.2 SVN)
(also attached)

1Index: src/macosx/qzmouse.m
2===================================================================
3--- src/macosx/qzmouse.m (revision 7458)
4+++ src/macosx/qzmouse.m (working copy)
5@@ -337,7 +337,7 @@
6
7 if (!requested_cursor)
8 return -1;
9-
10+ [NSCursor performSelectorOnMainThread: @selector(unhide) withObject: nil waitUntilDone: NO];
11 osx_change_cursor(requested_cursor);
12
13 return 0;
14@@ -350,7 +350,7 @@
15 */
16 void osx_mouse_hide(void)
17 {
18- osx_change_cursor(osx_blank_cursor);
19+ [NSCursor performSelectorOnMainThread: @selector(hide) withObject: nil waitUntilDone: NO];
20 }

I haven't checked it thoroughly but it seems to work. The underlying problem AFAICS is that it ignores custom cursors in fullscreen mode, but the mouse code (both the cross-platform and Mac specific) is pretty murky (OS cursors were not implemented nicely, I don't think)

Pete

Runesabre
Member #7,573
August 2006
avatar

My Mac application currently runs at 32 bit. UPDATE: Tonight I figured out why I couldn't get my Mac app to run at 15bit color depth. Mac Allegro fails to create a bitmap on calls to create_system_bitmap() if the color depth is 15bit and the screen is in fullscreen. Switching to create_bitmap() seems to solve the problem.

For Mac and Linux, I use show_os_cursor(MOUSE_CURSOR_ARROW) when I want to show a system mouse and show_os_cursor(MOUSE_CURSOR_NONE) when I want to hide the ssytem mouse and use a custom mouse cursor specific to my application using my display renderer.

On Mac fullscreen, the show_os_cursor(MOUSE_CURSOR_NONE) has no affect, so I had to #define special code to not use my custom mouse when running on Mac fullscreen. If memory serves correctly (it's been a couple months since I grappled with the mouse issue), calls to show_mouse() and scare/unscare mouse didn't seem to do anything on Mac fullscreen.

When I run in Mac windowed mode, the call to show_os_cursor(MOUSE_CURSOR_NONE) works.

Overall, the Allegro mouse code seems squirrely in general. On Windows, I have to use the show_mouse(), scare/unscare_mouse() calls to get the results I want in fullscreen and window. show_os_cursor() doesn't seem to produce correct results. At least not consistent results as I get on Linux or Mac.

_______________
Runesabre
Connecting People through Inspiring Interactive Entertainment
Enspira Online

speedude
Member #7,726
September 2006

yes. allegro works. so your app can be a Universal PPC\Core Duo.

Go to: