What's the modern setup with OpenGL and the Win32 API?

Started by
3 comments, last by shinypixel 9 years, 11 months ago

It's been some years since I touched OpenGL, and I'm wanting to relearn it and apply it to my library written in C++/Win32 API. I know OpenGL has gone through some changes, so I'm assuming my header and lib files are probably out of date. According to my computer, I have OpenGL version 3.1.

Advertisement
#include <D3D11.h> // I'm being facetious of course... or am I?

I find the easiest way to use GL (on Windows or elsewhere) is via a windowing/input library like SDL2 or GLFW or SFML. Combine these with GLEW to access all of GL. Avoid GLUT or FreeGLUT.

I find GLFW easiest to use for small-medium uses. It lets you concentrate on just GL without any other fluff. SDL2 is my preferred "whole package" library, though some C++ users have a strong preference for SFML and it's C++-iness (which I find is more baggage than help given that I write my own high-level wrappers anyway, but that's me).

http://lazyfoo.net/tutorials/SDL/ I've heard this site recommended. It has plenty of SDL2 tutorials. Lessons 01, 03, 04, 49, and 50 and probably the most relevant to you.

GLFW's documentation should be all you need to get up and running with it on GL; it's that simple. In particular, the tutorial covers almost everything you need to know (aside from using GLEW, but there's not much to that).

Sean Middleditch – Game Systems Engineer – Join my team!

Thanks for the recommendations, though I have my own library with the Win32 API similar to SFML, though it doesn't have a name yet. "Awesome" sounds like a good name though. I enjoyed SFML in the past, but I kept dropping into OS-specific code because SFML had no way to call them (it has to stay portable, so they just give you the window handle to deal with things they haven't implemented), so that was a drawback for myself. Since I'm dropping into OS-specific code, I figured I mind as well use the Win32 API in full to take advantage of the system. However, it made me a better OS programmer and less dependent on high abstractions, and now it looks like SFML. I still enjoy the benefits of SFML and I'm looking forward to their iOS release. DirectX is great too, but my career interest requires an understanding of OpenGL/OpenGL:ES. Anyway, enough thinking there. Tools are great, but one must decide what is needed for any given application.

Speaking of that, so what I need is GLEW for C++/Win32 API?

Speaking of that, so what I need is GLEW for C++/Win32 API?


It just handles wrapping the extension API in order to expose the functionality of your driver. Especially on Windows, as Microsoft only support GL 1.2 in their SDK, requiring you to use the extension API to access any newer functionality. It's handy on other platforms, too, but it (or a library like it) is for all intents and purposes mandatory on Windows.

Sean Middleditch – Game Systems Engineer – Join my team!

Great, thanks.

This topic is closed to new replies.

Advertisement