2
* Copyright (C) 2012 Research In Motion Limited. All rights reserved.
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2 of the License, or (at your option) any later version.
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
#ifndef LayerCompositingThreadClient_h
20
#define LayerCompositingThreadClient_h
22
#if USE(ACCELERATED_COMPOSITING)
26
class LayerCompositingThread;
28
class LayerCompositingThreadClient {
30
virtual ~LayerCompositingThreadClient() { }
32
virtual void layerCompositingThreadDestroyed(LayerCompositingThread*) = 0;
34
virtual void layerVisibilityChanged(LayerCompositingThread*, bool visible) = 0;
36
virtual void uploadTexturesIfNeeded(LayerCompositingThread*) = 0;
37
virtual void drawTextures(LayerCompositingThread*, double scale, int positionLocation, int texCoordLocation) = 0;
38
virtual void deleteTextures(LayerCompositingThread*) = 0;
40
// Optional. Allows layers to serve as a mask for other layers
41
virtual void bindContentsTexture(LayerCompositingThread*) { }
43
// Optional. Allows layers to have uncached regions, typically drawn as checkerboard
44
virtual bool hasMissingTextures(const LayerCompositingThread*) const { return false; }
45
virtual void drawMissingTextures(LayerCompositingThread*, double scale, int positionLocation, int texCoordLocation) { }
47
// Unlike the other methods here, this one will be called on the WebKit thread
48
virtual void scheduleCommit() { }
51
} // namespace WebCore
53
#endif // USE(ACCELERATED_COMPOSITING)