trunk/src/osd/modules/render/drawogl.c
| r244761 | r244762 | |
| 204 | 204 | this->pfn_wglDeleteContext = (BOOL (WINAPI *)(HGLRC hglrc)) GetProcAddress(m_module, "wglDeleteContext"); |
| 205 | 205 | this->pfn_wglMakeCurrent = (BOOL (WINAPI *)(HDC hdc, HGLRC hglrc)) GetProcAddress(m_module, "wglMakeCurrent"); |
| 206 | 206 | |
| 207 | this->pfn_wglGetExtensionsStringEXT = (const char *(WINAPI *) (void)) pfn_wglGetProcAddress("wglGetExtensionsStringEXT"); |
| 208 | |
| 209 | if (WGLExtensionSupported("WGL_EXT_swap_control")) |
| 210 | { |
| 211 | this->pfn_wglSwapIntervalEXT = (BOOL (WINAPI *) (int)) getProcAddress("wglSwapIntervalEXT"); |
| 212 | this->pfn_wglGetSwapIntervalEXT = (int (WINAPI *) (void)) getProcAddress("wglGetSwapIntervalEXT"); |
| 213 | } |
| 214 | else |
| 215 | { |
| 216 | pfn_wglSwapIntervalEXT = NULL; |
| 217 | pfn_wglGetSwapIntervalEXT = NULL; |
| 218 | } |
| 219 | |
| 207 | 220 | m_hdc = GetDC(window); |
| 208 | 221 | if (!setupPixelFormat(m_hdc)) |
| 209 | 222 | { |
| r244761 | r244762 | |
| 246 | 259 | |
| 247 | 260 | virtual int SetSwapInterval(const int swap) |
| 248 | 261 | { |
| 249 | | // FIXME: Missing! |
| 262 | if (this->pfn_wglSwapIntervalEXT != NULL) |
| 263 | { |
| 264 | this->pfn_wglSwapIntervalEXT(swap ? 1 : 0); |
| 265 | } |
| 250 | 266 | return 0; |
| 251 | 267 | } |
| 252 | 268 | |
| r244761 | r244762 | |
| 300 | 316 | return 0; |
| 301 | 317 | } |
| 302 | 318 | |
| 319 | bool WGLExtensionSupported(const char *extension_name) |
| 320 | { |
| 321 | //if (pfn_wglGetExtensionsStringEXT != NULL) |
| 322 | // printf("%s\n", this->pfn_wglGetExtensionsStringEXT()); |
| 303 | 323 | |
| 324 | if (pfn_wglGetExtensionsStringEXT != NULL && strstr(pfn_wglGetExtensionsStringEXT(), extension_name) != NULL) |
| 325 | return true; |
| 326 | else |
| 327 | return false; |
| 328 | } |
| 329 | |
| 304 | 330 | HGLRC m_context; |
| 305 | 331 | HWND m_window; |
| 306 | 332 | HDC m_hdc; |
| r244761 | r244762 | |
| 311 | 337 | BOOL (WINAPI *pfn_wglDeleteContext)(HGLRC hglrc); |
| 312 | 338 | BOOL (WINAPI *pfn_wglMakeCurrent)(HDC hdc, HGLRC hglrc); |
| 313 | 339 | |
| 340 | const char *(WINAPI *pfn_wglGetExtensionsStringEXT) (void); |
| 341 | BOOL (WINAPI *pfn_wglSwapIntervalEXT) (int interval); |
| 342 | int (WINAPI * pfn_wglGetSwapIntervalEXT) (void); |
| 343 | |
| 314 | 344 | static HMODULE m_module; |
| 315 | 345 | }; |
| 316 | 346 | |