Как создать собственный язык разметки для проектирования интерфейсов (С ++)?
Мало языка разметки. Интерфейс - это в основном работа контролов. Их можно отображать (отрисовывать) разными способами (кардинально разными). Можно использовать нативные средства платформы, можно делать платформонезависимые и рисовать везде самостоятельно по своим правилам. GUI - это очень серьезная вещь и очень и очень много кода. Разметка - это чуть ли последняя стадия развития графической библиотеки. 

Создавать очередную разметку существующей библиотеки - дело не благодарное и сомнительное. 

Так что, для начала, всё же, стоит подробнее описать желаемое. Если полностью собственный графический фреймворк, то это один вопрос, а если для существующей библиотеки, то совершенно другой.
Хороший вариант рассмотреть базовый View из Android (там довольно просто и понятно)
3 Этапа Measure, Layout, Draw
Минимум классов нужно. 
Rect - Тут понятно 
Bitmap - Базовый класс для изображений 
Canvas - Базовый класс для рисования 
Paint  - Базовый класс кисти для рисования 
Drawable - Базовый класс графического объекта
MotionEvent -  Базовый класс передачи событий для элементов ui(widget)
View-  Базовый класс ui (widget)
Context - Базовый контекст 
Window - Базовый класс окна с event loop
Handler - Система передачи событий в очередь обработки ui потока 
MessageQueue - Event loop (по факту массив лямбд для выполнения их в ui потоке  )
LayoutInflater - Класс для создания дерева виджетов из xml 

Далее еще сложнее, нужно из базового View сделать разный виджеты, типа TextView, EditView, ImageView... 
А так же виджеты для разметки дочерних виджетов (Linear, Absolute,Table и тд..) 

Рисовать всё можно на Direct2d, лучше взять direct2d 1.0 (там очень простая инициализация), в дальнейшем можно будет уже перейти на новую версию 
Желаю удачи )