1
--- a/workarounds/src/workarounds.cpp 2012-02-21 03:51:25 +0000
2
+++ b/workarounds/src/workarounds.cpp 2012-02-24 08:54:19 +0000
4
return gWindow->glPaint (attrib, transform, region, mask);
8
+WorkaroundsWindow::damageRect (bool initial, const CompRect &rect)
11
+ cWindow->addDamage (true);
13
+ cWindow->damageRectSetEnabled (this, false);
15
+ return cWindow->damageRect (initial, rect);
19
WorkaroundsScreen::checkFunctions (bool checkWindow, bool checkScreen)
23
WORKAROUNDS_SCREEN (screen);
25
+ if (ws->optionGetInitialDamageCompleteRedraw ())
26
+ CompositeWindowInterface::setHandler (cWindow);
28
if (ws->optionGetLegacyFullscreen ())
30
window->getAllowedActionsSetEnabled (this, false);
32
--- a/workarounds/src/workarounds.h 2012-01-13 00:14:05 +0000
33
+++ b/workarounds/src/workarounds.h 2012-02-24 08:54:19 +0000
35
class WorkaroundsWindow :
36
public PluginClassHandler <WorkaroundsWindow, CompWindow>,
37
public WindowInterface,
38
+ public CompositeWindowInterface,
39
public GLWindowInterface
44
getFixedWindowType ();
47
+ damageRect (bool initial, const CompRect &rect);
51
#define WORKAROUNDS_WINDOW(w) \
53
--- a/workarounds/workarounds.xml.in 2012-01-13 00:14:05 +0000
54
+++ b/workarounds/workarounds.xml.in 2012-02-24 08:54:19 +0000
56
<_long>Don't wait for the next video sync time to redraw</_long>
57
<default>false</default>
59
+ <option type="bool" name="initial_damage_complete_redraw">
60
+ <_short>Force complete redraw on initial damage</_short>
61
+ <_long>Force complete redraw of the window on initial damage event</_long>
62
+ <default>true</default>
64
<option type="bool" name="force_swap_buffers">
65
<_short>Force full screen redraws (buffer swap) on repaint</_short>
66
<_long>Forces the entire screen to redraw every repaint. Use with care, this will cause a massive increase in GPU and CPU usage</_long>