Войти
Вело-изобретателиФорумГрафика

Direct3D9 в VB6 (2 стр)

Страницы: 1 2 3 Следующая »
#15
23:05, 31 мая 2016

AWPStar
А ты скачал обновлённую версию TLB? Я не зря в п.9 просил сделать As Any функции CreateVertexShader() и CreatePixelShader().
Из файла то можно и массив As Long использовать, но, если хранить шейдеры в ресурсах, то LoadResData() возвращает байтовый массив.
У меня так работает:

Private Function CreateVertexShaderFromFile(fName As String) As IDirect3DVertexShader9
  Dim nf As Integer
  Dim ar() As Byte

  nf = FreeFile
  Open fName For Binary As #nf
    ReDim ar(LOF(nf) - 1)
    Get #nf, , ar()
  Close #nf
  Set CreateVertexShaderFromFile = Dev.CreateVertexShader(ar(0))
End Function

Private Function CreatePixelShaderFromFile(fName As String) As IDirect3DPixelShader9
  Dim nf As Integer
  Dim ar() As Byte

  nf = FreeFile
  Open fName For Binary As #nf
    ReDim ar(LOF(nf) - 1)
    Get #nf, , ar()
  Close #nf
  Set CreatePixelShaderFromFile = Dev.CreatePixelShader(ar(0))
End Function

#16
23:41, 31 мая 2016

Mikle
Точно! А я и забыл )

#17
0:54, 29 авг. 2016

Только сейчас заметил. Спасибо)

Прошло более 1 года
#18
9:43, 7 мая 2018

Обновление.

Новые примеры:

Исправлены баги в функциях:

Изменения:

#19
11:14, 7 мая 2018

the trick
> D3DXVec2Length
Неужели и там был баг :)
3D редактор пишешь?

#20
11:31, 7 мая 2018

Mikle
> 3D редактор пишешь?
Нет. Просто давно обновлений не было, а тут еще человек попросил сделать подобный пример работы с камерой и сценой. Сейчас я работаю над Direct2D библиотекой.

Прошло более 1 года
#21
(Правка: 15:00) 14:59, 11 окт. 2019

the trick
решил попробовать в дельфи использовать твою поделку.
Ругается при попытке импорта:
Fehler beim Zugriff auf OLE-Registrierung.

+ Показать

Оно же теоретически должно независимо от языка работать?
Что ему не хватает?

#22
11:37, 22 окт. 2019

Попробовал ради эксперимента подключить tlb в c# - подключается успешно, видны интерфейсы, методы... кроме самого главного - Direct3DCreate9(), он должен бы быть тут: DxVBLib.D3d9.Direct3DCreate9(), но нет.

#23
11:55, 22 окт. 2019

Mikle
Если подключить любую либу с API функциями их видно?

Isaev
Не работал с дельфи. Что значит "при попытке импорта"?

#24
(Правка: 12:38) 11:58, 22 окт. 2019

the trick
> Если подключить любую либу с API функциями их видно?
Какую например?
В твоей либе видны все остальные функции, кроме Direct3DCreate9(), но с неё нужно начинать, поэтому не могу ничего проверить.

Direct3DCreate9() и в VB6 выглядит странно - не ясно, чьим методом она является.

#25
17:57, 22 окт. 2019

the trick
> Что значит "при попытке импорта"?
В Delphi в IDE подключение tbl происходит посредствам импорта компонента(ов) из tbl файла
import | Direct3D9 в VB6

#26
19:30, 22 окт. 2019

Isaev
Как ActiveX пробовал подключать?

#27
(Правка: 9:59) 9:54, 23 окт. 2019

Mikle
> Какую например?
Ну к примеру olelib.tlb Потом посмотри как выглядит к примеру функция SHGetMalloc.

Mikle
> Direct3DCreate9() и в VB6 выглядит странно - не ясно, чьим методом она
> является.
Это не метод, это просто API функция, такая же к примеру как и SetDIBits.

Isaev
> В Delphi в IDE подключение tbl происходит посредствам импорта компонента(ов) из
> tbl файла
Ну смотря лог ошибок, кажется не может зарегать. Попробуй вручную зарегай, а потом подключай.

#28
11:30, 23 окт. 2019

the trick
> Это не метод, это просто API функция, такая же к примеру как и SetDIBits
В шарпе и в vb.net её не видно.
Попробовал подключить dx8vb.dll. Это совмещение tlb, примерно как у тебя, только для dx8, с обычной dll, в которой находится математика и прочие d3dx функции.
Я написал простейшую программку, которая только создаёт девайс, очищает бэкбуфер определённым цветом и делает Present(), на этом уровне d3d8 и d3d9 ни чем не отличаются, но при подключении dx8vb.dll получается, что Direct3DCreate() - это метод объекта типа DxVBLibA.DirectX8, а сам этот объект создаётся просто с помощью new:

  dx8 = new DxVBLibA.DirectX8();
  d3d8 = dx8.Direct3DCreate();
В шарпе и в vb.net всё работает.
#29
13:24, 23 окт. 2019

Mikle
> Как ActiveX пробовал подключать?
как ActiveX та же самая ошибка

Страницы: 1 2 3 Следующая »
Вело-изобретателиФорумГрафика