[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ] [ Search: ]

6.1.1.1 Contents

The root components of the MacOS/X port of Crystal Space are contained within these directories:

Functionally, this port is comprised of two types of platform-specific modules:

The core components provide low-level, platform-specific functionality which Crystal Space requires. This includes interfaces to the underlying operating system as well as higher-level event-loop processing as provided by Cocoa's ‘NSApplication’ class. The files comprising this module are:

OSXAssistant.h

Two files share this name. The first file resides in ‘CS/include/csutil/macosx’ and declares the abstract ‘iOSXAssistant’ interface. This interface declares methods which may be useful to canvases, as well as methods which are used by the Objective-C application delegate. The second file resides in ‘CS/libs/csutil/macosx’ and declares ‘OSXAssistant’ which is a concrete subclass implementing the ‘iOSXAssistant’ interface.

OSXAssistant.cpp

Concrete implementation of the ‘iOSXAssistant’ interface.

OSXDelegate.m
OSXDelegate.h

Implements an Objective-C application delegate. It is responsible for handling application-wide Cocoa events and provides convenience facilities for event interpretation on behalf of plugin modules such as 2D drivers which are the focus of keyboard and mouse events.

OSXLoadLibrary.m
OSXLoadLibrary.h

Functions which provide dynamic linking facilities of plugin modules.

OSXDynamicLibrary.cpp

A thin C++ wrapper over the Objective-C plugin loading facilities. The interface between the C++ and Objective-C facilities is implemented via a pure-C bridge, thus allowing Crystal Space's C++ Shared Class Facility (see section Shared Class Facility (SCF)) to successfully load plugin modules via the Objective-C dynamic linking facility.

OSXMenu.m
OSXMenu.h

A utility which generates the application's main menu from information contained in a configuration file (‘CS/data/macosx.cfg’).

OSXConfigFile.cpp
OSXConfigFile.h

A thin pure-C wrapper over Crystal Space's C++ configuration file class. This wrapper allows the Objective-C ‘OSXMenu’ implementation to utilize the C++ configuration class.

OSXTime.cpp

Platform-specific implementation of csGetTicks() and csSleep().

OSXUsername.m

Platform-specific functionality for retrieving the username of the logged-in user.

OSXGetUsername.cpp
OSXGetUsername.h

Implementation of Crystal Space's csGetUsername() function. This is a C++ cover over the functionality provided by ‘OSXUsername.m’.

OSXInstPath.m

Platform-specific functionality for retrieving and interpreting the configuration option ‘CrystalSpaceRoot’.

OSXInstallPath.cpp
OSXInstallPath.h

Implementation of Crystal Space's csGetInstallPath() function. This is a C++ cover over ‘OSXInstPath.m’, and also provides additional functionality (such as checking the ‘CRYSTAL’ environment variable).

csosdefs.h

Platform-specific definition of operating system services which allows Crystal Space to access such services in a uniform manner from platform to platform. Located in ‘CS/include/csutil/macosx’.

macosx.cfg

A configuration file which defines platform-specific settings such as the menu layout appropriate for the application. This file is actually located in the ‘CS/data/config’ directory which is typically mounted at the virtual location ‘/config/’ (see section Virtual File System (VFS)).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated using texi2html 1.76.