Skip to content

bolner/CRTerm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRTerm

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:

Watch the video

Dependencies

  • 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

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:

Character set - texture atlas

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
  • Handle the keyboard inputs using the LWJGL functions. (Using the Window ID)

About

CRT Terminal emulator (OpenGL)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published