Есть несколько библиотек, которые вы можете использовать.IDWMaster упомянул OpenTK, который является одним из вариантов (OpenGL, поэтому ваш пробег может отличаться; я не большой поклонник).
Если вы хотите использовать DirectX, так как вы отметили вопрос, естьеще несколько вариантов.Microsoft раньше предлагала Управляемый DirectX , который устарел в пользу XNA. SlimDX - более современная оболочка для библиотек DirectX, раскрывающая большую часть их функциональности (но имеющая некоторые затраты на производительность). SharpDX также доступен, который, я полагаю, должен быть несколько быстрее, чем SlimDX, но я не использовал.
Вы также можете использовать некоторые API DirectX напрямую,используя COM-взаимодействие.C # и .Net поддерживают довольно неплохое взаимодействие с COM-компонентами, в том числе нативными.Вам придется обработать значительное количество IntPtr
с и, возможно, придется выполнить некоторое ручное маршалинг, но IDirect3DDevice
не имеет слишком много методов, которые могут вызвать проблемы (IIRC).