Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(303)

Unified Diff: tests/ProxyTest.cpp

Issue 2225303002: Add flag for window rectangles to GrRenderTarget (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/gpu/vk/GrVkRenderTarget.cpp ('K') | « src/gpu/vk/GrVkRenderTarget.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/ProxyTest.cpp
diff --git a/tests/ProxyTest.cpp b/tests/ProxyTest.cpp
index 2ed4591a723c83eb562f3d0f7d63fd6e71821c29..1239311728cb368eb4ce75a624aa57304230467c 100644
--- a/tests/ProxyTest.cpp
+++ b/tests/ProxyTest.cpp
@@ -10,6 +10,7 @@
#include "Test.h"
#if SK_SUPPORT_GPU
+#include "GrGpu.h"
#include "GrSurfaceProxy.h"
#include "GrTextureProxy.h"
#include "GrRenderTargetProxy.h"
@@ -50,7 +51,8 @@ static void check_rendertarget(skiatest::Reporter* reporter,
rtProxy->isStencilBufferMultisampled());
REPORTER_ASSERT(reporter, rt->numColorSamples() == rtProxy->numColorSamples());
REPORTER_ASSERT(reporter, rt->numStencilSamples() == rtProxy->numStencilSamples());
- REPORTER_ASSERT(reporter, rt->hasMixedSamples() == rtProxy->hasMixedSamples());
+ REPORTER_ASSERT(reporter, rt->isMixedSampled() == rtProxy->isMixedSampled());
+ REPORTER_ASSERT(reporter, rt->isOffscreen() == rtProxy->isOffscreen());
}
static void check_texture(skiatest::Reporter* reporter,
@@ -141,14 +143,40 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WrappedProxyTest, reporter, ctxInfo) {
desc.fConfig = config;
desc.fSampleCnt = numSamples;
+ // External on-screen render target.
+ if (renderable && kOpenGL_GrBackend == ctxInfo.backend()) {
+ GrBackendRenderTargetDesc backendDesc;
+ backendDesc.fWidth = kWidthHeight;
+ backendDesc.fHeight = kWidthHeight;
+ backendDesc.fConfig = config;
+ backendDesc.fOrigin = origin;
+ backendDesc.fSampleCnt = numSamples;
+ backendDesc.fStencilBits = 8;
+ backendDesc.fRenderTargetHandle = 0;
csmartdalton 2016/08/09 06:52:58 Would this also work for vulkan?
+
+ GrGpu* gpu = ctxInfo.grContext()->getGpu();
+ sk_sp<GrRenderTarget> defaultFBO(
+ gpu->wrapBackendRenderTarget(backendDesc, kBorrow_GrWrapOwnership));
+ SkASSERT(!defaultFBO->isOffscreen());
+
+ sk_sp<GrRenderTargetProxy> rtProxy(
+ GrRenderTargetProxy::Make(*ctxInfo.grContext()->caps(), defaultFBO));
+ check_surface(reporter, rtProxy.get(), origin,
+ kWidthHeight, kWidthHeight, config);
+ check_rendertarget(reporter, provider, rtProxy.get(), SkBackingFit::kExact);
+ }
+
sk_sp<GrTexture> tex;
+ // Internal offscreen render target.
if (renderable) {
desc.fFlags = kRenderTarget_GrSurfaceFlag;
tex.reset(provider->createTexture(desc, budgeted));
sk_sp<GrRenderTarget> rt(sk_ref_sp(tex->asRenderTarget()));
+ SkASSERT(rt->isOffscreen());
- sk_sp<GrRenderTargetProxy> rtProxy(GrRenderTargetProxy::Make(rt));
+ sk_sp<GrRenderTargetProxy> rtProxy(
+ GrRenderTargetProxy::Make(*ctxInfo.grContext()->caps(), rt));
check_surface(reporter, rtProxy.get(), origin,
kWidthHeight, kWidthHeight, config);
check_rendertarget(reporter, provider, rtProxy.get(), SkBackingFit::kExact);
« src/gpu/vk/GrVkRenderTarget.cpp ('K') | « src/gpu/vk/GrVkRenderTarget.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698