2015-10-17 69 views
1

我正在使用Gdiplus::LinearGradientBrush爲我的文檔繪製陰影效果。它運作良好,但在文檔的右側,效果有時會繞過繪圖區域的一部分。這隻發生在一定範圍內,因爲我水平滾動。對於大部分滾動範圍,一切正常。對於文檔的其他方面,一切正常。當我在受影響的範圍內滾動時,我可以看到漸變包裝點卡住了。我可以滾動文檔/背景的其餘部分,但漸變包裝點卡在屏幕的某個像素上。爲什麼GDI +線性漸變包裝?

graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHalf); //Gdiplus::Graphics 
Gdiplus::Rect shadow(rect.X + rect.Width, rect.Y + cornerRadius, shadowWidth, vSideLength); 
Gdiplus::LinearGradientBrush brush(shadow, alpha1, alpha2, 180.f); 
brush.SetBlendBellShape(1); 
graphics.FillRectangle(&brush, shadow); 

什麼會導致這種影響?如果需要,我可以發佈圖片以更好地描述問題。編號:圖片here。漸變包裝點以某種方式固定在我窗口中的像素上,並且包裝點不會隨着滾動而移動。

+2

pictures would be nice – sp2danny

回答

0

這是由於我的AMD 6xxx系列顯卡的驅動程序錯誤引起的。 Windows VGA驅動程序沒有出現此錯誤。截至2015年10月,目前的AMD視頻驅動程序仍然存在這個問題。解決方法是使用多個16寬度漸變。