Open Graphics Library (OpenGL) is a cross-language (language inependent), cross-platform (platform independent) API for rendering 2D and 3D Vector Graphics(use of polygons to represent image). OpenGL API is designed mostly in hardware.
- Design : This API is defined as a set of functions which may be called by the client program. Although functions are similar to those of C language but it is language independent.
- Development : It is an evolving API and Khronos Group regularly releases its new version having some extended feature compare to previous one. GPU vendors may also provide some additional functionality in the form of extension.
- Associated Libraries : The earliest version is released with a companion library called OpenGL utility library. But since OpenGL is quite a complex process. So in order to make it easier other library such as OpenGL Utility Toolkit is added which is later superseded by freeglut. Later included library were GLEE, GLEW and glbinding.
- Implementation : Mesa 3D is an open source implementation of OpenGL. It can do pure software rendering and it may also use hardware acceleration on BSD, Linux, and other platforms by taking advantage of Direct Rendering Infrastructure.
Install OpenGL on ubuntu
For installing OpenGL on ubuntu, just execute the following command (like installing any other thing) in terminal :
sudo apt-get install freeglut3-dev
For working on Ubuntu operating system:
gcc filename.c -lGL -lGLU -lglut where filename.c is the name of the file with which this program is saved.
Install OpenGL on windows in Code::Blocks
- Download code block and install it
- Go to the link and download zip file from the download link that appears after freeglut MinGW package with having link name as Download freeglut 3.0.0 for MinGW and extract it.
- Open notepad with run as administrator and open file from
- This PC > C:(C-drive) > Program Files(x86) > CodeBlocks > share > CodeBlocks > templates, (then click to show All Files)
- Next, open glut.cbp and and search all glut32 and replace with freeglut.
- Then, open from This PC > C:(C-drive) > Program Files(x86) > CodeBlocks > share > CodeBlocks > templates > wizard > glut (then click to show All Files)
- Open wizard.script and here, also replace all glut32 with freeglut
- Then go to freeglut folder (where it was downloaded) and
- Include > GL and copy all four file from there
- Go to This PC > C:(C-drive) > Program Files(x86) > CodeBlocks > MinGW > include > GL and paste it.
- Then, from download folder freeglut > lib, copy two files and go to This PC > C:(C-drive) > Program Files(x86) > CodeBlocks > MinGW > lib and paste it.
- Again go to downloaded folder freeglut > bin and copy one file (freeglut.dll) from here and go to This PC > C:(C-drive) > Windows > SysWOW64 and paste this file.
- Now open Code::Blocks.
- Select File > New > Project > GLUT project > Next.
- Give project title anything and then choose Next.
- For selecting GLUT’s location : This PC > C:(C-drive) > Program Files(x86) > CodeBlocks > MinGW.
- Press OK > Next > Finish.
Now, Code::Blocks is ready to test for OpenGL File.
Demonstrate working with OpenGL
To show how OpenGL works, a simple program of circle – drawing is added in C using OpenGL platform.
To compile the above program in ubuntu,
gcc filename.c -lGL -lGLU -lglut -lm where filename.c is the name of the file with which this program is saved.
Output of above program is shown in below screenshot
Reference for installation in Code::Blocks : https://www.youtube.com/watch?v=NPcnymtP2SE
This article is contributed by Aditya Kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
- Basic Transformations in OPENGL
- Creating animations using Transformations in OpenGL
- Rendering a Triangle using OpenGL(using Shaders)
- OpenGL Rendering Pipeline | An Overview
- Scan-line Polygon filling using OPENGL in C
- OpenGL program for Simple Ball Game
- OpenGL program for simple Animation (Revolution) in C
- Getting started with Classification
- Apache POI | Getting Started
- MongoDB: Getting Started
- Getting started with Machine Learning
- How to get started for technical Interviews?
- Contributing to Open Source : Getting Started
- Getting started with React Native? Read this first !
- Getting Started with Cross-Platform Mobile Application using Flutter