Path: blob/main_old/src/tests/egl_tests/EGLRecordableTest.cpp
1693 views
//1// Copyright 2019 The ANGLE Project Authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file.4//5// EGLRecordableTest.cpp:6// Tests of EGL_ANDROID_recordable extension78#include <gtest/gtest.h>910#include "test_utils/ANGLETest.h"11#include "test_utils/angle_test_configs.h"12#include "util/EGLWindow.h"1314using namespace angle;1516namespace angle17{18class EGLRecordableTest : public ANGLETest19{20protected:21EGLRecordableTest() {}22};2324// Test that the extension is always available (it is implemented in ANGLE's frontend).25TEST_P(EGLRecordableTest, ExtensionAlwaysAvailable)26{27EGLDisplay display = getEGLWindow()->getDisplay();28ASSERT_TRUE(IsEGLDisplayExtensionEnabled(display, "EGL_ANDROID_recordable"));29}3031// Check that the default message filters and callbacks are correct32TEST_P(EGLRecordableTest, CheckAllContexts)33{34EGLDisplay display = getEGLWindow()->getDisplay();35ANGLE_SKIP_TEST_IF(!IsEGLDisplayExtensionEnabled(display, "EGL_ANDROID_recordable"));3637int nConfigs = 0;38ASSERT_EGL_TRUE(eglGetConfigs(display, nullptr, 0, &nConfigs));39ASSERT_NE(nConfigs, 0);4041int nReturnedConfigs = 0;42std::vector<EGLConfig> configs(nConfigs);43ASSERT_EGL_TRUE(eglGetConfigs(display, configs.data(), nConfigs, &nReturnedConfigs));44ASSERT_EQ(nConfigs, nReturnedConfigs);4546for (EGLConfig config : configs)47{48EGLint isRecordable;49eglGetConfigAttrib(display, config, EGL_RECORDABLE_ANDROID, &isRecordable);50ASSERT_EGL_FALSE(isRecordable);51}5253const EGLint configAttributes[] = {54EGL_RED_SIZE, EGL_DONT_CARE, EGL_GREEN_SIZE, EGL_DONT_CARE, EGL_BLUE_SIZE,55EGL_DONT_CARE, EGL_ALPHA_SIZE, EGL_DONT_CARE, EGL_DEPTH_SIZE, EGL_DONT_CARE,56EGL_STENCIL_SIZE, EGL_DONT_CARE, EGL_RECORDABLE_ANDROID, EGL_FALSE, EGL_NONE};57EGLint configCount;58ASSERT_EGL_TRUE(59eglChooseConfig(display, configAttributes, configs.data(), configs.size(), &configCount));60ASSERT_EGL_SUCCESS();61}6263} // namespace angle6465ANGLE_INSTANTIATE_TEST_ES2(EGLRecordableTest);666768