SpriteBatch — инструментарий SharpDX — кривые Безье

Я новичок в сфере разработки DirectX. Я использую инструментарий SharpDX для его абстракции от игры, потому что он упрощает большую часть работы по инициализации.

У меня возникли трудности с поиском хороших руководств по этому вопросу (если они есть, я в игре, без каламбура).

Я пытаюсь определить, как рисовать кривые Безье, линии, прямоугольники и тому подобное вместе со стандартным SpriteBatch.

Вот что я знаю:

  1. Мне нужно использовать геометрию пути для создания примитивов для рендеринга сцены.
  2. Мне нужна цель рендеринга, чтобы нарисовать ее, но я не могу определить, как это сделать в рамках фреймворка и как определить, где она в конечном итоге будет нарисована.

Как только я это узнаю, как мне указать приоритет рендеринга?


person Allen Clark Copeland Jr    schedule 07.11.2017    source источник


Ответы (1)


Похоже, что пакет ToolKit через Nuget устарел, и, согласно репозиторию github для него, он находится в нерабочем состоянии, когда вы обновляете все до последних версий.

Между SharpDX.Direct2D1 и SharpDX.Toolkit.Graphics есть конфликты типов.

Кажется, он вернулся к чертежной доске. Я думаю, что самая большая неразбериха в этом заключается в том, что SharpDX прозрачно упрощает большую часть COM-взаимодействия. Класс D2D1 предоставляет метод (который похож на тот же метод С++, если вы читаете учебник по С++):

CreateFactory(FactoryType factoryType, Guid riid, FactoryOptions? factoryOptionsRef, out IntPtr iFactoryOut)

Однако вы можете просто сделать new Factory(...), и он сам обработает вызов.

Factory приводит к RenderTarget, который ведет к GeometrySink, который ведет к PathGeometry, который затем необходим для рендеринга Безье и тому подобного. Не понял, как вывести что-нибудь на экран, но я ближе!

person Allen Clark Copeland Jr    schedule 10.11.2017