diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2013-12-10 14:35:57 +0100 |
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2013-12-10 14:35:57 +0100 |
| commit | 4b13832973bc6029f2ad2b5affeff0a9e35c47a9 (patch) | |
| tree | a47c567888a48deca77967352dc93e7c7c736ae3 /plugins | |
| parent | 290d63b15f06e2532b02e4ac1de9f2028afcf667 (diff) | |
CompizUtils: add TextureQuad and PixmapTextureQuad structs
(bzr r3566.5.34)
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/unityshell/src/CompizUtils.h | 33 |
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); |
