Error ValidateCreateStreamProducerD3DTextureNV12ANGLE(const Display *display, const Stream *stream, const AttributeMap &attribs) { ANGLE_TRY(ValidateDisplay(display)); const DisplayExtensions &displayExtensions = display->getExtensions(); if (!displayExtensions.streamProducerD3DTextureNV12) { return Error(EGL_BAD_ACCESS, "Stream producer extension not active"); } ANGLE_TRY(ValidateStream(display, stream)); if (!attribs.isEmpty()) { return Error(EGL_BAD_ATTRIBUTE, "Invalid attribute"); } if (stream->getState() != EGL_STREAM_STATE_CONNECTING_KHR) { return Error(EGL_BAD_STATE_KHR, "Stream not in connecting state"); } if (stream->getConsumerType() != Stream::ConsumerType::GLTextureYUV || stream->getPlaneCount() != 2) { return Error(EGL_BAD_MATCH, "Incompatible stream consumer type"); } return Error(EGL_SUCCESS); }