https://github.com/bolner/crterm
CRT Terminal emulator (OpenGL)
https://github.com/bolner/crterm
java kaypro opengl terminal-emulators
Last synced: 3 months ago
JSON representation
CRT Terminal emulator (OpenGL)
- Host: GitHub
- URL: https://github.com/bolner/crterm
- Owner: bolner
- License: other
- Created: 2017-01-22T18:10:27.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-08-29T22:18:21.000Z (almost 6 years ago)
- Last Synced: 2025-03-01T05:41:18.740Z (4 months ago)
- Topics: java, kaypro, opengl, terminal-emulators
- Language: Java
- Size: 405 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
CRTerm
======CRTerm is a [Java](https://en.wikipedia.org/wiki/Java_(programming_language))/[OpenGL](https://en.wikipedia.org/wiki/OpenGL) [library](https://en.wikipedia.org/wiki/Library_(computing)) aimed at helping the development of [terminal emulators](https://en.wikipedia.org/wiki/Terminal_emulator). This library doesn't tackle all functionality related to terminal emulation, but only the area of visual representation.
Demo on Youtube:
[](https://www.youtube.com/watch?v=SO9MrM9zTuk)
## Dependencies
- The only dependency is the [LWJGL library](https://www.lwjgl.org/). These files need to be linked with the project:
- **Windows:** lwjgl.jar, lwjgl-natives-windows.jar, lwjgl-glfw.jar, lwjgl-glfw-natives-windows.jar, lwjgl-opengl.jar, lwjgl-opengl-natives-windows.jar
- **Linux:** lwjgl.jar, lwjgl-natives-linux.jar, lwjgl-glfw.jar, lwjgl-glfw-natives-linux.jar, lwjgl-opengl.jar, lwjgl-opengl-natives-linux.jar
- **MacOS:** lwjgl.jar, lwjgl-natives-macos.jar, lwjgl-glfw.jar, lwjgl-glfw-natives-macos.jar, lwjgl-opengl.jar, lwjgl-opengl-natives-macos.jar## Features
- Currently uses the original character set of the Kaypro II luggable computers.
- The texture atlas of the font is generated according to input parameters. Both the distance between the scanlines and the width of the dots can be changed.
- The characters have a modest shining appearance, applied through a bloom post-processing effect.
- A scanline passes through the screen in fixed intervals, simulating a common problem of old CRT displays.
- All characters can be fully changed for each frame render. Provides direct access to the internal character array for efficient manipulation.
- Simulates the gradual fade-out of the characters.The font is generated on the fly according to the input parameters. This is an example render, based on the Kaypro II character set:

## Usage
- Instantiate the CRTerm.Terminal to display the main window. See the doc folder about the parameters.
- Use the "setCharacters" or directly manipulate the character array accessed through "getCharacterArray". After the modifications upload the characters to the GPU, using "uploadCharacterArray".
- See an example application at: [/src/TestApp/Main.java](https://github.com/bolner/CRTerm/blob/master/src/TestApp/Main.java)
- Handle the keyboard inputs using the LWJGL functions. (Using the Window ID)