diff options
author | marha <marha@users.sourceforge.net> | 2012-04-20 17:39:30 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-04-20 17:39:30 +0200 |
commit | ae228baa2cfe88bd7c7de40d5038ad2cc1ecffa4 (patch) | |
tree | b18ae337e913f36a95f97530f6a792e9366a393c /xorg-server/render/picture.c | |
parent | 4207bc7b2972aed9a45756fae8c48957d323fa21 (diff) | |
parent | 0e3699334faf92f508b6c187a261548b656b0dd3 (diff) | |
download | vcxsrv-ae228baa2cfe88bd7c7de40d5038ad2cc1ecffa4.tar.gz vcxsrv-ae228baa2cfe88bd7c7de40d5038ad2cc1ecffa4.tar.bz2 vcxsrv-ae228baa2cfe88bd7c7de40d5038ad2cc1ecffa4.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
xorg-server/dix/dispatch.c
xorg-server/dix/resource.c
Diffstat (limited to 'xorg-server/render/picture.c')
-rw-r--r-- | xorg-server/render/picture.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/xorg-server/render/picture.c b/xorg-server/render/picture.c index 2fd13fc37..da3e49936 100644 --- a/xorg-server/render/picture.c +++ b/xorg-server/render/picture.c @@ -591,6 +591,29 @@ PictureParseCmapPolicy(const char *name) return PictureCmapPolicyInvalid; } +/** @see GetDefaultBytes */ +static void +GetPictureBytes(pointer value, XID id, ResourceSizePtr size) +{ + PicturePtr picture = value; + + /* Currently only pixmap bytes are reported to clients. */ + size->resourceSize = 0; + + size->refCnt = picture->refcnt; + + /* Calculate pixmap reference sizes. */ + size->pixmapRefSize = 0; + if (picture->pDrawable && (picture->pDrawable->type == DRAWABLE_PIXMAP)) + { + SizeType pixmapSizeFunc = GetResourceTypeSizeFunc(RT_PIXMAP); + ResourceSizeRec pixmapSize = { 0, 0, 0 }; + PixmapPtr pixmap = (PixmapPtr)picture->pDrawable; + pixmapSizeFunc(pixmap, pixmap->drawable.id, &pixmapSize); + size->pixmapRefSize += pixmapSize.pixmapRefSize; + } +} + Bool PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) { @@ -602,6 +625,7 @@ PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) PictureType = CreateNewResourceType(FreePicture, "PICTURE"); if (!PictureType) return FALSE; + SetResourceTypeSizeFunc(PictureType, GetPictureBytes); PictFormatType = CreateNewResourceType(FreePictFormat, "PICTFORMAT"); if (!PictFormatType) return FALSE; |