| 262 | } |
| 263 | |
| 264 | void OpenGL::init(int w, int h) { |
| 265 | //disable unused features |
| 266 | glDisable(GL_ALPHA_TEST); |
| 267 | glDisable(GL_BLEND); |
| 268 | glDisable(GL_DEPTH_TEST); |
| 269 | glDisable(GL_POLYGON_SMOOTH); |
| 270 | glDisable(GL_STENCIL_TEST); |
| 271 | |
| 272 | //enable useful and required features |
| 273 | glEnable(GL_DITHER); |
| 274 | glEnable(GL_TEXTURE_2D); |
| 275 | |
| 276 | //bind shader functions |
| 277 | #ifndef __APPLE__ |
| 278 | glCreateProgram = (PFNGLCREATEPROGRAMPROC)glGetProcAddress("glCreateProgram"); |
| 279 | glUseProgram = (PFNGLUSEPROGRAMPROC)glGetProcAddress("glUseProgram"); |
| 280 | glCreateShader = (PFNGLCREATESHADERPROC)glGetProcAddress("glCreateShader"); |
| 281 | glDeleteShader = (PFNGLDELETESHADERPROC)glGetProcAddress("glDeleteShader"); |
| 282 | glShaderSource = (PFNGLSHADERSOURCEPROC)glGetProcAddress("glShaderSource"); |
| 283 | glCompileShader = (PFNGLCOMPILESHADERPROC)glGetProcAddress("glCompileShader"); |
| 284 | glAttachShader = (PFNGLATTACHSHADERPROC)glGetProcAddress("glAttachShader"); |
| 285 | glDetachShader = (PFNGLDETACHSHADERPROC)glGetProcAddress("glDetachShader"); |
| 286 | glLinkProgram = (PFNGLLINKPROGRAMPROC)glGetProcAddress("glLinkProgram"); |
| 287 | glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)glGetProcAddress("glGetUniformLocation"); |
| 288 | glUniform1i = (PFNGLUNIFORM1IPROC)glGetProcAddress("glUniform1i"); |
| 289 | glUniform2fv = (PFNGLUNIFORM2FVPROC)glGetProcAddress("glUniform2fv"); |
| 290 | glUniform4fv = (PFNGLUNIFORM4FVPROC)glGetProcAddress("glUniform4fv"); |
| 291 | #endif |
| 292 | glXGetCurrentDisplay = (void* (APIENTRYP)())glGetProcAddress("glXGetCurrentDisplay"); |
| 293 | glXGetCurrentDrawable = (Uint32 (APIENTRYP)())glGetProcAddress("glXGetCurrentDrawable"); |
| 294 | glXSwapIntervalEXT = (void (APIENTRYP)(void*, Uint32, int))glGetProcAddress("glXSwapIntervalEXT"); |
| 295 | |
| 296 | wglSwapIntervalEXT = (Uint32 (APIENTRYP)(int))glGetProcAddress("wglSwapIntervalEXT"); |
| 297 | |
| 298 | |
| 299 | |
| 300 | shader_support = glCreateProgram && glUseProgram && glCreateShader |
| 301 | && glDeleteShader && glShaderSource && glCompileShader && glAttachShader |
| 302 | && glDetachShader && glLinkProgram && glGetUniformLocation |
| 303 | && glUniform1i && glUniform2fv && glUniform4fv; |
| 304 | |
| 305 | if(shader_support) glprogram = glCreateProgram(); |
| 306 | |
| 307 | //create surface texture |
| 308 | resize(w, h); |
| 309 | } |
| 310 | |
| 311 | void OpenGL::setVSync(bool sync) |
| 312 | { |
nothing calls this directly
no test coverage detected