Уже довольно давно занимаюсь созданием библиотеки типов Direct3D9 и вспомогательных функций D3DX для VB6. Но на днях у меня сломался жесткий диск и абсолютно все мои проекты/исходники оказались недоступными. Состояние ЖД я пока не знаю, но позже я отдам его специалистам для восстановления данных. Решил выложить последний бекап сюда, который лежал в сети. Если не получится восстановить информацию то возможно я заброшу этот проект иначе буду здесь обновлять информацию по мере необходимости.
Итак в архиве содержится библиотека типов "DirectX 9 for Visual Basic 6.0 type library by The trick" (dx9vb.tlb) содержащая описание следующих интерфейсов:
- IDirect3D9;
- IDirect3DDevice9;
- IDirect3DSurface9;
- IDirect3DResource9;
- IDirect3DSwapChain9;
- IDirect3DTexture9;
- IDirect3DBaseTexture9;
- IDirect3DVolumeTexture9;
- IDirect3DVolume9;
- IDirect3DCubeTexture9;
- IDirect3DVertexBuffer9;
- IDirect3DIndexBuffer9;
- IDirect3DStateBlock9;
- IDirect3DVertexDeclaration9;
- IDirect3DVertexShader9;
- IDirect3DPixelShader9;
- IDirect3DQuery9;
Также в архиве содержится несколько модулей написанных на VB6:
- D3DX_COLOR.bas - для работы с цветами
- D3DX_MATRICES.bas - для работы с матрицами
- D3DX_QUATERNION.bas - для работы с кватернионами
- D3DX_VECTOR2.bas, D3DX_VECTOR3.bas, D3DX_VECTOR4.bas - для работы с векторами
- D3DX_MISC.bas - различные функции которые не вошли не в одну из категорий
Также в архиве содержится несколько тестовых примеров работы.
GitHub.
08.24.2015. добавлен пример вывода текста
09.17.2015. добавлен пример 3D форма
02.27.2016. Исправлен баг в функции D3DXMatrixTranspose. Изменены типы указателей на Any в методах IDirect3DDevice9::CreateVertexShader, IDirect3DDevice9::CreatePixelShader, IDirect3DDevice9::SetPixelShaderConstantB, IDirect3DDevice9::SetPixelShaderConstantI, IDirect3DDevice9::SetPixelShaderConstantF, IDirect3DDevice9::SetVertexShaderConstantB, IDirect3DDevice9::SetVertexShaderConstantI, IDirect3DDevice9::SetVertexShaderConstantF
06.05.2018. Добавлены примеры: Сцена (камера, процедурная генерация, выделение мышью, трансформации), "Лазерные" линии, Рендеринг в отдельном потоке
Исправлены баги в функциях: D3DXMatrixTranspose, D3DXMatrixRotationQuaternion, D3DXVec2Length;
Изменен прототип для функции D3DXPlaneIntersectLine, вместо генерации ошибки функция возвращает значение;
Изменено поведение функции D3DXQuaternionToAxisAngle, теперь она может принимать ненормализованные кватернионы.