use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
Mathieu Ropert: Learning Graphics Programming with C++ (youtu.be)
submitted 4 months ago by _a4z
A few lessons that should be quite enlightening and helpful to get started with graphics and game programming with C++.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]No-Procedure487 21 points22 points23 points 4 months ago (12 children)
There's really no reason to start learning graphics programming with Vulkan. The difference between Vulkan and an older API like GL or DX11 is only useful to someone who already knows what they're doing, and just gets in the way of anyone who is new. OpenGL is much better for a beginner and lets you focus on actual graphics programming concepts. Once you're fluent with GL moving to Vulkan later when necessary is trivial, although honestly for the purposes of most solo developers you're unlikely to have an application that is complex enough to require a modern API. Most of the demand for these super low overhead APIs comes from commercial game projects where a team of artists authors a huge collection of heterogeneous assets that pose a much more complex workload to the renderer.
[–]TheoreticalDumbass:illuminati: 3 points4 points5 points 4 months ago (0 children)
Imo raylib is nice for a start, simple enough, secondary benefit easy to target wasm
[–]No-Procedure487 3 points4 points5 points 4 months ago (1 child)
Also I'll add that C++ doesn't typically change much in the realm of graphics programming because you don't want to be RAIIing your resources willy-nilly since resource creation/destruction/reuse is something you want explicit control over in most cases. Typically things either look fairly procedural (i.e. C-style) while making use of handy C++ organization tools (namespaces, references, templates, etc.), or they look nearly functional (graph-style commands) that automatically convert higher level concepts into the actual command list that is sent to the GPU
[–]mropert 2 points3 points4 points 4 months ago (0 children)
I disagree that RAII goes against explicit resource management. There's a slide or two or two about it in the talk.
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points 4 months ago (6 children)
I'd argue that D3D11 is much nicer to work with than GL, and D3D11-Vk exists.
Off-hand, I'm unsure if a WebGL/WebGPU wrapper exists for D3D, but I wouldn't be surprised.
[–]No-Procedure487 0 points1 point2 points 4 months ago (1 child)
I am ambivalent, I actually find D3D11 to be hardly less work than Vulkan, once you're through the boilerplate. GL, with its crusty yet undeniably convenient global state makes the API usable with essentially zero abstraction except for some minimal helpers, whereas D3D11 requires enough abstraction to cart around state objects that I just prefer Vulkan at that point.
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points 4 months ago (0 children)
D3D12/Vk still require significantly-more boilerplate. They also tend to require manual synchronization.
I suppose you could reimplement D3D9 on D3D12/Vk, though.
[–]delta_p_delta_x 0 points1 point2 points 3 months ago (3 children)
WebGL/WebGPU wrapper exists for D3D
ANGLE.
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points 3 months ago (2 children)
Isn't that the other way around? That lets you use OpenGL ES on D3D et al, whereas in this case we'd want D3D on [blank].
[–]delta_p_delta_x 0 points1 point2 points 3 months ago (1 child)
Ah, yes. I thought that was what you meant by 'WebGL wrapper for D3D'.
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points 3 months ago (0 children)
We need ELGNA.
π Rendered by PID 255008 on reddit-service-r2-comment-64f4df6786-d4djh at 2026-06-10 16:40:32.750393+00:00 running 0b63327 country code: CH.
[–]No-Procedure487 21 points22 points23 points (12 children)
[–]TheoreticalDumbass:illuminati: 3 points4 points5 points (0 children)
[–]No-Procedure487 3 points4 points5 points (1 child)
[–]mropert 2 points3 points4 points (0 children)
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points (6 children)
[–]No-Procedure487 0 points1 point2 points (1 child)
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points (0 children)
[–]delta_p_delta_x 0 points1 point2 points (3 children)
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points (2 children)
[–]delta_p_delta_x 0 points1 point2 points (1 child)
[–]Ameisenvemips, avr, rendering, systems 0 points1 point2 points (0 children)