Fix issue where gamma was being corrupted on windows with night light enabled
parent
2672194b1d
commit
6308743fd2
|
|
@ -425,6 +425,9 @@ LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
|
|||
mKeyVirtualKey = 0;
|
||||
mhDC = NULL;
|
||||
mhRC = NULL;
|
||||
memset(mCurrentGammaRamp, 0, sizeof(mCurrentGammaRamp));
|
||||
memset(mPrevGammaRamp, 0, sizeof(mPrevGammaRamp));
|
||||
mCustomGammaSet = FALSE;
|
||||
|
||||
if (!SystemParametersInfo(SPI_GETMOUSEVANISH, 0, &mMouseVanish, 0))
|
||||
{
|
||||
|
|
@ -2989,13 +2992,26 @@ F32 LLWindowWin32::getGamma()
|
|||
|
||||
BOOL LLWindowWin32::restoreGamma()
|
||||
{
|
||||
return SetDeviceGammaRamp(mhDC, mPrevGammaRamp);
|
||||
if (mCustomGammaSet != FALSE)
|
||||
{
|
||||
mCustomGammaSet = FALSE;
|
||||
return SetDeviceGammaRamp(mhDC, mPrevGammaRamp);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLWindowWin32::setGamma(const F32 gamma)
|
||||
{
|
||||
mCurrentGamma = gamma;
|
||||
|
||||
//Get the previous gamma ramp to restore later.
|
||||
if (mCustomGammaSet == FALSE)
|
||||
{
|
||||
if (GetDeviceGammaRamp(mhDC, mPrevGammaRamp) == FALSE)
|
||||
return FALSE;
|
||||
mCustomGammaSet = TRUE;
|
||||
}
|
||||
|
||||
LL_DEBUGS("Window") << "Setting gamma to " << gamma << LL_ENDL;
|
||||
|
||||
for ( int i = 0; i < 256; ++i )
|
||||
|
|
@ -3007,9 +3023,9 @@ BOOL LLWindowWin32::setGamma(const F32 gamma)
|
|||
if ( value > 0xffff )
|
||||
value = 0xffff;
|
||||
|
||||
mCurrentGammaRamp [ 0 * 256 + i ] =
|
||||
mCurrentGammaRamp [ 1 * 256 + i ] =
|
||||
mCurrentGammaRamp [ 2 * 256 + i ] = ( WORD )value;
|
||||
mCurrentGammaRamp[0][i] =
|
||||
mCurrentGammaRamp[1][i] =
|
||||
mCurrentGammaRamp[2][i] = (WORD) value;
|
||||
};
|
||||
|
||||
return SetDeviceGammaRamp ( mhDC, mCurrentGammaRamp );
|
||||
|
|
|
|||
|
|
@ -184,8 +184,9 @@ protected:
|
|||
|
||||
F32 mCurrentGamma;
|
||||
U32 mFSAASamples;
|
||||
WORD mPrevGammaRamp[256*3];
|
||||
WORD mCurrentGammaRamp[256*3];
|
||||
WORD mPrevGammaRamp[3][256];
|
||||
WORD mCurrentGammaRamp[3][256];
|
||||
BOOL mCustomGammaSet;
|
||||
|
||||
LPWSTR mIconResource;
|
||||
BOOL mMousePositionModified;
|
||||
|
|
|
|||
Loading…
Reference in New Issue