Thanks for great work, this is my go-to environment for as-portable-as-I-know-how-to-make-it C++ code. You sort of buried the lead :) waiting until the end to mention the very cool Asteroids demo! This will be a nice dependency-less OpenGL and sound tutorial for me. I did encounter an error trying to run this, complaining about a missing xinput1_3.dll; but changing the LDLIBS to use xinput1_4 instead worked fine.
> You sort of buried the lead :) waiting until the end to mention the very > cool Asteroids demo! Heh, given your comment I've decided to move the video to the top of the article so that hopefully it more quickly grabs attention. > This will be a nice dependency-less OpenGL and sound tutorial for me. Note that it's OpenGL 1.1 since I wanted to keep it really simple. It's good enough for some things, like an Asteroids clone, but not everything. This is the last version of OpenGL directly supported by Windows, and so it's very easy to use. Later versions require accessing extensions, creating multiple OpenGL contexts, and using an OpenGL loader. I've worked all that out, too, in large part thanks to the OpenGL wiki, and I should probably publish it in some form. > I did encounter an error trying to run this, complaining about a missing > xinput1_3.dll; but changing the LDLIBS to use xinput1_4 instead worked > fine. Hmm, I've updated the Makefile, but that's actually a little irritating that this came up. I use my previous projects as notes for what I've already figured out, and the gamepad support here arose from my Emacs joystick project back in 2016. It seems things have changed a bit over the past 5 years, though hopefully for the better. https://docs.microsoft.com/en-us/windows/win32/xinput/xinput-versions It looks like XInput 1.4 is officially supported by Windows 8 and later, so that's what I should be using. If I understand correctly, XInput 1.3 was actually part DirectX, and so wouldn't be available without installing DirectX. It probably worked on my Windows system since I've installed some older games that installed XInput 1.3 as part of some older DirectX release. (Wine always provides XInput 1.3, so this will never be an issue there.)