MCPcopy Create free account
hub / github.com/OpenXcom/OpenXcom / init

Method init

src/Engine/OpenGL.cpp:264–309  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 1

glGetProcAddressFunction · 0.85

Tested by

no test coverage detected