love5an: (Default)
Direct3D Workshop теперь полноправная SxS assembly.

То есть, в том числе может устанавливаться в директорию кэша SxS как shared assembly.

Вот я даже сделал MSI-инсталлятор:
https://github.com/downloads/Lovesan/D3DWorkshop/D3DW-0.1.1.1.msi
(и в принципе его любой желающий может собрать из сорцов на гитхабе, при условии наличия у него VS хотя бы C++ express версии, Windows SDK, и WiX версии 3.0 и выше)

SxS(оно же Component Servicing Infrastructure (CSI)) это инфраструктура Windows навроде .NET GAC, но для нейтив библиотек и приложений. По факту, это практически полный эквивалент GAC, у них даже API похожи( http://msdn.microsoft.com/en-us/library/windows/desktop/aa376204(v=vs.85).aspx )
SxS это очень круто, решает многие проблемы с версиями библиотек и т.п.

Из недостатков(как я уже писал в juck) - линуксоиды им, по какой-то странной причине, пользоваться не умеют. Ну и соответственно, опенсорс-библиотеки с корнями в линуксах и т.п. подвержены проблеме DLL hell и сопутствующему(впрочем они этому и на родных платформах подвержены, гг).

Впрочем, создание SxS assembly это не такая тривиальная вещь, какой могла бы быть. Надо будет написать статейку на эту тему.

Кстати, библиотека зависит, кроме системных стандартных вещей, еще и от от D3DCompiler_43.dll, для компиляции шейдеров. Я думаю от этой зависимости в будущем избавиться, придумав бинарный формат для "эффектов", но пока что эту dll можно взять из MS DirectX SDK(ну или Windows SDK, если говорить о SDK для Win8).
love5an: (Default)
Я тут на днях начал писать код для мини-фреймворка для 2D и 3D графики, над Direct3D+Direct2D

Потому что почувствовал, что просто надстройки(ну я тут выкладыл сорцы библиотечки D3DU) чтобы скрыть всю сложность D3D не хватает, и надо его полностью скрыть за слоем чего-то удобноваримого.

Ну поэтому начал писать сабж.
Интерфейс библиотеки - одна функция, D3DWCreateWindow, а все остальное - COM-интерфейсы.
https://github.com/Lovesan/D3DWorkshop/blob/master/D3DWorkshop/D3DW.h
То есть, использовать можно будет и из C#(кстати для .NET планирую специальную обертку написать) и из лиспа какого-нибудь.

Основная фича такая: крайне сильно упрощен интерфейс нижележащего API, а точнее трех: под капотом интегрированы Direct3D 11, Direct3D 10.1 и Direct2D, т.е. 2D-графика и 3D-графика с общим интерфейсом. Для 2D пока сделано довольно мало, сразу скажу, фактически одна функция, Clear. Но в ближайшем будущем думаю привинтить основную функциональность Direct2D.

Несмотря на то что под капотом технологии MS, наружу они не торчат(кроме lightweight COM), то есть, в теории это дело можно будет перенести и под OpenGL+Cairo(или чем там щас в 2D рисуют).

Вот вобщем сорцы, и они будут пополняться:
https://github.com/Lovesan/D3DWorkshop

На первых порах следить за обратной совместимостью особо не обещаю, но в будущем думаю с этим будет получше.



Примеров там на гитхабе пока довольно мало, а точнее один, но в ближайшее время добавлю еще

Profile

love5an: (Default)
Dmitry Ignatiev

June 2020

S M T W T F S
 123456
78910 111213
14151617181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 10th, 2025 06:44 am
Powered by Dreamwidth Studios