Feature #947
NeL/Ryzom: Run natively on Mac OS X using Cocoa
| Status: | Closed | Start date: | 05/29/2010 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % 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
History
#1
     Updated by rti about 8 years ago
    
    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
    
    Updated by rti about 8 years ago
    
    - % Done changed from 10 to 20
#3
     Updated by rti about 8 years ago
    
    Updated by rti about 8 years ago
    
    - % Done changed from 20 to 40
#4
     Updated by rti about 8 years ago
    
    Updated by rti about 8 years ago
    
    - % Done changed from 40 to 50
#5
     Updated by rti about 8 years ago
    
    Updated by rti about 8 years ago
    
    - % Done changed from 50 to 60
#6
     Updated by rti about 8 years ago
    
    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
    
    Updated by rti about 8 years ago
    
    - mac style application menu still missing
#8
     Updated by rti about 8 years ago
    
    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
    
    Updated by rti about 8 years ago
    
    - check warnings provided by valgrind
#10
     Updated by rti about 8 years ago
    
    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
    
    Updated by rti about 8 years ago
    
    - % Done changed from 60 to 100
#12
     Updated by kervala about 8 years ago
    
    Updated by kervala about 8 years ago
    
    - Category changed from NeL: General to OS: Mac
#13
     Updated by rti about 8 years ago
    
    Updated by rti about 8 years ago
    
    - Status changed from Resolved to Closed
#14
     Updated by rti about 8 years ago
    
    Updated by rti about 8 years ago
    
    - Target version changed from Version 0.9.0 to Version 0.8.0