15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ARB_conditional_render_inverted
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ARB_conditional_render_inverted
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Brian Paul, VMware Inc. (brianp 'at' vmware.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciContributors
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Brian Paul, VMware
165bd8deadSopenharmony_ci    Daniel Rakos, AMD
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ciNotice
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ci    Copyright (c) 2014 The Khronos Group Inc. Copyright terms at
215bd8deadSopenharmony_ci        http://www.khronos.org/registry/speccopyright.html
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ciSpecification Update Policy
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ci    Khronos-approved extension specifications are updated in response to
265bd8deadSopenharmony_ci    issues and bugs prioritized by the Khronos OpenGL Working Group. For
275bd8deadSopenharmony_ci    extensions which have been promoted to a core Specification, fixes will
285bd8deadSopenharmony_ci    first appear in the latest version of that core Specification, and will
295bd8deadSopenharmony_ci    eventually be backported to the extension document. This policy is
305bd8deadSopenharmony_ci    described in more detail at
315bd8deadSopenharmony_ci        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ciStatus
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ci    Complete. 
365bd8deadSopenharmony_ci    Approved by the ARB on June 26, 2014.
375bd8deadSopenharmony_ci    Ratified by the Khronos Board of Promoters on August 7, 2014.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciVersion
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    Date: June 9, 2014
425bd8deadSopenharmony_ci    Revision: 5
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ciNumber
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    ARB Extension #161
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ciDependencies
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    OpenGL 3.0 is required.
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    The extension is written against the OpenGL 4.4 Specification, Core
535bd8deadSopenharmony_ci    Profile, March 19, 2014.
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ciOverview
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ci    This extension adds new modes to BeginConditionalRender which invert
585bd8deadSopenharmony_ci    the condition used to determine whether to draw or not.
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ciIP Status
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    No known IP claims.
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ciNew Procedures and Functions
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci    None.
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ciNew Tokens
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci    Accepted by the <mode> parameter of BeginConditionalRender:
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci        QUERY_WAIT_INVERTED                             0x8E17
735bd8deadSopenharmony_ci        QUERY_NO_WAIT_INVERTED                          0x8E18
745bd8deadSopenharmony_ci        QUERY_BY_REGION_WAIT_INVERTED                   0x8E19  
755bd8deadSopenharmony_ci        QUERY_BY_REGION_NO_WAIT_INVERTED                0x8E1A  
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ciAdditions to Chapter 10 of the OpenGL 4.4 (Core Profile) Specification (Vertex Specification and Drawing Commands)
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ci    Modify Section 10.10, Conditional Rendering
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci    (add before the errors section for BeginConditionalRender on p. 339)
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci    If <mode> is QUERY_WAIT_INVERTED, QUERY_NO_WAIT_INVERTED,
845bd8deadSopenharmony_ci    QUERY_BY_REGION_WAIT_INVERTED, or QUERY_BY_REGION_NO_WAIT_INVERTED
855bd8deadSopenharmony_ci    then the condition used to determine whether or not to render subsequent
865bd8deadSopenharmony_ci    drawing commands is negated with respect to QUERY_WAIT, QUERY_NO_WAIT,
875bd8deadSopenharmony_ci    QUERY_BY_REGION_WAIT, or QUERY_BY_REGION_NO_WAIT, respectively. If <mode>
885bd8deadSopenharmony_ci    is QUERY_NO_WAIT_INVERTED or QUERY_BY_REGION_NO_WAIT_INVERTED
895bd8deadSopenharmony_ci    the GL may choose to unconditionally execute the subsequent rendering
905bd8deadSopenharmony_ci    commands without waiting for the query to complete.
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ciAdditions to the AGL/EGL/GLX/WGL Specifications
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci    None.
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ciDependencies
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    None.
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ciNew State
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    None.
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ciNew Implementation Dependent State
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci    None.
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ciIssues
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ci    (1) Why is this extension necessary?
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci      RESOLVED:  A competing graphics API supports this feature.  This
1135bd8deadSopenharmony_ci      extension will allow one to easier implement that API's features
1145bd8deadSopenharmony_ci      on top of OpenGL. Also, with the GL_ARB_transform_feedback_overflow_query
1155bd8deadSopenharmony_ci      extension, it's not obvious whether conditional rendering should
1165bd8deadSopenharmony_ci      discard drawing if a transform feedback buffer overflow occurs or
1175bd8deadSopenharmony_ci      doesn't occur. This extension allows both possibilities.
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci    (2) Should there be QUERY_NO_WAIT_INVERTED and
1205bd8deadSopenharmony_ci        QUERY_BY_REGION_NO_WAIT_INVERTED queries?
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci      RESOLVED: Yes. Suppose we issue a SAMPLES_PASSED query and begin
1235bd8deadSopenharmony_ci      conditional rendering with QUERY_NO_WAIT_INVERTED. If the query
1245bd8deadSopenharmony_ci      it not ready yet, the GL might render the subsequent primitives even
1255bd8deadSopenharmony_ci      if they might have been visible. There may be a non-obvious use for
1265bd8deadSopenharmony_ci      this.
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    (3) What gets inverted, the condition or the behavior?
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ci      DISCUSSION: For QUERY_WAIT_INVERTED and QUERY_BY_REGION_WAIT_INVERTED
1315bd8deadSopenharmony_ci      it doesn't really matter, but for the other two modes there are two
1325bd8deadSopenharmony_ci      possibilities:
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ci        (a) Inverted condition, in which case the GL renders subsequent
1355bd8deadSopenharmony_ci            primitives if the query is not complete yet.
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci        (b) Inverted behavior, in which case the GL discards subsequent
1385bd8deadSopenharmony_ci            primitives if the query is not complete yet.
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci      RESOLVED: We chose option (a). The condition is inverted.
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ciRevision History
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ci    Revision 5, 2014/06/09 (Jon Leech)
1455bd8deadSopenharmony_ci      - Assign enums per bug 12362
1465bd8deadSopenharmony_ci
1475bd8deadSopenharmony_ci    Revision 4, 2014/04/25 (Daniel Rakos)
1485bd8deadSopenharmony_ci      - Renamed to ARB_conditional_render_inverted.
1495bd8deadSopenharmony_ci      - Removed suffixes.
1505bd8deadSopenharmony_ci      - Resolved isues (2) and (3).
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ci    Revision 3, 2014/04/16 (Daniel Rakos)
1535bd8deadSopenharmony_ci      - Renamed extension to EXT_conditional_render_inverted.
1545bd8deadSopenharmony_ci      - Marked issue (2) unresolved, changed the behavior for incomplete
1555bd8deadSopenharmony_ci        queries, and added issue (3).
1565bd8deadSopenharmony_ci      - Clarified language regarding what gets inverted and how issue (2)
1575bd8deadSopenharmony_ci        affects the behavior.
1585bd8deadSopenharmony_ci
1595bd8deadSopenharmony_ci    Revision 2, 2014/04/10 (Brian Paul)
1605bd8deadSopenharmony_ci      - Added issue (2) to justify QUERY_NO_WAIT_INVERTED_EXT.
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci    Revision 1, 2014/02/03 (Brian Paul)
1635bd8deadSopenharmony_ci      - Initial revision.
164