<#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 jeli kto nie wie, to pewnie wkurza go, e jego opengl'owe programy dziaaj z ron prdkoci, w zalenoci od tego, jak jest ustawiona na danym komputerze tzw. kontrola ramki.. Jeli masz taki problem, oto rozwizanie:

interesuje nas extensionik (rozszerzenie OpenGL) -> WGL_EXT_swap_control czy co w tym stylu, a wic:
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 bachnoem w kodzie;)))). Jak wida, jeli dostaniemy 0 to wiele z ramk nie powalczymy, jeli jednak na wyjciu bdzie 1, to moemy 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 wiksze moliwoci, ni wczanie/wyczanie kontroli ramki... powiem tylko, e moe si przyda np. do testowania poprawnoci licznika fps w naszym programie...

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