bool valid() const { EGLWindow *window = getEGLWindow(); EGLDisplay display = window->getDisplay(); if (!eglDisplayExtensionEnabled(display, "EGL_ANGLE_d3d_texture_client_buffer")) { std::cout << "Test skipped due to missing EGL_ANGLE_d3d_texture_client_buffer" << std::endl; return false; } if (!mD3D11Device && !mD3D9Device) { std::cout << "Test skipped due to no D3D devices being available." << std::endl; return false; } if (IsWindows() && IsAMD() && IsOpenGL()) { std::cout << "Test skipped on Windows AMD OpenGL." << std::endl; return false; } if (IsWindows() && IsIntel() && IsOpenGL()) { std::cout << "Test skipped on Windows Intel OpenGL." << std::endl; return false; } return true; }
// Verify that creating a pbuffer with a multisampled texture will fail on a non-multisampled // window. TEST_P(D3DTextureTest, CheckSampleMismatch) { if (!valid()) { return; } // Multisampling is not supported on D3D9 or OpenGL. if (IsD3D9() || IsOpenGL()) { return; } constexpr size_t bufferSize = 32; EGLSurface pbuffer = createPBuffer(bufferSize, bufferSize, EGL_NO_TEXTURE, EGL_NO_TEXTURE, 2, static_cast<UINT>(D3D11_STANDARD_MULTISAMPLE_PATTERN)); EXPECT_EGL_ERROR(EGL_BAD_PARAMETER); EXPECT_EQ(pbuffer, nullptr); }
bool IsDesktopOpenGL() { return IsOpenGL() && !IsOpenGLES(); }