Introduction

Table of Contents

Introduction
Getting Started
Adding Libraries
Clearing to a Color
Hello Triangle

This tutorial is designed to teach a knowledgeable C++ programmer how to begin a journey into graphics programming with OpenGL. This tutorial can be for brand new or experienced graphics programmers alike, as it can be used as just a quick reference or as an in-depth, first-time explanation of the theory behind the code.

Before we can get started, there are a few things we're going to need.

Requirements

Before starting this tutorial, you should have both of the following:

  1. Intermediate-Advanced Knowledge of C++ and how to use it. This is an advanced graphics programming tutorial, not something to take on while simultaneously learning C++. This tutorial will not cover C++ basics and assumes you already know them.
  2. Visual Studio 2013. Although realistically you could use any version, this tutorial assumes you have VS2013 and may have you download or link with files or methods that are designed VS2013. All downloadable solutions will be for VS2013.
  3. Microsoft Windows. This tutorial is not built for other operating systems, and much of what is referenced involves Windows. If you are working under a different OS, it is still possible to use this tutorial for reference, but you must be aware that it assumes you have Windows and some parts might have you do something that is not possible on a different OS (or is located elsewhere).

Before we're able to write any code, we'll likely need a few libraries. We'll need a library to handle our window and OpenGL context creation. We'll also need GLEW (unless you use SFML, which includes GLEW) to handle some of the newer OpenGL functions. Eventually, we'll want GLM to handle some math as well. Ultimately, what this really means is we'll be attaching our code with code libraries that other developers wrote to help take care of some of the messier/complicated parts of using OpenGL. Doing this allows us to focus our time and effort on the parts of the code we care about and are going to write. If you'd like to learn more about these libraries, go here: [INSERT LINK HERE]