У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


прапорець Windowed установлений в FALSE (для повноекранного режиму), тоді ці значення (ширина й висота) повинні бути взяті з функції IDirect3D9::EnumAdapterModes. Якщо прапорець Windowed установлений в TRUE і кожне із цих значень нуль, тоді розміри беруться з області клієнта hDeviceWindow (або фокуса вікна, якщо hDeviceWindow дорівнює NULL).

BackBufferFormat - це член структури D3DFORMAT. Це значення одного з форматів візуалізації, що затверджується за допомогою IDirect3D9::CheckDeviceType.

Якщо встановлено прапорець Windowed в TRUE, тоді BackBufferFormat установлюється за замовчуванням поточного режиму відображення. Для цього використайте функцію IDirect3DDevice9::GetDisplayMode, щоб одержати поточний формат.

BackBufferCount - число задніх буферів, їхнє значення може бути 0, 1, 2, 3. Мінімально вважається наявність 1, тому при параметрі 0, однаково створиться 1 задній буфер.

MultiSampleType - член структури D3DMULTISAMPLE_TYPE. Це значення повинне бути дорівнює D3DMULTISAMPLE_NONE, якщо SwapEffect був установлений в D3DSWAPEFFECT_DISCARD. Multisampling підтримується, якщо був визначений ефект обміну D3DSWAPEFFECT_DISCARD.

SwapEffect - служить для визначення обміну буферів. Член структури D3DSWAPEFFECT. Якщо прапорець Windowed установлений в TRUE й SwapEffect установлений в D3DSWAPEFFECT_FLIP, тоді додасться один додатковий задній буфер і не буде відображатися, поки активно первинний буфер. D3DSWAPEFFECT_COPY й D3DSWAPEFFECT_COPY_VSYNC вимагає встановити значення BackBufferCount в 1. D3DSWAPEFFECT_DISCARD - буде прописаний керований час в отладчике, коли будь-який буфер може бути заповнений, коли іншої видний на екрані.

hDeviceWindow - якщо додаток працює в повноекранному режимі, то задається вся поверхня екрана монітора.

Windowed - Дорівнює TRUE, якщо додаток запущений у віконному режимі. FALSE - якщо додаток є повноекранним.

EnableAutoDepthStencil - якщо значення TRUE, те Microsoft Direct3D може управляти буфером глибини. Пристрій може створити трафарет буфера глибини. Трафарет буфера глибини автоматично встановлюється на пристрій візуалізації. Коли пристрій скидається, трафарет буфера глибини автоматично знищується й створюється новий розмір.

Якщо EnableAutoDepthStencil установлений в TRUE, тоді AutoDepthStencilFormat повинен мати формат трафарету глибини.

AutoDepthStencilFormat - може приймати значення зі структури D3DFORMAT. Створює формат поверхні трафарету глибини.

Flags - він може бути встановлений в 0, або в наступні прапорці:

D3DPRESENTFLAG_LOCKABLE_BACKBUFFER - установлюємо прапор, якщо додаток вимагає безпосередній режим роботи із заднім буфером. Зверніть увагу, задні буфери мають доступ, якщо додаток має D3DPRESENTFLAG_LOCKABLE_BACKBUFFER, коли використає функцію IDirect3D9::CreateDevice або IDirect3DDevice9::Reset.

FullScreen_RefreshRateInHz - частота відновлення екрана. Для віконного режиму це значення повинне бути 0. Інакше, це значення повинен повертати IDirect3D9::EnumAdapterModes. Можна використати одне з наступних значень:

D3DPRESENT_RATE_DEFAULT - ставить за замовчуванням, або поточному відновленню відображення вікна.

D3DPRESENT_RATE_UNLIMITED - ставить найшвидший рефреш, що дозволяє залізо.

FullScreen_PresentationInterval - максимальний інтервал перемикань заднього буфера. Для віконного режиму це значення можна встановити в D3DPRESENT_INTERVAL_DEFAULT(0). Для повноекранного встановлюється в D3DPRESENT_INTERVAL_DEFAULT або може рівнятися одному з нижче описаних прапорців вхідних у структуру D3DCAPS9:

D3DPRESENT_INTERVAL_IMMEDIATE - дозволяє діяти негайно. Драйвер не чекає повернення вертикального променя синхронізації.

D3DPRESENT_INTERVAL_ONE - драйвер чекає повернення вертикального променя синхронізації. Т.е. відновлення відбувається не швидше чим відновлення екрана.

D3DPRESENT_INTERVAL_TWO - драйвер чекає повернення вертикального променя синхронізації. Т.е. відновлення відбувається у два рази повільніше, ніж відновлення екрана.

D3DPRESENT_INTERVAL_THREE - драйвер чекає повернення вертикального променя синхронізації. Т.е. відновлення відбувається в три рази повільніше, ніж відновлення екрана.

D3DPRESENT_INTERVAL_FOUR - драйвер чекає повернення вертикального променя синхронізації. Т.е. відновлення відбувається в чотири рази повільніше, ніж відновлення екрана.

- HRESULT Clear(DWORD Count, CONST D3DRECT *pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil)

Очищає вікно, буфер глибини й буфер трафарету.

Count - кількість прямокутників у масиві pRects, якщо зазначено 0, то буде очищена вся поверхня.

pRects - покажчик на масив структури D3DRECT описывающий прямокутну область очищення. Якщо Вам потрібно очистити повністю екран укажіть NULL.

typedef struct _D3DRECT

{

LONG x1, y1; //координати верхнього лівого кута

LONG x2, y2; //координати нижнього правого кута

} D3DRECT;

Flags - параметр, що визначає прапори, що вказують, які з поверхонь повинні бути очищені, комбінується з наступних значень прапорів:

D3DCLEAR_STENCIL - очищає буфер трафарету до значення Stencil.

D3DCLEAR_TARGET - очищає відображувану частину екрана, кольорами зазначеним в Color.

D3DCLEAR_ZBUFFER - очищає буфер глибини, значенням зазначеним в Z.

Color - це значення має 32-бітові кольори, для очищення екрана додатка. Для завдання використається макрос D3DCOLOR_XRGB(R, G, B)

Z - параметр задає значення для Z-буфера. 0.0 - найближче значення, 1.0 - далека відстань

Stencil - значення буфера трафарету, може бути в діапазоні від 0 до 2 у ступені n-1, де n розрядна глибина буфера трафарету.

Якщо функція завершена успішно, тоді повертається значення D3D_OK, інакше значення D3DERR_INVALIDCALL.

- HRESULT BeginScene(VOID)

Після цієї функції починається створення сцени.

- HRESULT EndScene(VOID)

Виклик цієї функції сигналізує, що сцена повністю поміщена в задній буфер обміну й тепер може бути виведена на екран.

- HRESULT Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion)

pSourceRect - покажчик на структуру RECT вихідної поверхні. Якщо покажчик NULL, то використається вся поверхня. Якщо прямокутник має значення більше самої поверхні, то він підрізається до відповідних розмірів поверхні.

pDestRect - покажчик на структуру RECT поверхні адресата. Якщо покажчик дорівнює NULL, якщо не були зазначені D3DSWAPEFFECT_COPY або D3DSWAPEFFECT_COPY_VSYNC. pDestRect є покажчиком на структуру RECT, що містить координати прямокутника клієнтського вікна. Якщо покажчик NULL, то використається повна область клієнта. Якщо прямокутник має значення більше самої поверхні, то він підрізається до відповідних розмірів поверхні.

hDestWindowOverride - покажчик, що вказує на вікно клієнта, що призначена для візуалізації сцени. Якщо цей параметр дорівнює NULL, тоді hWndDeviceWindow вхідний у структуру D3DPRESENT_PARAMETERS буде прийнятий.

pDirtyRegion - цей параметр не використається й повинен бути встановлений в NULL (використався в попередніх версіях, залишений для сумісності).

Якщо функція завершена успішно, тоді повертається значення


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20