# OpenGL in Cinder

## Introduction

OpenGL is an open standard for graphics programming with a particular emphasis on hardware acceleration through GPUs. The standard is maintained by the Khronos Group. Cinder supports desktop OpenGL on Microsoft Windows and OS X, and the OpenGL ES API on iOS and Android. Additionally, Cinder supports OpenGL ES emulated via DirectX through ANGLE on Windows Desktop and Windows Universal applications.

The Cinder OpenGL API is designed to abstract as much as possible of the low-level details of OpenGL without sacrificing power, while remaining familiar to users who are already experienced with OpenGL. The API is exposed primarily through the ci::gl namespace, and interoperates with the other portions of Cinder at various points we'll explore later.

This guide will offer a tour of Cinder's OpenGL functionality, with two caveats. First, inevitably users have widely varying levels of experience with something like OpenGL, so targeting a specific level is nearly impossible. Advanced users are asked to forgive information which will likely seem too basic in places. Second, this guide is not meant to be a substitute for learning the wider craft of graphics programming. Please refer to resources listed in the Further Reading section to continue learning.