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

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.


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

This document was generated using texi2html