16e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon/*
26e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon * Copyright 2016 Google Inc.
36e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon *
46e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon * Use of this source code is governed by a BSD-style license that can be
56e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon * found in the LICENSE file.
66e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon */
76e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon
86e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon#include "SkTypes.h"
96e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon
106e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon#if SK_SUPPORT_GPU
116e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon
126e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon#include "GrContextFactory.h"
136e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon#include "Test.h"
146e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon
15f2f1c17e331fe1e0ce695969970ecebc81e12cebbsalomonusing namespace sk_gpu_test;
166e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon
176e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomonDEF_GPUTEST(GrContext_abandonContext, reporter, /*factory*/) {
186e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon    for (int testType = 0; testType < 6; ++testType) {
1985b4b53e78dcdeae2a51935ca5e214b0f1a06492bsalomon        for (int i = 0; i < GrContextFactory::kContextTypeCnt; ++i) {
2085b4b53e78dcdeae2a51935ca5e214b0f1a06492bsalomon            GrContextFactory testFactory;
2185b4b53e78dcdeae2a51935ca5e214b0f1a06492bsalomon            GrContextFactory::ContextType ctxType = (GrContextFactory::ContextType) i;
22f2f1c17e331fe1e0ce695969970ecebc81e12cebbsalomon            ContextInfo info = testFactory.getContextInfo(ctxType);
238b7451aaf6b1c71e9d343a4df107893db277b6aabsalomon            if (GrContext* context = info.grContext()) {
246e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                switch (testType) {
256e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                    case 0:
266e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->abandonContext();
276e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        break;
286e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                    case 1:
296e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->releaseResourcesAndAbandonContext();
306e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        break;
316e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                    case 2:
326e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->abandonContext();
336e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->abandonContext();
346e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        break;
356e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                    case 3:
366e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->abandonContext();
376e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->releaseResourcesAndAbandonContext();
386e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        break;
396e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                    case 4:
406e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->releaseResourcesAndAbandonContext();
416e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->abandonContext();
426e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        break;
436e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                    case 5:
446e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->releaseResourcesAndAbandonContext();
456e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        context->releaseResourcesAndAbandonContext();
466e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                        break;
476e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon                }
486e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon            }
496e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon        }
506e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon    }
516e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon}
526e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon
536e2aad4e9f6280aa2b710e7324458fdc6d699ec5bsalomon#endif
54