8.1.1.2 Files
This port of Crystal Space makes use of a number of platform-specific
makefiles which are located in `CS/libs/cssys/next'. A makefile exists
for each target platform.
macosx.mak |
Defines MacOS/X-specific build attributes.
|
macosxs.mak |
Defines MacOS/X Server 1.0-specific build attributes.
|
openstep.mak |
Defines OpenStep-specific build attributes.
|
nextstep.mak |
Defines NextStep-specific build attributes.
|
next.mak |
Controls the build process for all Apple/NeXT ports.
|
An additional makefile, `CS/plugins/video/canvas/next/next2d.mak', is also
common to all Apple/NeXT platforms and controls the build process for the
AppKit-based 2D display driver.
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 the
AppKit's `NSApplication' (Cocoa and OpenStep) and `Application'
(NextStep) classes. The files comprising this module are:
NeXTAssistant.h
- Two files share this name. The first file resides in
`CS/include/cssys/next' and declares the abstract `iNeXTAssistant'
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/cssys/next/shared' and declares
`NeXTAssistant' which is a concrete subclass implementing the
`iNeXTAssistant' interface.
NeXTAssistant.cpp
- Concrete implementation of the `iNeXTAssistant' interface. This
implementation is common to MacOS/X, MacOS/X Server 1.0 (Rhapsody), OpenStep,
and NextStep.
NeXTDelegate.m
NeXTDelegate.h
- Implements an Objective-C application delegate. It is responsible for handling
application-wide AppKit events and provides convenience facilities for event
interpretation on behalf of plug-in modules such as 2D drivers which are the
focus of keyboard and mouse events.
NeXTLoadLibrary.m
NeXTLoadLibrary.h
- Functions which provide dynamic linking facilities of plug-in modules for
MacOS/X, MacOS/X Server 1.0 (Rhapsody), OpenStep, and NextStep.
NeXTDynamicLibrary.cpp
- A thin C++ wrapper over the Objective-C plug-in 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.4 Shared Class Facility (SCF)) to successfully load plug-in modules via the Objective-C dynamic
linking facility.
NeXTKeymap.m
NeXTKeymap.h
- A utility class which parses the raw NeXT key-mapping resource which drives
keystroke interpretation by the WindowServer and the AppKit. This class is
specific to the NextStep port. See section 8.1.1.7 Key Mapping.
NeXTMenu.m
NeXTMenu.h
- A utility which generates the application's main menu from information
contained in a configuration file (`CS/data/next.cfg').
next.cfg
- A configuration file which defines platform-specific settings such as the menu
layout appopriate to a particular platform. 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)).
NeXTConfigFile.cpp
NeXTConfigFile.h
- A thin pure-C wrapper over Crystal Space's C++ configuration file class. This
wrapper allows the Objective-C `NeXTMenu' implementation to utilize the
C++ configuration class.
NeXTTime.cpp
- Platform-specific implementations of
csGetTicks()
and csSleep()
which work with MacOS/X, MacOS/X Server 1.0 (Rhapsody), OpenStep, and NextStep.
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/cssys/next'.
The AppKit-based 2D graphics plug-in module in
`CS/plugins/video/canvas/next' provides 2D graphics capability to the
Crystal Space engine. This module is responsible for providing a
hardware-specific frame-buffer into which Crystal Space can draw. It is also
responsible for actually displaying the frame-buffer in a manner which is
appropriate for the given platform. The files comprising the 2D graphics
library are:
NeXTDriver2D.cpp
NeXTDriver2D.h
- Defines the class `NeXTDriver2D' which provides an AppKit-based 2D drawing
surface to Crystal Space. This is the sole interface through which Crystal
Space communicates with the 2D graphics services.
NeXTDelegate2D.m
NeXTDelegate2D.h
- Implements the Objective-C portion of the AppKit-based 2D driver. This class
is responsible for managing the window and view into which Crystal Space draws.
It is also the window's delegate object.
NeXTView.m
NeXTView.h
- An Objective-C subclass of the AppKit's `NSView' (Cocoa and OpenStep) or
`View' (NextStep) class. This is the view where the rendered scene from
Crystal Space is actually displayed. This class also forwards received
keyboard and mouse events to the shared `iNeXTAssistant' instance for
interpretation and handling.
NeXTFrameBuffer.h
- An abstract 2D frame buffer class which defines the interface of objects which
are capable of converting a raw Crystal Space frame buffer into an
AppKit-format frame buffer.
NeXTFrameBuffer15.cpp
NeXTFrameBuffer15.h
- A concrete subclass of `NeXTFrameBuffer' which can convert Crystal Space
RGB:555 to NeXT RGBA:4444.
NeXTFrameBuffer32.cpp
NeXTFrameBuffer32.h
- A concrete subclass of `NeXTFrameBuffer' which can convert Crystal Space
RGB:888 to NeXT RGBA:8888.
NeXTMemory.m
NeXTMemory.h
- Utility functions for manipulation of page-aligned memory blocks for the
`NeXTFrameBuffer' subclasses.
This document was generated
using texi2html