/*------------------------------------------------------------------------- * drawElements Quality Program Tester Core * ---------------------------------------- * * Copyright 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * *//*! * \file * \brief Win32 platform port. *//*--------------------------------------------------------------------*/ #include "tcuWin32Platform.hpp" #include "tcuWGLContextFactory.hpp" #include "tcuWin32EGLNativeDisplayFactory.hpp" #include "egluGLContextFactory.hpp" namespace tcu { namespace win32 { Platform::Platform (void) : m_instance (GetModuleHandle(NULL)) , m_vulkanPlatform (m_instance) { // Set process priority to lower. SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS); { wgl::ContextFactory* factory = DE_NULL; try { factory = new wgl::ContextFactory(m_instance); } catch (const std::exception& e) { print("Warning: WGL not supported: %s\n", e.what()); } if (factory) { try { m_contextFactoryRegistry.registerFactory(factory); } catch (...) { delete factory; throw; } } } m_nativeDisplayFactoryRegistry.registerFactory(new win32::EGLNativeDisplayFactory(m_instance)); m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry)); } Platform::~Platform (void) { } bool Platform::processEvents (void) { MSG msg; while (PeekMessage(&msg, (HWND)-1, 0, 0, PM_REMOVE)) { DispatchMessage(&msg); if (msg.message == WM_QUIT) return false; } return true; } } // win32 } // tcu // Create platform tcu::Platform* createPlatform (void) { return new tcu::win32::Platform(); }