<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; GDIp просадки FPS во время создания окна]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=15190</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15190&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «GDIp просадки FPS во время создания окна».]]></description>
		<lastBuildDate>Thu, 20 Feb 2020 12:44:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137923#p137923</link>
			<description><![CDATA[<p>У вас же есть x y и размер шрифта, меняйте как нравится в зависимости от A_ScreenWidth и A_ScreenHeight.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 20 Feb 2020 12:44:03 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137923#p137923</guid>
		</item>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137913#p137913</link>
			<description><![CDATA[<p>Подскажите, как выводить это сообщение относительно разрешения экрана ?<br />Чтоб при разных резрешениях сообщение было в одном месте .</p>]]></description>
			<author><![CDATA[null@example.com (Anton.Badonov)]]></author>
			<pubDate>Wed, 19 Feb 2020 11:59:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137913#p137913</guid>
		</item>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137904#p137904</link>
			<description><![CDATA[<p>У меня нет мерцаний. BF3 Win10x64.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Tue, 18 Feb 2020 14:59:25 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137904#p137904</guid>
		</item>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137903#p137903</link>
			<description><![CDATA[<p>Спасибо за правки . <br />Можно ли как то избавится от мерцания ?</p>]]></description>
			<author><![CDATA[null@example.com (Anton.Badonov)]]></author>
			<pubDate>Tue, 18 Feb 2020 14:58:08 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137903#p137903</guid>
		</item>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137902#p137902</link>
			<description><![CDATA[<div class="quotebox"><cite>Anton.Badonov пишет:</cite><blockquote><p>Width :=500, Height := 500</p></blockquote></div><p>Чем меньше окно, тем лучше производительность. Если заранее известен самый большой вариант текста в сообщении, то размер окна можно подогнать под него.<br /></p><div class="codebox"><pre><code>
If !pToken := Gdip_Startup()
{
	MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
	ExitApp
}
OnExit, Exit
Gui, New, +Hwndhwnd -Caption +E0x80000 +E0x20 +AlwaysOnTop +ToolWindow +OwnDialogs
Gui, Show, NA 

x := 111
y := 111

hdc := GetDC() 
G := Gdip_GraphicsFromHDC(hdc)
ReleaseDC(hdc)
Options = s40 
p := Gdip_TextToGraphics(G,  A_TickCount 123, Options, , , , 1)   ;  текст максимальной ширины и высоты, можно чуть больше
Gdip_DeleteGraphics(G)
p := StrSplit(p, &quot;|&quot;)
Width := p[3], Height := p[4]

hbm := CreateDIBSection(Width, Height)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetSmoothingMode(G, 4) 
Options = cbb000000 r4 %Options% 

upd:
	Gdip_TextToGraphics(G,  A_TickCount, Options, , Width, Height)
	UpdateLayeredWindow(hwnd, hdc, x, y, Width, Height) 
	Gdip_GraphicsClear(G)
	Gui, %hwnd%:+AlwaysOnTop
	settimer, upd, -50
	Return

Exit:
	Gdip_DeleteGraphics(G)
	SelectObject(hdc, obm)
	DeleteObject(hbm)
	DeleteDC(hdc)
	; gdi+ may now be shutdown on exiting the program
	Gdip_Shutdown(pToken)
	ExitApp
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Tue, 18 Feb 2020 14:52:27 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137902#p137902</guid>
		</item>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137899#p137899</link>
			<description><![CDATA[<p>Поправил.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Tue, 18 Feb 2020 13:55:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137899#p137899</guid>
		</item>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137896#p137896</link>
			<description><![CDATA[<p>запустил , и столкнулся&nbsp; такой ситуацией - текст не показывается поверх игры, ни в оконном режиме, ни в&nbsp; полно экранном .</p>]]></description>
			<author><![CDATA[null@example.com (Anton.Badonov)]]></author>
			<pubDate>Tue, 18 Feb 2020 13:42:30 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137896#p137896</guid>
		</item>
		<item>
			<title><![CDATA[Re: GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137892#p137892</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Чтоб не было наслоения &quot;одного на другое &quot;.</p></blockquote></div><p>Не следует каждый раз создавать окно.<br /></p><div class="codebox"><pre><code>
If !pToken := Gdip_Startup()
{
	MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
	ExitApp
}
OnExit, Exit
Width :=500, Height := 500 
Gui, New, +Hwndhwnd -Caption +E0x80000 +E0x20 +AlwaysOnTop +ToolWindow +OwnDialogs
Gui, Show, NA 
 
hbm := CreateDIBSection(Width, Height)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetSmoothingMode(G, 4) 
Options = x10p y30p w80p Centre cbb000000 r4 s40

upd:
	Gdip_TextToGraphics(G,  A_TickCount, Options, , Width, Height)
	UpdateLayeredWindow(hwnd, hdc, 0, 0, Width, Height) 
	Gdip_GraphicsClear(G)
	Gui, %hwnd%:+AlwaysOnTop
	settimer, upd, -1
	Return

Exit:
	Gdip_DeleteGraphics(G)
	SelectObject(hdc, obm)
	DeleteObject(hbm)
	DeleteDC(hdc)
	; gdi+ may now be shutdown on exiting the program
	Gdip_Shutdown(pToken)
	ExitApp
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Tue, 18 Feb 2020 12:10:47 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137892#p137892</guid>
		</item>
		<item>
			<title><![CDATA[GDIp просадки FPS во время создания окна]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=137891#p137891</link>
			<description><![CDATA[<p>Происходит создание текста без фона поверх всех окон , вплоть до полно-экранных режимов.<br />И в этом тексте есть переменная которая меняется по мере существования .<br />Как только создается новое окно - старое скрывается . <br />Чтоб не было наслоения &quot;одного на другое &quot;.<br />Но проблема в том что при создании окна - падает фпс на 12 и больше и фризы <br />В&nbsp; игре на шкале это видно, ровно через каждые 500мс - фриз .<br />Как избавится от фризов ?</p><br /><br /><br /><br /><div class="codebox"><pre><code>
#Include, gdiplus.ahk
settimer, ShowOverlay ,500
ShowOverlay:



; Start gdi+
If !pToken := Gdip_Startup()
{
	MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
	ExitApp
}
OnExit, Exit
Width :=500, Height := 500
Gui, New, +Hwndhwnd
Gui, %hwnd%: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
Gui, %hwnd%: Show,x30 y30 NA
WinSet, ExStyle, +0x20, % &quot;ahk_id &quot; hwnd 

hwnd1 := WinExist()
hbm := CreateDIBSection(Width, Height)
hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)
G := Gdip_GraphicsFromHDC(hdc)
Gdip_SetSmoothingMode(G, 4)
pBrush := Gdip_BrushCreateSolid(0xffff0000)
Gdip_DeleteBrush(pBrush)
pBrush := Gdip_BrushCreateSolid(0x660000ff)

Options = x10p y30p w80p Centre cbbffffff r4 s20 Underline Italic
Gdip_TextToGraphics(G,  &quot;test fps text&quot;, Options, Font, Width, Height)

UpdateLayeredWindow(hwnd1, hdc, 0, 0, Width, Height)
SelectObject(hdc, obm)
DeleteObject(hbm)
DeleteDC(hdc)
Gdip_DeleteGraphics(G)	
	Sleep, 500
 gui, %hwnd%: hide

Return

Exit:
; gdi+ may now be shutdown on exiting the program
Gdip_Shutdown(pToken)
ExitApp
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Anton.Badonov)]]></author>
			<pubDate>Tue, 18 Feb 2020 11:28:32 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=137891#p137891</guid>
		</item>
	</channel>
</rss>
