Set D3DDevice = D3D.CreateDevice...

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Set D3DDevice = D3D.CreateDevice...

Сообщение Vovik » 13.12.2003 (Сб) 17:21

Пишу так:
Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, d3dpp) - всё просто Ок.
но когда вот так:
Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp), то просто закрывает VB и всё! Везде, где ни глянь Software, а у мя только хардваре. Люди Хелп ми! :cry:

Maxwell
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 182
Зарегистрирован: 01.10.2003 (Ср) 15:48
Откуда: Russia

Сообщение Maxwell » 13.12.2003 (Сб) 18:01

У тебя пример со стеклом работает, так в чём проблема? Там SOFTWARE, копируй код от туда.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 13.12.2003 (Сб) 18:14

Maxwell писал(а):У тебя пример со стеклом работает, так в чём проблема? Там SOFTWARE, копируй код от туда.

То не пойдёт. Мне бы моё починить...эх....А какая разница вообще? Software - программное, а Hardware - аппаратное ( кажется вроде лучше.). :roll:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 14.12.2003 (Вс) 11:22

HardWare, конечно, лучше, но не пойдет, если ниже GeForce.
HardWare от SoftWare отличаются в том числе на отслеживании ошибок. Например:

setrenderstate=true

на HardWare (у меня) работает, а на SoftWare - нет. Потому, что нужно
D3DZB_TRUE вместо TRUE.
Вообще желательно приучиться применять ТОЛЬКО предусмотренные DX8 константы, так и программа лучше читается.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 14.12.2003 (Вс) 12:59

Mikle писал(а):Вообще желательно приучиться применять ТОЛЬКО предусмотренные DX8 константы, так и программа лучше читается.
Большое Спасибо, но не так уж легко узнать, где предусмотренные, а где - нет. Ведь не всегда есть предусмотренные. :roll:

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 14.12.2003 (Вс) 13:25

Всё равно не пахает! :cry: Решил выложить кусок кода...Может, кто поможет...
Код: Выделить всё
Private Function InitD3D(hWnd As Long, Windowed As Boolean, DispX As Integer, DispY As Integer, DispColor As Integer) As Boolean
On Local Error Resume Next
Dim DispMode As D3DDISPLAYMODE
Dim d3dpp As D3DPRESENT_PARAMETERS
  Set D3D = DX.Direct3DCreate()
   D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DispMode
   If Windowed = True Then
    d3dpp.Windowed = True
    d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC
    d3dpp.BackBufferFormat = DispMode.Format
    d3dpp.BackBufferCount = 1
   Else
    DispMode.Width = DispX
    DispMode.Height = DispY
    d3dpp.Windowed = False
    d3dpp.SwapEffect = D3DSWAPEFFECT_FLIP
    d3dpp.BackBufferCount = 1
    d3dpp.BackBufferWidth = DispX
    d3dpp.BackBufferHeight = DispY
    d3dpp.hDeviceWindow = hWnd
      If DispColor = 16 Then
        d3dpp.BackBufferFormat = D3DFMT_R5G6B5
      Else
        d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8
      End If
    d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE
   End If
   d3dpp.EnableAutoDepthStencil = True
   d3dpp.AutoDepthStencilFormat = D3DFMT_D16
   ZBufferFormat = D3DFMT_D16
  If CheckZBufferFormat(D3DDEVTYPE_HAL, DispMode.Format, ZBufferFormat) Then d3dpp.AutoDepthStencilFormat = ZBufferFormat

  Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, _                              D3DCREATE_[b]SOFT[/b]WARE_VERTEXPROCESSING, d3dpp)
   If D3DDevice Is Nothing Then Exit Function
 
  D3DDevice.SetRenderState D3DRS_ZENABLE, D3DZB_TRUE   'включается z-буфферинг

InitD3D = True
End Function

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 14.12.2003 (Вс) 16:19

Могу сказать только что у тебя ошибка уже с bbp заднего и z буферов.

D3DFMT_D16 - шестнадцетибитная константа для z буффера не всегда работает с 32 битной X8R8G8B8 для заднего буффера. Из-за этого может быть ошибка при софтверной инициализации устройства. А Maxwell дело говорит, посмотри отлиция в коде и измени свой код.

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 14.12.2003 (Вс) 18:20

d3drm писал(а):Могу сказать только что у тебя ошибка уже с bbp заднего и z буферов.

D3DFMT_D16 - шестнадцетибитная константа для z буффера не всегда работает с 32 битной X8R8G8B8 для заднего буффера. Из-за этого может быть ошибка при софтверной инициализации устройства. А Maxwell дело говорит, посмотри отлиция в коде и измени свой код.
Насчёт буфера ты прав! А всё остальное такое же, как у Maxwell'а !!! :cry:

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 14.12.2003 (Вс) 20:27

Хм... Все-таки перепроверь. Там настройки хитрые...

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 15.12.2003 (Пн) 9:50

Попробуй вместо X8R8G8B8 использовать A8R8G8B8.
А в R5G6B5 у тебя работает?

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 15.12.2003 (Пн) 14:42

УРА!!!!!!! Всем большое спасибо!!!! :) Но глюк был не в инциализации, а при загрузке рисунка. Я забыл убрать загрузку, а рисунок удалил. Он ошибки не выдавал при Hardware, а при Software просто закрывал проект! И всё же, ВСЕМ СПАСИБО!!! :lol:
Mikle писал(а):А в R5G6B5 у тебя работает?
Работает. :wink:


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

    TopList