Топ Разработка игр

rss

SharpDX

line SharpDX — это альтернатива Managed DirectX, которая не требует установки в GAC и позволяет собрать проект с профилем "AnyCPU". Также, SharpDX — это самая быстрая из всех доступных управляемых библиотек по работе с DirectX"

Именно такими словами заканчивается описание новой, управляемой версии DirectX — SharpDX.

 

Логотип библиотеки SharpDX

Логотип SharpDX

 

О проекте

SharpDX — альтернатива устаревшему Managed DirectX от Microsoft. Что примечательно, практически весь исходный код библиотеки автоматически генерируется на основании оригинальных файлов-заголовков DirectX. По словам автора, данный способ позволяет библиотеке быть более стабильной и находиться в соответствии с текущей версией DirectX SDK.

Особенности

    Ключевыми особенностями проекта являются: 

  • Полное соответствие текущей версии DirectX SDK
    (поскольку, как сказано выше, библиотека собирается автоматически, программой-генератором, на основе оригинальных заголовочных файлов)
  • Поддержка следующих API:
    1. Direct3D10
    2. Direct3D10.1
    3. Direct3D11
    4. Direct2D1
    5. DirectWrite
    6. D3DCompiler
    7. DXGI
    8. DXGI 1.1
    9. DirectSound
    10. XAudio2
    11. XAPO
    12. SlimMath (прямое заимствование из SlimDX)
  • Независимое от платформы, полностью управляемое API
    (библиотека компилировалась с профилем AnyCPU, поэтому ваш код будет работать на обоих платформах (x86, x64) без перекомпиляции)
  • Библиотека разбита на несколько легковесных сборок
    (корневая сборка — SharpDX — включает в себя набор базовых и общих классов для всех зависимых «дочерних» сборок: Direct3D10, Direct3D11, DXGI, D3DCompiler, и т.д. Таким образом обеспечивается минимальный размер зависимостей для проекта)
  • Быстрое взаимодействие с неуправляемым кодом
    (C++/CLI не используется вообще, при этом производительность выше, чем у существующих управляемых API)
  • Именование классов практически повторяет SlimDX API
    (данный факт можно рассматривать как преимущество, в случае если у вас есть SlimDX-проект и вы бы хотели перевести его на SharpDX. Автор указывает, что для такого перехода хватает банального «Find-Replace»)
  • Прямой контроль над продолжительностью жизни DirectX-объектов
    (вы напрямую контролируете объекты, создаваемые на «неуправляемой стороне». SharpDX не использует никаких механизмов типа ObjectTable или RCW, тем самым снижая потери в производительности. Применяется классическая схема, когда COM-объекты освобождаются по вызову метода Release)
  • Возможность обфускации и слияния сборок
    (поскольку «Mixed» режим кода не используется, вы можете легко обфусцировать саму библиотеку, а также без труда сможете произвести слияние сборок библиотеки в конечный .exe)
  • Опциональная сборка SharpDX.Error для получения информации об ошибках на стороне DirectX
    (будет очень удобна для разработчиков, поскольку возвращает не только полученный код ошибки, но и подробное ее описание)

Примеры

Как и в случае SlimDX, данная библиотека поставляется с примерами, которые доступны на специальной странице проекта.

 

Ссылки

  1. Страница проекта SharpDX на Google Code
  2. Статья про библиотеку на википедии
  3. Блог разработчика
  4. Галерея примеров
  5. Managed DirectX от Microsoft
  6. SlimDX



Оставить комментарий

*