From f908ccd7b382ad5cd59c1919c42bf42ed142d774 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Mon, 25 Jul 2022 09:39:59 +0800 Subject: [PATCH] FIX: modify NvOptimusEnablement earlier in contructor of wxMediaCtrl2 Change-Id: I0562c393245726887c2d507f41269d09cf7a8800 --- src/slic3r/GUI/wxMediaCtrl2.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index c88978514..133163bb2 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -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(GetHandle()))); #endif