forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   API (Окошко в полноэкранном режиме Blitz'a) (http://forum.boolean.name/showthread.php?t=9691)

=MAK$= 02.11.2009 16:19

API (Окошко в полноэкранном режиме Blitz'a)
 
Никогда не имел дел с API , поэтому ... есть вопрос . :)

Как мне , в полноэкранном режиме блитца ,содзать самое простое окно ?
Делал так
Цитата:

Const WS_CHILD = $40000000
Const WS_VISIBLE = $10000000
Const GWL_STYLE = -16
Const WS_CLIPCHILDREN = $2000000

Graphics 1280,1024,0,1

hWnd = api_GetActiveWindow()
style=api_GetWindowLong(hWnd ,GWL_STYLE)
style = style Xor WS_CLIPCHILDREN
api_SetWindowLong hWnd,GWL_STYLE,style
cstyle = WS_VISIBLE + WS_CHILD
wnd = api_CreateWindowEx(0,"STATIC","",cstyle ,50,30,400,400,hWnd,0,0,0)

While Not KeyHit(1)

Text 0,0,"Бла-Бла-Бля-Бла"
Flip
Wend
Но окно (белый квадрат ) мигает . Если убрать Flip (а это не есть хорошо) , то все норм. В обычном оконном режиме все нормально .
Что делать ?

Randomize 06.11.2009 01:26

Ответ: API (Окошко в полноэкранном режиме Blitz'a)
 
Не создавать второстепенные окна во время фуллскрина.
Подумай сам в Windows окна ресуются посредсвум GDI.
У тебя Blitz-программа рисуется за счёт DirectX.
DirectX работает с видео картой.
GDI работает с щячлом карпа а уж потом с видяхой.
Отсюда такая ерунда и получается.

jimon 06.11.2009 02:31

Ответ: API (Окошко в полноэкранном режиме Blitz'a)
 
=MAK$=
по-идее можно создать обычное окно блиц3д нужного размера, потом убрать у него рамки и развернуть на полный экран, получится эмуляция фуллскрина, возможно есть какие-то способы выставить порядок вывода окон и тогда развёрнутое окно блиц3д будет рисоваться в фоне, а другие виндовские окна будут поверх него, но конкретных команд я не знаю, нужно искать в MSDN

если ты делаешь внутриигровой гуи то лучше воспользуйся готовыми гуи либами

(переход из настоящего фуллскрина в оконный режим и обратно требует полного пересоздания окна, собственно пересоздания контекста gapi и перезагрузки всех ресурсов, потому в 3д приложениях которые часто переключаются между фуллскрином и обычным режимом используется метод разворачивания окна для фуллскрина, пересоздание окна и контекста не требуется и потому ресурсы перезагружать не нужно, но собственно ускорение от настоящего фуллскрин режима тут теряется)


Часовой пояс GMT +4, время: 05:24.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot