ПредишенСледващото

GLUT да Game Mode е предназначен да осигури изобразяването с висока производителност на цял екран. В този режим, някои GLUT функции като изскачащи менюта и прозорци са с увреждания, за да се подобри производителността.
Първото нещо, което трябва да направите, е да се определят параметрите на режима на игра, това е, настройките на дисплея. Тези параметри могат да включват резолюция на екрана, пикселни дълбочини и честотата на опресняване.
формат настройка е, както следва:

W - ширината на екрана в пиксели.
H - височина на екрана в пиксели.
BPP - броят на бита на пиксел.
RR - вертикална честота в херца.

Преди да отиде по-нататък, моля, имайте предвид, че тези настройки са достъпни само при поискване от хардуера. Ако този режим не е на разположение, настройките се игнорират.

"800 х 600: 32 @ 100" - резолюция от 800 х 600; дълбочина цвят (32 бита); 100Hz
"640 х 480: 16 @ 75" - 640 х 480; дълбочина цвят (16 бита); 75Hz

Въпреки, че ние обикновено имат по-ясна представа за резолюции на екрана и всички параметри, за щастие, ние не трябва да посочите всички от тях. Ние можем да оставим някои от полетата, и нека GLUT попълват сами бланките. Следният шаблон низ е валиден показател за настройките на частични дисплея:

GLUT могат да се справят всички комбинации, докато редът между тях се запазва. Например, като се посочва честотата на актуализации на дълбочината на цвета не е позволено.

Да предположим, че искате да настроите разделителната способност на екрана, но не се грижи за дълбочината на пиксел или честота на опресняване, тогава можем да запишем нещо като "800 × 600".

Ако, от друга страна, ние просто исках да зададете режим на цял екран при текущата резолюция, но с дълбочина на цвета 32 бита, бихме могли да напише "32".

Тези няколко примера не показват всички функции на екрана за пълен ред. Ние можем да използваме някои от моделите на реда преди това.

На първо място, ние трябва да се създаде GLUT според заявените параметри за режим на цял екран. Функциите на GLUT, за създаване на режим на игра - glutGameModeString. Синтаксисът е както следва:

нищожен glutGameModeString # 40; Конст Чар * низ # 41; ;

* String - низ, който съдържа желаните настройки.

GLUT проверява glutGameModeString аргумент. Въпреки, че функцията не връща код за грешка, можем да бъдем сигурни, че режим е посочен в правилния ред. GLUT осигурява функция, която, наред с други функции, ни позволява да проверите дали определен режим е валиден. Нейният синтаксис е следния:

вътр glutGameModeGet # 40; информация GLenum # 41; ;

инфо - исканата информация.

За да потвърдите, че предоставена от режим е активен, променлива информация е предварително дефинирани константи: GLUT_GAME_MODE_POSSIBLE.

В този случай, върнатата стойност показва дали предварително зададен режим валиден, различна от нула стойност показва активността се казва режим дал. Ако приемем, че имаме различна от нула стойност като обратна стойност, можем да влезем, или поне се опитайте да получите в glutEnterGameMode на режим на игра. Тази функция всъщност задава желаната настройка, ако те са валидни за екрана. Синтаксисът е както следва:

нищожен glutEnterGameMode # 40; празнота # 41; ;

Основната функция е да се инициализира пренасищане с използването на режима на игра с резолюцията на 800 600 настройки може да изглежда така:

инициализационната функция трябва да се регистрирате всички обратни повиквания, както и да се направи необходимото инициализация на OpenGL. Например, ние може да пише следното:

Това може да е така, ако искаме да бъде в състояние да превключвате между игри и прозоречен режим по време на изпълнение. Следващият фрагмент от код показва, че ние започваме в прозоречен режим. След това потребителят може да натиснете F1, за да влезете в режим на игра. F6 носи потребителят обратно към режим на прозорец. В този случай основните # 40; # 41; трябва да се определят свойствата на прозореца, проверка на функциите и обратни повиквания и въведете основната линия.

Функция, която разказва GLUT излезете от режима на игра.

нищожен glutLeaveGameMode # 40; празнота # 41; ;

Функцията, която ще се справят специалните бутони за превключване режима на работа:

Има една подробност, която е много важна за функцията по-горе, когато отидем в режим на игра glutEnterGameMode на което трябва да се регистрирате за обратно повикване отново и предефиниране контекста на OpenGL. режим на игра е еквивалентно на нов прозорец с OpenGL на други настройки и GLUT. Това означава, че за обратно повикване функции в режим на прозорец, няма да работят в режим на игра. За да използвате функцията за обратно повикване, трябва да се регистрирате отново. Освен това, OpenGL инициализация трябва да бъде отново определена. Например дисплей списъци, създадени за режим на прозорец трябва да се дефинират отново при въвеждане на режим на игра.

GLUT има специална функция за заявка за състоянието на параметрите за режима на игра. glutGameModeGet. Синтаксисът на тази функция е посочено по-горе, ние споменахме, че един от възможните стойности на аргумента е GLUT_GAME_MODE_POSSIBLE.

Има няколко възможности за glutGameModeGet аргумент, които покриват всички нужди в правилната програмиране игра. ценности замяна на всеки отделен случай, както следва:

GLUT_GAME_MODE_ACTIVE - Ако заявлението е в режим на игра, glutGameModeGet след това се връща ненулева стойност, ако прозоречен режим, той се връща на нула.
GLUT_GAME_MODE_POSSIBLE - Както бе споменато по-горе, може да се използва за проверка на линията, която определя режим за настройка на игра. Това е добър тон да се обжалва пред glutGameModeGet с тази стойност, преди да влезе в режим на игра.
GLUT_GAME_MODE_DISPLAY_CHANGED - Както бе споменато по-рано, когато въвеждате няма гаранция, режим на игра, която режим на дисплея се е променила много. Тази стойност може да се използва за проверка дали режимът на игра наистина е активирана.
GLUT_GAME_MODE_WIDTH - връща ширината на екрана.
GLUT_GAME_MODE_HEIGHT - връща височината на екрана.
GLUT_GAME_MODE_PIXEL_DEPTH - връща цвят дълбочина малко на пиксел на текущия режим.
GLUT_GAME_MODE_REFRESH - действителната скорост на опресняване на херца.
Последните четири варианта имат смисъл само когато сме в режим на игра. Тези опции ще доведе glutGameModeGet със стойност от -1, ако на последния ред, който определя режима на конфигурация на играта не работи, дори и ако ние вече сме в режим на игра. Например, ако ние сме в работещото приложение в режим на игра с резолюцията 640 х 480 и искате да го промените за 1600 х 1200 и режим не съвпада с действителната хардуерна конфигурация. че GLUT не се променя разделителната способност и режим на играта ще бъде с резолюция от 640 х 480. Въпреки това, при изясняване на текущата височина. получаваме -1. вместо 480, въпреки че действителната височина на 480.

Следният код илюстрира използването на glutGameModeGet.


пренасищане библиотека

Свързани статии

Подкрепете проекта - споделете линка, благодаря!