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

#### 6.1.1.1 Contents

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

- `CS/libs/csutil/macosx`
- `CS/plugins/sound/driver/coreaudio`
- `CS/plugins/video/canvas/macosx/common`
- `CS/plugins/video/canvas/macosx/coregraphics`
- `CS/plugins/video/canvas/macosx/opengl`

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

- The core components which provide low-level platform-specific functionality to the Crystal Space engine. These files and resources are located in ``CS/libs/csutil/macosx'`.
- The platform-specific audio and video driver modules. The files and resources comprising audio and video plugins reside in the appropriate subdirectories of ``CS/plugins'`, as indicated above.

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 ] | [ >> ]

This document was generated using texi2html 1.76.