|
|
@@ -2005,18 +2005,20 @@ void View::AllocateScreenBuffers()
|
|
|
// Allocate screen buffers. Enable filtering in case the quad commands need that
|
|
|
// Follow the sRGB mode of the destination render target
|
|
|
bool sRGB = renderTarget_ ? renderTarget_->GetParentTexture()->GetSRGB() : graphics_->GetSRGB();
|
|
|
+ int multiSample = renderTarget_ ? renderTarget_->GetMultiSample() : graphics_->GetMultiSample();
|
|
|
+ bool autoResolve = renderTarget_ ? renderTarget_->GetAutoResolve() : true;
|
|
|
substituteRenderTarget_ = needSubstitute ? GetRenderSurfaceFromTexture(renderer_->GetScreenBuffer(viewSize_.x_, viewSize_.y_,
|
|
|
- format, 1, false, false, true, sRGB)) : (RenderSurface*)0;
|
|
|
+ format, multiSample, autoResolve, false, true, sRGB)) : (RenderSurface*)0;
|
|
|
for (unsigned i = 0; i < MAX_VIEWPORT_TEXTURES; ++i)
|
|
|
{
|
|
|
- viewportTextures_[i] = i < numViewportTextures ? renderer_->GetScreenBuffer(viewSize_.x_, viewSize_.y_, format, 1, false,
|
|
|
- false, true, sRGB) : (Texture*)0;
|
|
|
+ viewportTextures_[i] = i < numViewportTextures ? renderer_->GetScreenBuffer(viewSize_.x_, viewSize_.y_, format, multiSample,
|
|
|
+ autoResolve, false, true, sRGB) : (Texture*)0;
|
|
|
}
|
|
|
// If using a substitute render target and pingponging, the substitute can act as the second viewport texture
|
|
|
if (numViewportTextures == 1 && substituteRenderTarget_)
|
|
|
viewportTextures_[1] = substituteRenderTarget_->GetParentTexture();
|
|
|
|
|
|
- // Allocate extra render targets defined by the rendering path
|
|
|
+ // Allocate extra render targets defined by the render path
|
|
|
for (unsigned i = 0; i < renderPath_->renderTargets_.Size(); ++i)
|
|
|
{
|
|
|
const RenderTargetInfo& rtInfo = renderPath_->renderTargets_[i];
|