- Annotation Glossary
- I. Chimara API Reference
-
ChimaraGlk — Widget which executes a Glk program
-
ChimaraIF — Widget which plays an interactive fiction game
- II. Glk API Specification, version 0.7.4
- Introduction
- What Glk Is
- What About the Virtual Machine?
- What Does Glk Not Do?
- Conventions of This Document
- Credits
- Overall Structure
-
Your Program's Main Function — How Glk starts your program
-
Exiting Your Program — How to terminate a Glk program cleanly
-
The Interrupt Handler — Specifying an interrupt handler for cleaning up critical
resources
-
The Tick Thing — Yielding time to the operating system
-
Basic Types — Basic types used in Glk
-
Opaque Objects — Complex objects in Glk
-
The Gestalt System — Testing Glk's capabilities
-
Other API Conventions — General information about the Glk API
- Character Encoding
-
Character Encoding — Latin-1 and Unicode characters
-
Output — Printing basics
-
Line Input — Reading lines of text
-
Character Input — Waiting for a single keystroke
-
Upper and Lower Case — Changing the case of strings
-
Unicode String Normalization — Combining characters
-
A Note on Unicode Case-Folding and Normalization — How to handle line input
- Windows
-
Windows — Introduction to Glk windows
-
Window Arrangement — The Way of Window Arrangement
-
Window Opening, Closing, and Constraints — Creating new windows and closing them
-
Changing Window Constraints — Manipulating the size of a window
-
A Note on Display Style — How windows may be displayed on different platforms
-
The Types of Windows — Blank, pair, text grid, text buffer, and graphics windows
-
Echo Streams — Creating a copy of a window's output
-
Other Window Functions — Miscellaneous functions for windows
- Events
-
Events — Waiting for events
-
Character Input Events — Events representing a single keystroke
-
Line Input Events — Events representing a line of user input
-
Mouse Input Events — Events representing a mouse click
-
Timer Events — Events sent at fixed intervals
-
Other Events — Events in future versions of Glk
- Streams
-
Streams — Input and output abstractions
-
How to Print — Printing to streams
-
How to Read — Reading from streams
-
Closing Streams — Closing streams and retrieving their character counts
-
Stream Positions — Moving the read/write mark
-
Styles — Changing the appearance of printed text
-
Suggesting the Appearance of Styles — Setting style hints
-
Testing the Appearance of Styles — Finding out how the library displays your style hints
-
The Types of Streams — Window, memory, file, and resource streams
-
Other Stream Functions — Miscellaneous functions for streams
- File References
-
File References — A platform-independent way to refer to disk files
-
The Types of File References — Four different ways to create a file reference
-
Other File Reference Functions — Miscellaneous functions for file references
- Graphics
-
Image Resources — Graphics in Glk
-
Graphics in Graphics Windows — Drawing graphics in graphics windows
-
Graphics in Text Buffer Windows — Drawing graphics inside or beside text
-
Testing for Graphics Capabilities — Checking whether the library supports graphics
- Sound
-
Sound Resources — Sound in Glk
-
Creating and Destroying Sound Channels — Creating new sound channels and closing them
-
Playing Sounds — Producing noise
-
Other Sound Channel Functions — Miscellaneous functions for sound channels
-
Testing for Sound Capabilities — Checking whether the library supports sound
- Hyperlinks
-
Creating Hyperlinks — Printing text as a hyperlink
-
Accepting Hyperlink Events — Generating and catching hyperlink navigation events
-
Testing for Hyperlink Capabilities — Checking whether the library supports hyperlinks
- The System Clock
-
The System Clock — Getting the current time from the system clock
-
Time and Date Conversions — Converting from timestamps to date structures and back
-
Testing for Clock Capabilities — Checking whether the library supports the clock functions
- Porting, Adapting, and Other Messy Bits
- Startup Options
- Going Outside the Glk API
- Memory Management
- String Manipulation
- File Handling
- Private Extensions to Glk
- Glk and the Virtual Machine
- Implementing a Higher Layer over Glk
- Glk as a VM's Native API
- A. The Dispatch Layer
-
The Dispatch Layer — Calling Glk functions dynamically
-
Interrogating the Interface — Finding out what functions the Glk library exports
-
Dispatching — Dispatching the call to the Glk library
-
Getting Argument Prototypes — Querying Glk function prototypes
-
Functions the Library Must Provide — Platform-dependent dispatch layer functions
-
Table of Selectors — Table of dispatch selectors for Glk functions
- B. The Blorb Layer
-
The Blorb Layer — Loading resources from a Blorb file
-
What the Program Does — How to use the Blorb layer in your program
-
What the Library Does — How to implement the Blorb layer in your library
-
What the Blorb Layer Does — The platform-independent functions in the Blorb layer
-
Blorb Errors — Error codes returned by the Blorb layer functions
- C. Glk Extensions
-
Startup Code — Parsing startup options
-
Unix Extensions — Unix-specific functions
-
Gargoyle Extensions — Gargoyle extensions to Glk
- Index of symbols
- Index of deprecated symbols