bool piglit_wfl_framework_init(struct piglit_wfl_framework *wfl_fw, const struct piglit_gl_test_config *test_config, int32_t platform, const int32_t partial_config_attrib_list[]) { static bool is_waffle_initialized = false; static int32_t initialized_platform = 0; (void)initialized_platform; if (is_waffle_initialized) { assert(platform == initialized_platform); } else { const int32_t attrib_list[] = { WAFFLE_PLATFORM, platform, 0, }; wfl_checked_init(attrib_list); is_waffle_initialized = true; initialized_platform = platform; } if (!piglit_gl_framework_init(&wfl_fw->gl_fw, test_config)) { piglit_wfl_framework_teardown(wfl_fw); return false; } wfl_fw->platform = platform; wfl_fw->display = wfl_checked_display_connect(NULL); make_context_current(wfl_fw, test_config, partial_config_attrib_list); return true; }
struct piglit_gl_framework* piglit_glut_framework_create(const struct piglit_gl_test_config *test_config) { bool ok = true; #if !defined(GLUT_CORE_PROFILE) && \ (!defined(GLUT_MACOSX_IMPLEMENTATION) || GLUT_MACOSX_IMPLEMENTATION < 4) if (!test_config->supports_gl_compat_version) { printf("GLUT can create only GL compatibility contexts, " "which the test does not support running under.\n"); piglit_report_result(PIGLIT_SKIP); } #endif if (test_config->window_samples > 1) { printf("GLUT doesn't support MSAA visuals.\n"); piglit_report_result(PIGLIT_SKIP); } ok = piglit_gl_framework_init(&glut_fw.gl_fw, test_config); if (!ok) return NULL; init_glut(); /* Check if we actually have a core profile */ { int actual_version = piglit_get_gl_version(); if (actual_version >= 31 && !piglit_is_extension_supported("GL_ARB_compatibility")) piglit_is_core_profile = true; } if (!check_gl_version(test_config)) piglit_report_result(PIGLIT_SKIP); glut_fw.gl_fw.swap_buffers = swap_buffers; glut_fw.gl_fw.run_test = run_test; glut_fw.gl_fw.post_redisplay = post_redisplay; glut_fw.gl_fw.set_keyboard_func = set_keyboard_func; glut_fw.gl_fw.set_reshape_func = set_reshape_func; glut_fw.gl_fw.destroy = destroy; return &glut_fw.gl_fw; }