CRTerm is a Java/OpenGL library aimed at helping the development of terminal emulators. This library doesn't tackle all functionality related to terminal emulation, but only the area of visual representation.
Demo on Youtube:
- The only dependency is the LWJGL library. 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
- 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:
- 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
- Handle the keyboard inputs using the LWJGL functions. (Using the Window ID)