Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-33515
cranium
2003-08-19 18:31
2003.09.11
Как корректно обработать не правильный ввод пароля...


7-33821
Pauk
2003-06-26 19:11
2003.09.11
Принтеры


3-33437
reticon
2003-08-20 23:13
2003.09.11
проблема с DBLookupComboBox


6-33718
Skywalker
2003-07-10 18:15
2003.09.11
TWebBrowser


1-33583
Pirat
2003-08-28 13:57
2003.09.11
мерцание TListView при скроллировании





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский