diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp')
-rw-r--r-- | Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp b/Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp new file mode 100644 index 000000000..a9fd97fe7 --- /dev/null +++ b/Source/ThirdParty/ANGLE/util/windows/win32/Win32_system_utils.cpp @@ -0,0 +1,63 @@ +// +// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// Win32_system_utils.cpp: Implementation of OS-specific functions for Win32 (Windows) + +#include "system_utils.h" + +#include <windows.h> +#include <array> + +namespace angle +{ + +void SetLowPriorityProcess() +{ + SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS); +} + +class Win32Library : public Library +{ + public: + Win32Library(const std::string &libraryName); + ~Win32Library() override; + + void *getSymbol(const std::string &symbolName) override; + + private: + HMODULE mModule; +}; + +Win32Library::Win32Library(const std::string &libraryName) : mModule(nullptr) +{ + const auto &fullName = libraryName + "." + GetSharedLibraryExtension(); + mModule = LoadLibraryA(fullName.c_str()); +} + +Win32Library::~Win32Library() +{ + if (mModule) + { + FreeLibrary(mModule); + } +} + +void *Win32Library::getSymbol(const std::string &symbolName) +{ + if (!mModule) + { + return nullptr; + } + + return GetProcAddress(mModule, symbolName.c_str()); +} + +Library *loadLibrary(const std::string &libraryName) +{ + return new Win32Library(libraryName); +} + +} // namespace angle |