Loading [MathJax]/jax/output/HTML-CSS/config.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.9 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    EGL_EXT_stream_consumer_qnxscreen_window
    Name
    
    
    
        EXT_stream_consumer_qnxscreen_window
    
    
    
    Name Strings
    
    
    
        EGL_EXT_stream_consumer_qnxscreen_window
    
    
    
    Contributors
    
    
    
        TBD @ QNX
    
        Daniel Kartch
    
        Lakshmanan Selvi Muthusamy
    
        Nazeer Hussain Shaik
    
        Miguel A. Vico
    
    
    
    Contacts
    
    
    
        TBD @ QNX
    
    
    
    Status
    
    
    
        Draft
    
    
    
    Version
    
    
    
        Version 4 - March 13, 2016
    
    
    
    Number
    
    
    
        TBD
    
    
    
    Extension Type
    
    
    
        EGL display extension
    
    
    
    Dependencies
    
    
    
        Requires EGL_KHR_stream.
    
        Requires EGL_NV_stream_attrib
    
        Interacts with EGL_KHR_stream_fifo.
    
        Requires QNX CAR platform 2.1 (Minimum Expectation).
    
    
    
    Overview
    
    
    
        This extension allows a QNX screen window to be connected to an
    
        EGLStream as its consumer. Image frames from the EGLStream can be
    
        posted into the window for use in composition or display. The
    
        effect is similar to using that window system's
    
        screen_post_window function, but without requiring the
    
        application to perform additional copy steps or have detailed
    
        knowledge of the image buffers to map between the EGL client
    
        producer and the native window system buffers. The QNX screen
    
        window allocation and its handling is done by
    
        EXT_stream_consumer_qnxscreen_window extension itself.
    
        Application don't need to do any external work to display
    
        through the QNX screen window system.
    
    
    
    New Procedures and Functions
    
    
    
        EGLBoolean eglStreamConsumerQNXScreenWindowEXT(
    
                        EGLDisplay dpy,
    
                        EGLStreamKHR stream);
    
    
    
    New Tokens
    
    
    
        Accepted as an attribute in the <attrib_list> parameter of
    
        eglCreateStreamKHR and as the <attribute> parameter of
    
        eglStreamAttribKHR and eglQueryStreamKHR
    
    
    
        EGL_CONSUMER_ACQUIRE_QNX_FLUSHING_EXT        0xXXXX
    
        EGL_CONSUMER_ACQUIRE_QNX_DISPNO_EXT          0xXXXX
    
        EGL_CONSUMER_ACQUIRE_QNX_LAYERNO_EXT         0xXXXX
    
        EGL_CONSUMER_ACQUIRE_QNX_SURFACE_TYPE_EXT    0xXXXX
    
        EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_POS_X_EXT   0xXXXX
    
        EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_POS_Y_EXT   0xXXXX
    
        EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_WIDTH_EXT   0xXXXX
    
        EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_HEIGHT_EXT  0xXXXX
    
    
    
    Replace section "3.10.2.1 No way to connect consumer to EGLStream" in
    
    the EGL_KHR_stream extension:
    
    
    
        3.10.2.1 QNX screen window consumer
    
    
    
        Call
    
    
    
            EGLBoolean eglStreamConsumerQNXScreenWindowEXT(
    
                        EGLDisplay dpy,
    
                        EGLStreamKHR stream);
    
    
    
        to connect QNX screen window system as the the consumer of
    
        <stream>.
    
    
    
        On failure, EGL_FALSE is returned and an error is generated.
    
    
    
            - EGL_BAD_DISPLAY is generated if <dpy> is not a valid,
    
              initialized EGLDisplay.
    
    
    
            - EGL_BAD_STREAM_KHR is generated if <stream> is not a valid
    
              EGLStreamKHR created for <dpy>.
    
    
    
            - EGL_BAD_STATE_KHR is generated if <stream> is not in state
    
              EGL_STREAM_STATE_CREATED_KHR.
    
    
    
        On success, a new QNX screen window is allocated and connected
    
        to <stream>, <stream> is placed in the
    
        EGL_STREAM_STATE_CONNECTING_KHR state, and EGL_TRUE is returned.
    
        The handle of the new window is not returned to the user for
    
        direct manipulation. All window properties must be set through
    
        the stream. This prevents applications from accessing or
    
        interfering with the buffers containing the frame data.
    
    
    
        If <stream> is destroyed, the QNX screen window will be closed.
    
    
    
        Call eglStreamConsumerAcquireAttribNV to post the next available
    
        frame from <stream> into the QNX screen window.
    
    
    
    Add a new subsection 3.10.4.x at the end of section "3.10.4 EGLStream
    
    Attributes" in the EGL_KHR_stream extension spec:
    
    
    
        3.10.4.x EGL_CONSUMER_ACQUIRE_QNX_FLUSHING_EXT Attribute
    
    
    
        This attribute is a read/write bitfield which may contain any
    
        flags of type Screen_Flushing_Types. The default value is 0. It
    
        indicates the flushing behavior to use during
    
        eglStreamConsumerAcquireAttribNV when connected to a QNX screen
    
        window consumer. When connected to any other type of consumer, this
    
        attribute is ignored.
    
    
    
        3.10.4.x+1 EGL_CONSUMER_ACQUIRE_QNX_DISPNO_EXT Attribute
    
    
    
        This attribute is a read/write integer mapped to the
    
        display port number of the QNX screen window's
    
        SCREEN_PROPERTY_DISPLAY attribute. It may bet set to any valid
    
        display port number supported by the platform.
    
        The default value is 0. When connected to
    
        any other type of consumer, this attribute is ignored.
    
    
    
        3.10.4.x+2 EGL_CONSUMER_ACQUIRE_QNX_LAYERNO_EXT Attribute
    
    
    
        This attribute is a read/write integer mapped to the
    
        pipeline id of the QNX screen window's
    
        SCREEN_PROPERTY_PIPELINE attribute. It may bet set to any valid
    
        pipeline id supported by the platform.
    
        The default value is 0. When connected to
    
        any other type of consumer, this attribute is ignored.
    
    
    
        3.10.4.x+3 EGL_CONSUMER_ACQUIRE_QNX_SURFACE_TYPE_EXT Attribute
    
    
    
        This attribute is a read/write flag mapped to the QNX screen
    
        window's SCREEN_PROPERTY_FLIP property. Its value may be 0,
    
        indicating the surface is top-left oriented, or 1, indicating
    
        bottom-left orientation. The default value is 0. When connected
    
        to any other type of consumer, this attribute is ignored.
    
    
    
        3.10.4.x+4 EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_POS_X_EXT Attribute
    
    
    
        This attribute is a read/write integer mapped to the x value of 
    
        the QNX screen window's SCREEN_PROPERTY_POSITION attribute.
    
        It may bet set to any valid window x position.
    
        The default value is 0. When connected to
    
        any other type of consumer, this attribute is ignored.
    
    
    
        3.10.4.x+5 EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_POS_Y_EXT Attribute
    
    
    
        This attribute is a read/write integer mapped to the y value of
    
        the QNX screen window's SCREEN_PROPERTY_POSITION attribute.
    
        It may bet set to any valid window y position.
    
        The default value is 0. When connected to
    
        any other type of consumer, this attribute is ignored.
    
    
    
        3.10.4.x+6 EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_WIDTH_EXT Attribute
    
    
    
        This attribute is a read/write integer mapped to the width value
    
        of the QNX screen window's SCREEN_PROPERTY_SIZE attribute.
    
        It may bet set to any valid window width value.
    
        The default value is current display mode's width. When connected
    
        to any other type of consumer, this attribute is ignored.
    
    
    
        3.10.4.x+7 EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_HEIGHT_EXT Attribute
    
    
    
        This attribute is a read/write integer mapped to the height value
    
        of the QNX screen window's SCREEN_PROPERTY_SIZE attribute.
    
        It may bet set to any valid window height value.
    
        The default value is current display mode's height. When
    
        connected to any other type of consumer, this attribute is
    
        ignored.
    
    
    
    Issues:
    
    
    
        1.  The EGL_KHR_stream_consumer_gltexture extension provides a
    
            timeout attribute which causes the Acquire function to block
    
            if no new frame is available. Do we want similar behavior
    
            here?
    
    
    
            RESOLVED - Use the EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR to
    
            make eglStreamConsumerAcquireAttribNV blocking if desired.
    
    
    
        2.  In fifo mode, if a timestamp is specified by the producer
    
            which has not yet been reached, should the post operation
    
            performed by the Acquire function block until then?
    
    
    
            UNRESOLVED
    
    
    
        3.  A separate extension may allow QNX screen windows to be
    
            stream producers. How do these extensions interact? Is it
    
            legal for a window to be made both the consumer of one stream
    
            and the producer of another? If so, at what point do frames
    
            acquired by a window get released back to the original
    
            producer if they have been passed downstream? If not, what
    
            errors are generated if an application attempts to do this?
    
    
    
            UNRESOLVED
    
    
    
    Revision History
    
    
    
        #4  (March 13, 2016) Miguel A. Vico
    
            - Rewritten against wording of EGL_NV_stream_attrib.
    
    
    
        #3  (July 16, 2015) Nazeer Hussain Shaik
    
            - Prototype of the acquire API changed to match
    
              the one defined by EGL_EXT_stream_acquire_mode
    
              and rewritten accordingly.
    
    
    
        #2  (February 18, 2015) Lakshmanan Selvi Muthusamy
    
            - 2nd draft
    
    
    
        #1  (September 22, 2014) Daniel Kartch
    
            - Initial draft
    
    
    人人超碰97caoporen国产