НУжно использовать DirectX9, т.к. функция что ты назвал EndScene описана здесь
. Она вызывается при завершении сцены как не трудно понять, ее перехватывают чтобы вставить свою отрисовку поверх всей сцены.
Использовать можно ID3DXFont для шрифтов (его предварительно нужно создать), или ID3DXLine для лиинй (так же нужно создать), вся документация по DirectX9 есть тут
.
Но так же стоит понимать, что это все неуниверсально и заточено исключительно под D3D9, а отрисовщиков сотни.
При этом важно, что ты можешь отрисовать практически все что тебе нужно если у тебя есть способ нарисовать текстурированные треугольники, например квадрат - это 2 треугольника, круг - это множество треугольников выстроеннных по кругу (как пицца), и так далее.
Таким образом можешь посмотреть
, сам графический интерфейс там такое себе, но там есть универсальная система отрисовки (ImDrawList), которая поддерживает кучу разных движков и D3D9 в том числе.