Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.11;
Скачать: CL | DM;

Вниз

Режим эмуляции   Найти похожие ветки 

 
VEG   (2003-03-08 12:26) [0]

Вот проблема, простейшее приложение в режиме
эмуляции рендерит черный экран. Вот код инициализации:
bool DXCreate(HWND _hwnd, bool _fullScreen, xDisplayMode _displaymode, bool _hal)
{
D3DDEVTYPE _dtype;
dxint = Direct3DCreate8(D3D_SDK_VERSION);
if(dxint == NULL) return false;
ZeroMemory (&dxpar, sizeof(dxpar));
dxpar.Windowed =! _fullScreen;
dxpar.hDeviceWindow = _hwnd;
dxpar.BackBufferWidth = _displaymode.val.Width;
dxpar.BackBufferHeight = _displaymode.val.Height;
if(_fullScreen)
{// FullScreen
switch (_displaymode.val.Format) {
case 16:
dxpar.BackBufferFormat = D3DFMT_R5G6B5;
break;
case 32:
dxpar.BackBufferFormat = D3DFMT_A8R8G8B8;
break;
default:
return false;
}
dxpar.FullScreen_RefreshRateInHz = _displaymode.val.RefreshRate;
dxpar.BackBufferCount = 3;
dxpar.SwapEffect = D3DSWAPEFFECT_DISCARD;
}
else
{// Windowed mode
D3DDISPLAYMODE _d3ddm;
if(dxint->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &_d3ddm)!=D3D_OK) return false;
dxpar.SwapEffect = D3DSWAPEFFECT_DISCARD;
dxpar.BackBufferFormat = _d3ddm.Format;
( _hal)
Вот проблема, простейшее приложение в режиме
эмуляции рендерит черный экран. Вот код инициализации:
bool DXCreate(HWND _hwnd, bool _fullScreen, xDisplayMode _displaymode, bool _hal)
{
D3DDEVTYPE _dtype;
dxint = Direct3DCreate8(D3D_SDK_VERSION);
if(dxint == NULL) return false;
ZeroMemory (&dxpar, sizeof(dxpar));
dxpar.Windowed =! _fullScreen;
dxpar.hDeviceWindow = _hwnd;
dxpar.BackBufferWidth = _displaymode.val.Width;
dxpar.BackBufferHeight = _displaymode.val.Height;
if(_fullScreen)
{// FullScreen
switch (_displaymode.val.Format) {
case 16:
dxpar.BackBufferFormat = D3DFMT_R5G6B5;
break;
case 32:
dxpar.BackBufferFormat = D3DFMT_A8R8G8B8;
break;
default:
return false;
}
dxpar.FullScreen_RefreshRateInHz = _displaymode.val.RefreshRate;
dxpar.BackBufferCount = 3;
dxpar.SwapEffect = D3DSWAPEFFECT_DISCARD;
}
else
{// Windowed mode
D3DDISPLAYMODE _d3ddm;
if(dxint->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &_d3ddm)!=D3D_OK) return false;
dxpar.SwapEffect = D3DSWAPEFFECT_DISCARD;
dxpar.BackBufferFormat = _d3ddm.Format;
}
if(_hal) _dtype = D3DDEVTYPE_HAL; else _dtype = D3DDEVTYPE_REF;
if(dxint->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, _hwnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &dxpar, &dxdev)!=D3D_OK) return false;
return true;
}

А вот код рендеринга:
void RenderScreen (void)
{
static int c=0 , cc=1;
if(cc==1) c++;
if(cc==0) c--;
if(c==255) cc=0;
if(c==0) cc=1;
dxdev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB (c, 255-c, 0), 1.0f, 0);
dxdev->BeginScene();
dxdev->EndScene();
dxdev->Present(NULL, NULL, NULL, NULL);
}

Как решить проблему?


 
VEG   (2003-03-08 12:28) [1]

Я пишу на c++ и использую заголовки из DirectX 8 SDK от Microsoft


 
VEG   (2003-03-08 12:37) [2]

В Delphi та же проблема!


 
VEG   (2003-03-08 21:20) [3]

СРОЧНО!!! Пожалуйста, ПОМОГИТЕ!!!


 
cyborg   (2003-03-08 22:31) [4]

А в чём проблема-то?


 
VEG   (2003-03-09 11:40) [5]

В режиме эмуляции (D3DDEVTYPE_REF) не выводится картинка, а в режиме аппаратного ускорения (D3DDEVTYPE_HAL) се работает!!! Как сделать так, чтобы и в режиме эмуляции все работало???


 
cyborg   (2003-03-09 12:27) [6]

Код не пробовал, но думаю что это DirectX8 виноват, в нём вроде программной эмуляции нет, только хардваре. Хотя в коде не вижу где картинка выводится, простое очищение экрана.


 
VEG   (2003-03-10 16:26) [7]

Прикол в том, что если то же самое напишу в 7-ой версии, то все пашет (стоит 8.1).
>...простое очищение экрана
Это для тогго, чтобы все упростить:)



Страницы: 1 вся ветка

Текущий архив: 2003.09.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.009 c
14-33785
Ax
2003-08-22 01:36
2003.09.11
Почему пустая форма имеет большой объём?


14-33742
Кен
2003-08-19 04:25
2003.09.11
Где находится центр тяжести вращающегося гироскопа ? В той точке


1-33667
MakNik
2003-08-29 19:07
2003.09.11
StringGrid


14-33731
Дмитрий_Б
2003-08-25 07:52
2003.09.11
Не ставится MS SQL Server 2000 Desktop Engine


8-33698
Vin_Ghost
2003-05-13 23:10
2003.09.11
DELPHIX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский