- OPENGL:
OpenGL is used for the development of front-end GUI, which is primarily a 3D simulation of Rubik’s cube. OpenGL is a C-language API which allows the control of hardware accelerated graphics. Most computers have some sort of GPU, and OpenGL is one way to drive it. A program will issue commands to the OpenGL state machine, and feed it data in an optimal format. OpenGL specifies a set of "commands" or immediately executed functions. Each command directs a drawing action or causes special effects. A list of these commands can be created for repetitive effects. So typically the program will load textures, geometry. Turn the geometry into buffers of vertices, and indices, and then draw commands are issued which hand over the drawing task to the hardware.
- GLFW:
GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.
- GLUT:
We implemented GLUT as it is cross-platform ,allows creation of portable code between operating systems. It also makes learning Open GL easier, since we had limited time to execute our concept into a GUI. GLUT takes only a few lines of code and does not require knowledge of operating system–specific windowing APIs.
The OpenGL Utility Toolkit (GLUT) is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system. Functions performed include window definition, window control, and monitoring of keyboard and mouse input. Routines for drawing a number of geometric primitives (both in solid and wireframe mode) are also provided, including cubes, spheres.
- C++: The main programming language for implementing data structures and algorithms.