FIX: modify NvOptimusEnablement earlier in contructor of wxMediaCtrl2

Change-Id: I0562c393245726887c2d507f41269d09cf7a8800
This commit is contained in:
chunmao.guo 2022-07-25 09:39:59 +08:00 committed by Lane.Wei
parent 7986b302de
commit f908ccd7b3
1 changed files with 15 additions and 8 deletions

View File

@ -2,8 +2,22 @@
#include "I18N.hpp"
wxMediaCtrl2::wxMediaCtrl2(wxWindow *parent)
: wxMediaCtrl(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxMEDIACTRLPLAYERCONTROLS_NONE)
{
#ifdef __WIN32__
auto hModExe = GetModuleHandle(NULL);
// BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2: GetModuleHandle " << hModExe;
auto NvOptimusEnablement = (DWORD *) GetProcAddress(hModExe, "NvOptimusEnablement");
auto AmdPowerXpressRequestHighPerformance = (int *) GetProcAddress(hModExe, "AmdPowerXpressRequestHighPerformance");
if (NvOptimusEnablement) {
// BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2: NvOptimusEnablement " << *NvOptimusEnablement;
*NvOptimusEnablement = 0;
}
if (AmdPowerXpressRequestHighPerformance) {
// BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2: AmdPowerXpressRequestHighPerformance " << *AmdPowerXpressRequestHighPerformance;
*AmdPowerXpressRequestHighPerformance = 0;
}
#endif
wxMediaCtrl::Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxMEDIACTRLPLAYERCONTROLS_NONE);
}
void wxMediaCtrl2::Load(wxURI url)
@ -22,13 +36,6 @@ void wxMediaCtrl2::Load(wxURI url)
wxPostEvent(this, event);
return;
}
auto hModExe = LoadLibrary(NULL);
auto NvOptimusEnablement = (DWORD *) GetProcAddress(hModExe, "NvOptimusEnablement");
auto AmdPowerXpressRequestHighPerformance = (int *) GetProcAddress(hModExe, "AmdPowerXpressRequestHighPerformance");
if (NvOptimusEnablement) *NvOptimusEnablement = 0;
if (AmdPowerXpressRequestHighPerformance) *AmdPowerXpressRequestHighPerformance = 0;
url = wxURI(url.BuildURI().append("&hwnd=").append(
boost::lexical_cast<std::string>(GetHandle())));
#endif