Спочатку визначте, що вам потрібно насправді з "обгорткової" частини API. Це, як правило, дуже-дуже просто: вам потрібні основні ресурси (буфери, шейдери, текстури, стан конвеєра) та спосіб використовувати ці ресурси для побудови кадру, подаючи кілька дзвінків на малюнок.
Намагайтеся уникати логіки високого рівня поза частиною обгортки API. Якщо ви реалізуєте розумну техніку купірування сцен у цій частині API, то тепер ви на гачку, щоб дублювати цю логіку у всіх реалізаціях задніх версій. Це багато зайвих зусиль, тож тримайте це просто. Управління сценами має бути частиною вищого рівня API, який використовує обгортку, а не бути частиною самого обгортки.
Виберіть цілі, які ви будете підтримувати, та зрозумійте їх. Важко написати пристойні обгортки для "всього", і вам, мабуть, не потрібно (можливо, вам також не потрібно писати жодної обгортки, як зазначено у відповіді Філіпа ). Написати гідну обгортку майже неможливо, якщо ви не знаєте API, які вже збираєтеся завершити.
Регулярно оцінюйте стан свого API. Як правило, вона повинна мати меншу площу поверхні, ніж основні загорнуті API; якщо ви виявите, що створюєте типи обгортки "один на один" для кожної структури D3D або для кожного виклику функції OpenGL, ви, ймовірно, відхиляєтесь від курсу.
Подивіться, яка робота пішла раніше. Sokol і BGFX - це API, які забезпечують рівень агностицизму, який може бути корисним вам і порівняно простий для розуміння (колишній особливо).