<#ALLOWCOLUMNS:[ALLOWONECOLUMN:1][ALLOWTWOCOLUMNS:0][DEFAULTMODE:0]#>
<#KEYWORDS:[WORDS:<Ramki w OpenGL >]#><#SCROLLS:[BYLINE:1][BYPAGE:1][BYTWOPAGES:0]#><#JLIMIT:[C1LMARGIN:10][C1RMARGIN:630]#>
<#JUSTIFY:[TYPE:2]#><#FONT:[BOLD:1][FACE:<arial.ttf>][AALIASED:1][SIZEX:12][SIZEY:16][COLOR:0xFFFFFF40]#>Ramki w OpenGL
<#FONT:[FACE:<arial.ttf>][BOLD:0][SIZEX:10][SIZEY:12 ][COLOR:0xFFFFFFFF]#><#TITLE:[CAPTION:<Ramki w OpenGL>][AUTOSCROLL:1]#>

Pewnie wszyscy o tym wiedzą, ale jeśli ktoś nie wie, to pewnie wkurza go, że jego opengl'owe programy działają z rożną prędkością, w zależności od tego, jak jest ustawiona na danym komputerze tzw. kontrola ramki.. Jeśli masz taki problem, oto rozwiązanie:

interesuje nas extensionik (rozszerzenie OpenGL) -> WGL_EXT_swap_control czy coś w tym stylu, a więc:
int getExt()
{
 PFNWGLSWAPINTERVALEXTPROC	wglSwapIntervalEXT = 0;
 PFNWGLGETSWAPINTERVALEXTPROC	wglGetSwapIntervalEXT = 0;

 wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) 
	wglGetProcAddress("wglSwapIntervalEXT");
 wglGetSwapIntervalEXT = (PFNWGLGETSWAPINTERVALEXTPROC) 
	wglGetProcAddress("wglGetSwapIntervalEXT");

 if (!wglSwapIntervalEXT || !wglGetSwapIntervalEXT) return 0;

 return 1;
}



Dobra, chyba się nie bachnołem w kodzie;)))). Jak widać, jeśli dostaniemy 0 to wiele z ramką nie powalczymy, jeśli jednak na wyjściu będzie 1, to możemy poczuć taki power:
 // pobiera nam aktualny refresh
 int  tempInterval  = wglGetSwapIntervalEXT();
 
 // wylacza nam kontrole ramki
 wglSwapIntervalEXT(0);

	.......

 // a na wysjsciu z naszego programu sprzatamy:

 wglSwapIntervalEXT(tempInterval); 			

 

To tyle, aha proponuje zagooglowac za tym extem, ponieważ ma on trochę większe możliwości, niż włączanie/wyłączanie kontroli ramki... powiem tylko, że może się przydać np. do testowania poprawności licznika fps w naszym programie...

 
<#FONT:[BOLD:1]#><#FONT:[COLOR:0xFFFFFF40]#>Wildbyte   <#FONT:[BOLD:0]#><#FONT:[COLOR:0xFFFFFFFF]#>
