Почему не создается устройство
От: Green_B  
Дата: 26.03.03 10:45
Оценка:
Хелп! Функция p_d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &p_d3d_Device); не создает устройство!!! Почему, может кто подскажет?
Re: Почему не создается устройство
От: Igor Karablin Россия  
Дата: 26.03.03 10:56
Оценка:
Здравствуйте, Green_B, Вы писали:

GB>Хелп! Функция p_d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,

GB> D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &p_d3d_Device); не создает устройство!!! Почему, может кто подскажет?

Приведи код заполнения структуры D3DPRESENT_PARAMETERS и возвращаемую ошибку.
D3DPRESENT_PARAMETERS
От: VertexDev Россия  
Дата: 26.03.03 11:50
Оценка:
Здравствуйте, Green_B, Вы писали:

GB>Хелп! Функция p_d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,

GB> D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &p_d3d_Device); не создает устройство!!! Почему, может кто подскажет?

Вот попробуй вот такие настройки . Они должны работать:
  m_pD3D = Direct3DCreate8 (D3D_SDK_VERSION);

  D3DDISPLAYMODE d3ddm;
  m_pD3D->GetAdapterDisplayMode (D3DADAPTER_DEFAULT, &d3ddm);

  D3DPRESENT_PARAMETERS d3dpp; 
  ZeroMemory( &d3dpp, sizeof(d3dpp) );
  d3dpp.Windowed   = TRUE;
  d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  d3dpp.BackBufferFormat = d3ddm.Format;
  d3dpp.EnableAutoDepthStencil = TRUE;
  d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
  d3dpp.Flags = 0;
  m_pD3D->CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, GetSafeHwnd(), 
  D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &m_pDevice);
... << RSDN@Home 1.0 beta 6a >>
Re: D3DPRESENT_PARAMETERS
От: Igor Karablin Россия  
Дата: 26.03.03 12:08
Оценка:
Здравствуйте, VertexDev, Вы писали:

VD>Вот попробуй вот такие настройки . Они должны работать:

VD>
VD>  m_pD3D = Direct3DCreate8 (D3D_SDK_VERSION);

VD>  D3DDISPLAYMODE d3ddm;
VD>  m_pD3D->GetAdapterDisplayMode (D3DADAPTER_DEFAULT, &d3ddm);

VD>  D3DPRESENT_PARAMETERS d3dpp; 
VD>  ZeroMemory( &d3dpp, sizeof(d3dpp) );
VD>  d3dpp.Windowed   = TRUE;
VD>  d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
VD>  d3dpp.BackBufferFormat = d3ddm.Format;
VD>  d3dpp.EnableAutoDepthStencil = TRUE;
VD>  d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
VD>  d3dpp.Flags = 0;
VD>  m_pD3D->CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, GetSafeHwnd(), 
VD>  D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &m_pDevice);
VD>


Ну ты и загнул Такое на всех карточках, ниже GF, вообще работать не захочет.

D3DCREATE_HARDWARE_VERTEXPROCESSING — лучше заменить на D3DCREATE_SOFTWARE_VERTEXPROCESSING.

D3DFMT_D24S8 — тоже не факт что потянет, для пущей уверенности лучше D3DFMT_D16 вписать.
Re[2]: Почему не создается устройство
От: Green_B  
Дата: 26.03.03 12:20
Оценка:
Здравствуйте, Igor Karablin, Вы писали:

IK>Здравствуйте, Green_B, Вы писали:


GB>>Хелп! Функция p_d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,

GB>> D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &p_d3d_Device); не создает устройство!!! Почему, может кто подскажет?

IK>Приведи код заполнения структуры D3DPRESENT_PARAMETERS и возвращаемую ошибку.


Код вот такой:
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory (&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = true;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = d3ddm.Format;
Re[3]: Почему не создается устройство
От: Igor Karablin Россия  
Дата: 26.03.03 12:37
Оценка:
Здравствуйте, Green_B, Вы писали:

GB>Код вот такой:

[skipped]

С этим все ок. Пойдем дальше.

1. Приведи весь код инициализации D3D (начиная от Direct3DCreate до CreateDevice).
2. Укажи модель твоей видеокарты.
3. Примеры из SDK работают?
4. Настоятельно прошу код возвращаемой ошибки при вызове CreateDevice()
Re[4]: Почему не создается устройство
От: Green_B  
Дата: 26.03.03 13:14
Оценка:
Здравствуйте, Igor Karablin, Вы писали:

IK>Здравствуйте, Green_B, Вы писали:


GB>>Код вот такой:

IK>[skipped]

IK>С этим все ок. Пойдем дальше.


IK>1. Приведи весь код инициализации D3D (начиная от Direct3DCreate до CreateDevice).

IK>2. Укажи модель твоей видеокарты.
IK>3. Примеры из SDK работают?
IK>4. Настоятельно прошу код возвращаемой ошибки при вызове CreateDevice()

1. p_d3d = Direct3DCreate8 (D3D_SDK_VERSION);

D3DDISPLAYMODE d3ddm;
p_d3d->GetAdapterDisplayMode (D3DADAPTER_DEFAULT, &d3ddm);

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory (&d3dpp, sizeof(d3dpp));
d3dpp.Windowed = true;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = d3ddm.Format;

p_d3d->CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &p_d3d_Device);


// Вообще — это пример с сайта firststeps.ru

2.Видеокарта какая-то интегрированная на материнку. По-моему 8 Мб. (Это в лицеее, дома GeForce2 MX400 64Mb, но я домой попадаю 1 раз в неделю).

3. У меня не полный СДК, я скачал только хидеры и либы для Директ3Д. Если есть небольшой примерчик и не трудно поделиться — кинь на мыло "green_b86@ua.fm"

4. Код ошибки — D3DERR_INVALIDCALL
Re[2]: D3DPRESENT_PARAMETERS
От: VertexDev Россия  
Дата: 26.03.03 13:14
Оценка:
Здравствуйте, Igor Karablin, Вы писали:

IK>Здравствуйте, VertexDev, Вы писали:


VD>>Вот попробуй вот такие настройки . Они должны работать:

VD>>
VD>>  m_pD3D = Direct3DCreate8 (D3D_SDK_VERSION);

VD>>  D3DDISPLAYMODE d3ddm;
VD>>  m_pD3D->GetAdapterDisplayMode (D3DADAPTER_DEFAULT, &d3ddm);

VD>>  D3DPRESENT_PARAMETERS d3dpp; 
VD>>  ZeroMemory( &d3dpp, sizeof(d3dpp) );
VD>>  d3dpp.Windowed   = TRUE;
VD>>  d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
VD>>  d3dpp.BackBufferFormat = d3ddm.Format;
VD>>  d3dpp.EnableAutoDepthStencil = TRUE;
VD>>  d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
VD>>  d3dpp.Flags = 0;
VD>>  m_pD3D->CreateDevice (D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, GetSafeHwnd(), 
VD>>  D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &m_pDevice);
VD>>


IK>Ну ты и загнул Такое на всех карточках, ниже GF, вообще работать не захочет.

Очень редко где найдешь людей у которых видеокарточка ниже по мощности GeForce'а.

IK>D3DCREATE_HARDWARE_VERTEXPROCESSING — лучше заменить на D3DCREATE_SOFTWARE_VERTEXPROCESSING.

Если работает аппаратная обработка — то лучше выбрать ее

IK>D3DFMT_D24S8 — тоже не факт что потянет, для пущей уверенности лучше D3DFMT_D16 вписать.

Вообще лучше сделать специальное окно с выбором конфигурации настроек устройства Direct3D — и это было бы правильнее и вернее...
Тогда можно было бы поэкспериментировать, на что способна видеокарточка.

Во всяком случае у меня все нормально работает
... << RSDN@Home 1.0 beta 6a >>
Re[5]: Почему не создается устройство
От: Блудов Павел Россия  
Дата: 27.03.03 04:58
Оценка:
Здравствуйте, Green_B, Вы писали:

GB> D3DDISPLAYMODE d3ddm;

GB> p_d3d->GetAdapterDisplayMode (D3DADAPTER_DEFAULT, &d3ddm);

А тут, случайно, не 256 цветов?

Павел.
P.S. Как последнее средство, всегда
можно поставить отладочную версию DX.
Re[5]: Почему не создается устройство
От: Igor Karablin Россия  
Дата: 28.03.03 11:05
Оценка:
Здравствуйте, Green_B, Вы писали:

[skip]

GB>3. У меня не полный СДК, я скачал только хидеры и либы для Директ3Д. Если есть небольшой примерчик и не трудно поделиться — кинь на мыло "green_b86@ua.fm"


Письмо ушло. Извиняюсь за задержку.
Re[3]: D3DPRESENT_PARAMETERS
От: Igor Karablin Россия  
Дата: 28.03.03 11:24
Оценка:
Здравствуйте, VertexDev, Вы писали:

VD>>>Вот попробуй вот такие настройки . Они должны работать:

Вот из-за этой строчки я и решил поправить тебя...
[skip]

IK>>Ну ты и загнул Такое на всех карточках, ниже GF, вообще работать не захочет.

VD>Очень редко где найдешь людей у которых видеокарточка ниже по мощности GeForce'а.
Вот, сейчас сижу за подобным компом, и еще 3 человека неподалеку с такими-же видеокартами. Intel 82845G/GL Graphics Controller называется — пакость редкостная, а куда деваться?

IK>>D3DCREATE_HARDWARE_VERTEXPROCESSING — лучше заменить на D3DCREATE_SOFTWARE_VERTEXPROCESSING.

VD>Если работает аппаратная обработка — то лучше выбрать ее
Точно, но мы беседуем о максимально доступных настройках, не так ли?

IK>>D3DFMT_D24S8 — тоже не факт что потянет, для пущей уверенности лучше D3DFMT_D16 вписать.

VD>Вообще лучше сделать специальное окно с выбором конфигурации настроек устройства Direct3D — и это было бы правильнее и вернее...
VD>Тогда можно было бы поэкспериментировать, на что способна видеокарточка.
Ради экспериментов можно и так, а можно просто запустить DirectX caps viewer.

VD>Во всяком случае у меня все нормально работает

Если это касается только тебя — нет проблем.
Re[2]: D3DPRESENT_PARAMETERS
От: butcherlyfly  
Дата: 13.02.09 09:30
Оценка:
IK>D3DCREATE_HARDWARE_VERTEXPROCESSING — лучше заменить на D3DCREATE_SOFTWARE_VERTEXPROCESSING.

Помогло
Прошу прощения за некрофилию.
Re[3]: D3DPRESENT_PARAMETERS
От: Igor Karablin Россия  
Дата: 18.02.09 18:42
Оценка:
Здравствуйте, butcherlyfly, Вы писали:

IK>>D3DCREATE_HARDWARE_VERTEXPROCESSING — лучше заменить на D3DCREATE_SOFTWARE_VERTEXPROCESSING.


B>Помогло

B>Прошу прощения за некрофилию.

Лучше поздно, чем никогда

ps: ё моё, почти шесть лет прошло...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.