Skip to content

Instantly share code, notes, and snippets.

View Articles & resources on the issues with Modern C++.txt
"Modern" C++ Lamentations
Aras Pranckevičius
Is C++ fast?
Arseny Kapoulkine
Thoughts on Modern C++ and Game Dev
View imgui_io_queue.cpp
// [Internal]
enum ImGuiIoEventType
ImGuiIoEventType_Unknown = 0,
ocornut / dualshock4_via_directinput.cpp
Last active Oct 13, 2020
// Mapping for PlayStation 4 DualShock 4 (PS4, DS4) controller exposed via DirectInput
View dualshock4_via_directinput.cpp
// FYI the numbers here don't make much sense out of context
// I am using which remaps xinput and dinput states to arrays of button + arrays of axises.
// So those are my tables to read back from them and handle DS4 which provide dinput data.
// The PAD_*** enums are mine, the AXIS_*** enums tells which remapping function to use on the float data.
// You may prefer to handle the axises data in a different manner (e.g. some people like the analog trigger to go -1 to +1, I'm using 0 to 1).
// This is merely a loose reference to get you started if you want to support DS4 in your application.
// Mapping for PlayStation 4 DualShock 4 (PS4, DS4) controller exposed via DInput.
// VendorId = 0x0000054C, ProductId = 0x000009CC
static const GamePadMappingEntry g_DInputDS4Mapping[] =
View Kanji to Kangxi Radical remapping tables
// My game is using a Japanese font that doesn't seem to declare codepoint for Kanjis for those which only comprised of a simple radical.
// e.g.
// Radical 180 (U+2FB3) ~~ 音 (U+97F3)
// I am remapping the codepoints in software but couldn't find an easy to parse list, ended up scraping from Unicode webpages
{ 0x4E00, 0x2F00 }, // Kangxi Radical One
{ 0x4E28, 0x2F01 }, // Kangxi Radical Line
{ 0x4E36, 0x2F02 }, // Kangxi Radical Dot
{ 0x4E3F, 0x2F03 }, // Kangxi Radical Slash
{ 0x4E59, 0x2F04 }, // Kangxi Radical Second
View imgui_pie_menu_test.cpp
// pie menu test
// v0.00
#include <imgui_internal.h>
// Return >= 0 on mouse release
// Optional int* p_selected display and update a currently selected item
int PiePopupSelectMenu(const ImVec2& center, const char* popup_id, const char** items, int items_count, int* p_selected)
int ret = -1;
View PSD parsing

Last updated 2020/03/04

Some links from twitter on the topic of parsing PSD files (haven't looked into them in details). PSD include a flattened rasterized image so this is easy to load if that's the only thing you need. Most software / librairies have support for extracting this flattened data (e.g. stb_image.h does).

However if you want access to individual layers, render non-rasterized layers, emulate every photoshop features, extract or apply effects with more granularity, more code is needed. May range from easy to lots-of-work depending on what exactly you need.

As far as I know there isn't a trivial stb-like ready-to-use C++ library to do that sort of things. Posting all links here. Some are probably bloated or hard to use into your project, some lacking features.

TODO: Actually look into the pros/cons of all those.

View rrbits.h
// Copyright 2008-2015 RAD Game Tools
#include "radtypes.h"
ocornut / imgui_node_graph_test.cpp
Last active Nov 14, 2020
Node graph editor basic demo for ImGui
View imgui_node_graph_test.cpp
// Creating a node graph editor for Dear ImGui
// Quick sample, not production code! This is more of a demo of how to use Dear ImGui to create custom stuff.
// See for details
// And more fancy node editors:
// Changelog
// - v0.04 (2020-03): minor tweaks
// - v0.03 (2018-03): fixed grid offset issue, inverted sign of 'scrolling'
#include <math.h> // fmodf
You can’t perform that action at this time.