diff --git a/src/renderer/wg_engine/tvgWgRenderTarget.cpp b/src/renderer/wg_engine/tvgWgRenderTarget.cpp index e6124b9f..28742c80 100644 --- a/src/renderer/wg_engine/tvgWgRenderTarget.cpp +++ b/src/renderer/wg_engine/tvgWgRenderTarget.cpp @@ -323,7 +323,7 @@ void WgRenderStorage::endComputePass(WGPUComputePassEncoder computePassEncoder) // render storage pool //***************************************************************************** -WgRenderStorage* WgRenderStoragePool::allocate(WgContext& context, uint32_t w, uint32_t h) +WgRenderStorage* WgRenderStoragePool::allocate(WgContext& context, uint32_t w, uint32_t h, uint32_t samples) { WgRenderStorage* renderStorage{}; if (mPool.count > 0) { @@ -331,7 +331,7 @@ WgRenderStorage* WgRenderStoragePool::allocate(WgContext& context, uint32_t w, u mPool.pop(); } else { renderStorage = new WgRenderStorage; - renderStorage->initialize(context, w, h); + renderStorage->initialize(context, w, h, samples); mList.push(renderStorage); } return renderStorage; diff --git a/src/renderer/wg_engine/tvgWgRenderTarget.h b/src/renderer/wg_engine/tvgWgRenderTarget.h index be1ef110..7d3d1016 100644 --- a/src/renderer/wg_engine/tvgWgRenderTarget.h +++ b/src/renderer/wg_engine/tvgWgRenderTarget.h @@ -81,7 +81,7 @@ private: Array mList; Array mPool; public: - WgRenderStorage* allocate(WgContext& context, uint32_t w, uint32_t h); + WgRenderStorage* allocate(WgContext& context, uint32_t w, uint32_t h, uint32_t samples = 1); void free(WgContext& context, WgRenderStorage* renderTarget); void release(WgContext& context); }; diff --git a/src/renderer/wg_engine/tvgWgRenderer.cpp b/src/renderer/wg_engine/tvgWgRenderer.cpp index 5a262c13..44517423 100644 --- a/src/renderer/wg_engine/tvgWgRenderer.cpp +++ b/src/renderer/wg_engine/tvgWgRenderer.cpp @@ -300,7 +300,7 @@ bool WgRenderer::target(uint32_t* buffer, uint32_t stride, uint32_t w, uint32_t mTargetSurface.w = w; mTargetSurface.h = h; - mRenderTarget.initialize(mContext, w * WG_SSAA_SAMPLES, h * WG_SSAA_SAMPLES); + mRenderTarget.initialize(mContext, w, h, WG_SSAA_SAMPLES); return true; } @@ -354,7 +354,7 @@ bool WgRenderer::beginComposite(TVG_UNUSED Compositor* cmp, TVG_UNUSED Composite // end current render pass mRenderStorageStack.last()->endRenderPass(); // allocate new render storage and push it to top of render tree - WgRenderStorage* renderStorage = mRenderStoragePool.allocate(mContext, mTargetSurface.w * WG_SSAA_SAMPLES, mTargetSurface.h * WG_SSAA_SAMPLES); + WgRenderStorage* renderStorage = mRenderStoragePool.allocate(mContext, mTargetSurface.w, mTargetSurface.h, WG_SSAA_SAMPLES); mRenderStorageStack.push(renderStorage); // begin last render pass mRenderStorageStack.last()->beginRenderPass(mCommandEncoder, true);