8.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 6.2 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 7.2 Virtual File System (VFS)).
This document was generated using
texi2html