summaryrefslogtreecommitdiff
path: root/plugins
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2013-12-10 14:35:57 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2013-12-10 14:35:57 +0100
commit4b13832973bc6029f2ad2b5affeff0a9e35c47a9 (patch)
treea47c567888a48deca77967352dc93e7c7c736ae3 /plugins
parent290d63b15f06e2532b02e4ac1de9f2028afcf667 (diff)
CompizUtils: add TextureQuad and PixmapTextureQuad structs
(bzr r3566.5.34)
Diffstat (limited to 'plugins')
-rw-r--r--plugins/unityshell/src/CompizUtils.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/plugins/unityshell/src/CompizUtils.h b/plugins/unityshell/src/CompizUtils.h
index 717da2300..3781d1ed5 100644
--- a/plugins/unityshell/src/CompizUtils.h
+++ b/plugins/unityshell/src/CompizUtils.h
@@ -27,6 +27,12 @@ namespace unity
namespace compiz_utils
{
+struct TextureQuad
+{
+ CompRect box;
+ GLTexture::Matrix matrix;
+};
+
struct PixmapTexture
{
typedef std::shared_ptr<PixmapTexture> Ptr;
@@ -43,6 +49,33 @@ private:
GLTexture::List texture_;
};
+struct PixmapTextureQuad
+{
+ void Init(PixmapTexture::Ptr const& pixmap_texture)
+ {
+ pt = pixmap_texture;
+
+ if (pt && pt->texture())
+ {
+ auto* tex = pt->texture();
+ quad.box.setWidth(tex->width());
+ quad.box.setHeight(tex->height());
+ }
+ }
+
+ void SetCoords(int x, int y)
+ {
+ quad.box.setX(x);
+ quad.box.setY(y);
+ quad.matrix = (pt && pt->texture()) ? pt->texture()->matrix() : GLTexture::Matrix();
+ quad.matrix.x0 = 0.0f - COMP_TEX_COORD_X(quad.matrix, x);
+ quad.matrix.y0 = 0.0f - COMP_TEX_COORD_Y(quad.matrix, y);
+ }
+
+ PixmapTexture::Ptr pt;
+ TextureQuad quad;
+};
+
struct CairoContext
{
CairoContext(unsigned width, unsigned height);