wg_engine: fix model view matrix

In a case of compostions model view matrix did not apply samples count
This commit is contained in:
Sergii Liebodkin 2024-06-12 16:48:58 +03:00 committed by Hermet Park
parent 9f08e4755c
commit a7f4d718f4
3 changed files with 5 additions and 5 deletions

View file

@ -323,7 +323,7 @@ void WgRenderStorage::endComputePass(WGPUComputePassEncoder computePassEncoder)
// render storage pool // 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{}; WgRenderStorage* renderStorage{};
if (mPool.count > 0) { if (mPool.count > 0) {
@ -331,7 +331,7 @@ WgRenderStorage* WgRenderStoragePool::allocate(WgContext& context, uint32_t w, u
mPool.pop(); mPool.pop();
} else { } else {
renderStorage = new WgRenderStorage; renderStorage = new WgRenderStorage;
renderStorage->initialize(context, w, h); renderStorage->initialize(context, w, h, samples);
mList.push(renderStorage); mList.push(renderStorage);
} }
return renderStorage; return renderStorage;

View file

@ -81,7 +81,7 @@ private:
Array<WgRenderStorage*> mList; Array<WgRenderStorage*> mList;
Array<WgRenderStorage*> mPool; Array<WgRenderStorage*> mPool;
public: 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 free(WgContext& context, WgRenderStorage* renderTarget);
void release(WgContext& context); void release(WgContext& context);
}; };

View file

@ -300,7 +300,7 @@ bool WgRenderer::target(uint32_t* buffer, uint32_t stride, uint32_t w, uint32_t
mTargetSurface.w = w; mTargetSurface.w = w;
mTargetSurface.h = h; mTargetSurface.h = h;
mRenderTarget.initialize(mContext, w * WG_SSAA_SAMPLES, h * WG_SSAA_SAMPLES); mRenderTarget.initialize(mContext, w, h, WG_SSAA_SAMPLES);
return true; return true;
} }
@ -354,7 +354,7 @@ bool WgRenderer::beginComposite(TVG_UNUSED Compositor* cmp, TVG_UNUSED Composite
// end current render pass // end current render pass
mRenderStorageStack.last()->endRenderPass(); mRenderStorageStack.last()->endRenderPass();
// allocate new render storage and push it to top of render tree // 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); mRenderStorageStack.push(renderStorage);
// begin last render pass // begin last render pass
mRenderStorageStack.last()->beginRenderPass(mCommandEncoder, true); mRenderStorageStack.last()->beginRenderPass(mCommandEncoder, true);