Feature #947

NeL/Ryzom: Run natively on Mac OS X using Cocoa

Added by rti about 8 years ago. Updated about 8 years ago.

Status:Closed Start date:05/29/2010
Priority:Normal Due date:
Assignee:rti % Done:

100%

Category:OS: Mac
Target version:Version 0.8.0

Description

As stated in the roadmap for 0.9 (http://dev.ryzom.com/versions/show/15) Ryzom should run natively on Mac OS X using Cocoa.

Therefor, the following things need to be done:
  • CMake needs to build objective-c/c++
  • the NeL OpenGL driver needs to implement the Cocoa interface for window creation and management, GL context creation
  • a new CocoaEventEmitter needs to be implemented in NeL to handle mouse and keyboard events
  • CMake build scripts need a new flag (eg. WITH_COCOA) to switch between X11 and Cocoa GL driver on Mac OS X
  • CMake needs to create an App Bundle for Ryzom to match Mac OS X style
  • ...

I have already a prototype implementation. After cleaning it up a bit I will sync it with the repository step by step.

Some more information on that topic are available on MacClientState.


Related issues

related to Ryzom - Feature #41: Port NeL on Mac Closed 09/03/2008
related to Ryzom - Feature #972: Do not reset mouse position to implement FreeLook Closed 06/09/2010
related to Ryzom - Feature #952: Use the same Mac key mapping with Cocoa and X11 Rejected 05/31/2010

History

#1 Updated by rti about 8 years ago

Stuff added with #947

  • objective-c / objective-c++ compilation and linking integrated into cmake based build process
  • remove all X11 dependencies if built with option WITH_COCOA
  • cmake creates an .app bundle
  • native mac window opened by opengl_driver
  • cocoa events handled in manual event loop
  • ryzom client running with cocoa

Next steps

  • dead keys and other key handling fixes
  • mode switching
  • fullscreen
  • window resizing
  • some basic menu items like quit and minimize
  • review disabled gl extensions
  • remove hardcoded values
  • refactor

#2 Updated by rti about 8 years ago

  • % Done changed from 10 to 20

#3 Updated by rti about 8 years ago

  • % Done changed from 20 to 40

#4 Updated by rti about 8 years ago

  • % Done changed from 40 to 50

#5 Updated by rti about 8 years ago

  • % Done changed from 50 to 60

#6 Updated by rti about 8 years ago

Remaining known issues:
  • set Mouse pos on non main monitor
  • crash with micro vegetation
  • adapt kervalas driver changes (mode setting)
  • replace depricated api used for getting modes

#7 Updated by rti about 8 years ago

  • mac style application menu still missing

#8 Updated by rti about 8 years ago

Remaining known issues:
  • replace deprecated api used for getting modes
    • rethink the modes thing for mac since there is no real mode switch, just back buffer shrinking
  • crash with micro vegetation
  • in fullscreen mode, there is an empty window behind the full screen view, remove it / hide it
  • mouse move events from the first monitor are "copied" to ryzom in fullscreen on the second monitor

#9 Updated by rti about 8 years ago

  • check warnings provided by valgrind

#10 Updated by rti about 8 years ago

  • Status changed from Assigned to Resolved

closing this ticket now in favor of smaller ones to handle fine tuning tasks.
ryzom core client runs on mac os x now.

#11 Updated by rti about 8 years ago

  • % Done changed from 60 to 100

#12 Updated by kervala about 8 years ago

  • Category changed from NeL: General to OS: Mac

#13 Updated by rti about 8 years ago

  • Status changed from Resolved to Closed

#14 Updated by rti about 8 years ago

  • Target version changed from Version 0.9.0 to Version 0.8.0

Also available in: Atom PDF