diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-03-08 17:02:18 -0600 |
|---|---|---|
| committer | Chia-I Wu <olv@lunarg.com> | 2015-04-16 17:33:25 +0800 |
| commit | 14b62e46835fdbb044796db3d22892c2cd1bfebe (patch) | |
| tree | 302c8c952208fed8b46846c0219d295e97564909 /layers | |
| parent | 53968d8ee5baaf90d2e8922c452f663c3df0c363 (diff) | |
| download | usermoji-14b62e46835fdbb044796db3d22892c2cd1bfebe.tar.xz | |
xgl: Add xglCmdBlitImage entry point
Part one of adding support for abitrary scaled blits and format conversions.
Just interface here. Functionality to follow.
bug #13071
alpha rev: r29665
Diffstat (limited to 'layers')
| -rw-r--r-- | layers/draw_state.c | 17 | ||||
| -rw-r--r-- | layers/mem_tracker.cpp | 11 |
2 files changed, 26 insertions, 2 deletions
diff --git a/layers/draw_state.c b/layers/draw_state.c index 9fa0cc2a..c655b572 100644 --- a/layers/draw_state.c +++ b/layers/draw_state.c @@ -2340,6 +2340,23 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdCopyImage(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE nextTable.CmdCopyImage(cmdBuffer, srcImage, destImage, regionCount, pRegions); } +XGL_LAYER_EXPORT void XGLAPI xglCmdBlitImage(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE srcImage, XGL_IMAGE_LAYOUT srcLayout, + XGL_IMAGE destImage, XGL_IMAGE_LAYOUT destLayout, + uint32_t regionCount, const XGL_IMAGE_BLIT* pRegions) +{ + GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer); + if (pCB) { + updateCBTracking(cmdBuffer); + addCmd(pCB, CMD_COPYIMAGE); + } + else { + char str[1024]; + sprintf(str, "Attempt to use CmdBuffer %p that doesn't exist!", (void*)cmdBuffer); + layerCbMsg(XGL_DBG_MSG_ERROR, XGL_VALIDATION_LEVEL_0, cmdBuffer, 0, DRAWSTATE_INVALID_CMD_BUFFER, "DS", str); + } + nextTable.CmdBlitImage(cmdBuffer, srcImage, srcLayout, destImage, destLayout, regionCount, pRegions); +} + XGL_LAYER_EXPORT void XGLAPI xglCmdCopyBufferToImage(XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER srcBuffer, XGL_IMAGE destImage, uint32_t regionCount, const XGL_BUFFER_IMAGE_COPY* pRegions) { GLOBAL_CB_NODE* pCB = getCBNode(cmdBuffer); diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index c68dc977..768c60b4 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -1473,8 +1473,15 @@ XGL_LAYER_EXPORT void XGLAPI xglCmdCopyImage(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE nextTable.CmdCopyImage(cmdBuffer, srcImage, destImage, regionCount, pRegions); } -XGL_LAYER_EXPORT void XGLAPI xglCmdCopyBufferToImage(XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER srcBuffer, XGL_IMAGE destImage, - uint32_t regionCount, const XGL_BUFFER_IMAGE_COPY* pRegions) +XGL_LAYER_EXPORT void XGLAPI xglCmdBlitImage(XGL_CMD_BUFFER cmdBuffer, XGL_IMAGE srcImage, XGL_IMAGE_LAYOUT srcLayout, + XGL_IMAGE destImage, uint32_t regionCount, XGL_IMAGE_LAYOUT destLayout, + const XGL_IMAGE_BLIT* pRegions) +{ + // TODO : Each image will have mem mapping so track them + nextTable.CmdBlitImage(cmdBuffer, srcImage, srcLayout, destImage, destLayout, regionCount, pRegions); +} + +XGL_LAYER_EXPORT void XGLAPI xglCmdCopyBufferToImage(XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER srcBuffer, XGL_IMAGE destImage, uint32_t regionCount, const XGL_BUFFER_IMAGE_COPY* pRegions) { // TODO : Track this loader_platform_thread_lock_mutex(&globalLock); |
