15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    NV_copy_image
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_NV_copy_image
85bd8deadSopenharmony_ci    WGL_NV_copy_image
95bd8deadSopenharmony_ci    GLX_NV_copy_image
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ciContact
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ci    Michael Gold, NVIDIA Corporation (gold 'at' nvidia.com)
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciContributors
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    Jeff Bolz, NVIDIA Corporation (jbolz 'at' nvidia.com)
185bd8deadSopenharmony_ci    James Jones, NVIDIA Corporation (jajones 'at' nvidia.com)
195bd8deadSopenharmony_ci    Joe Kain, NVIDIA Corporation (jkain 'at' nvidia.com)
205bd8deadSopenharmony_ci    Benjamin Morris, NVIDIA Corporation (bmorris 'at' nvidia.com)
215bd8deadSopenharmony_ci    Michael Morrison, NVIDIA Corporation (mmorrison 'at' nvidia.com)
225bd8deadSopenharmony_ci    Aaron Plattner, NVIDIA Corporation (aplattner 'at' nvidia.com)
235bd8deadSopenharmony_ci    Thomas Volk, NVIDIA Corporation (tvolk 'at' nvidia.com)
245bd8deadSopenharmony_ci    Eric Werness, NVIDIA Corporation (ewerness 'at' nvidia.com)
255bd8deadSopenharmony_ci    Shazia Rahman, NVIDIA Corporation (srahman 'at' nvidia.com)
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ciStatus
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ci    Shipping (July 2009, Release 190)
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciVersion
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    Last Modified Date:         8/7/2012
345bd8deadSopenharmony_ci    NVIDIA revision:            5
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ciNumber
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ci    376
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciDependencies
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    OpenGL 1.1 is required.
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ci    The extension is written against the OpenGL 3.1 Specification.
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ciOverview
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci    This extension enables efficient image data transfer between image
495bd8deadSopenharmony_ci    objects (i.e. textures and renderbuffers) without the need to bind
505bd8deadSopenharmony_ci    the objects or otherwise configure the rendering pipeline.  The
515bd8deadSopenharmony_ci    WGL and GLX versions allow copying between images in different
525bd8deadSopenharmony_ci    contexts, even if those contexts are in different sharelists or
535bd8deadSopenharmony_ci    even on different physical devices.
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ciNew Procedures and Functions
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ci    void CopyImageSubDataNV(
585bd8deadSopenharmony_ci        uint srcName, enum srcTarget, int srcLevel,
595bd8deadSopenharmony_ci        int srcX, int srcY, int srcZ,
605bd8deadSopenharmony_ci        uint dstName, enum dstTarget, int dstLevel,
615bd8deadSopenharmony_ci        int dstX, int dstY, int dstZ,
625bd8deadSopenharmony_ci        sizei width, sizei height, sizei depth);
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ciNew Tokens
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci    None
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 3.1 Specification (Per-Fragment
695bd8deadSopenharmony_ciOperations and the Frame Buffer)
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ci    Append to section 4.3.3:
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    The function
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci        void CopyImageSubDataNV(
765bd8deadSopenharmony_ci            uint srcName, enum srcTarget, int srcLevel,
775bd8deadSopenharmony_ci            int srcX, int srcY, int srcZ,
785bd8deadSopenharmony_ci            uint dstName, enum dstTarget, int dstLevel,
795bd8deadSopenharmony_ci            int dstX, int dstY, int dstZ,
805bd8deadSopenharmony_ci            sizei width, sizei height, sizei depth);
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    may be used to copy a region of texel data between two image
835bd8deadSopenharmony_ci    objects.  An image object may be either a texture or a
845bd8deadSopenharmony_ci    renderbuffer.
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    The source object is identified by <srcName> and <srcTarget>.
875bd8deadSopenharmony_ci    Similarly the destination object is identified by <dstName> and
885bd8deadSopenharmony_ci    <dstTarget>.  The interpretation of the name depends on the value
895bd8deadSopenharmony_ci    of the corresponding target parameter.  If the target parameter is
905bd8deadSopenharmony_ci    RENDERBUFFER, the name is interpreted as the name of a
915bd8deadSopenharmony_ci    renderbuffer object.  If the target parameter is a texture target,
925bd8deadSopenharmony_ci    the name is interpreted as a texture object.  All non-proxy
935bd8deadSopenharmony_ci    texture targets are accepted, with the exception of TEXTURE_BUFFER
945bd8deadSopenharmony_ci    and the cubemap face selectors described in table 3.23.
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    <srcLevel> and <dstLevel> identify the source and destination
975bd8deadSopenharmony_ci    level of detail.  For textures, this must be a valid level of
985bd8deadSopenharmony_ci    detail in the texture object.  For renderbuffers, this value must
995bd8deadSopenharmony_ci    be zero.
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ci    <srcX>, <srcY>, and <srcZ> specify the lower left texel
1025bd8deadSopenharmony_ci    coordinates of a <width>-wide by <height>-high by <depth>-deep
1035bd8deadSopenharmony_ci    rectangular subregion of the source texel array.  Negative values
1045bd8deadSopenharmony_ci    of <srcX>, <srcY>, and <srcZ> correspond to the coordinates of
1055bd8deadSopenharmony_ci    border texels, addressed as in figure 3.10.  Similarly, <dstX>,
1065bd8deadSopenharmony_ci    <dstY> and <dstZ> specify the coordinates of a subregion of the
1075bd8deadSopenharmony_ci    destination texel array.  The source and destination subregions
1085bd8deadSopenharmony_ci    must be contained entirely within the specified level of the
1095bd8deadSopenharmony_ci    corresponding image objects.
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci    Slices of a TEXTURE_1D_ARRAY, TEXTURE_2D_ARRAY, TEXTURE_3D and
1125bd8deadSopenharmony_ci    faces of TEXTURE_CUBE_MAP are all compatible provided they share
1135bd8deadSopenharmony_ci    an internal format, and multiple slices or faces may be copied
1145bd8deadSopenharmony_ci    between these objects with a single call by specifying the
1155bd8deadSopenharmony_ci    starting slice with <srcZ> and <dstZ>, and the number of slices to
1165bd8deadSopenharmony_ci    be copied with <depth>.  Cubemap textures always have six faces
1175bd8deadSopenharmony_ci    which are selected by a zero-based face index, according to the
1185bd8deadSopenharmony_ci    order specified in table 3.23.
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ci    CopyImageSubDataNV may fail with any of the following errors:
1215bd8deadSopenharmony_ci    INVALID_ENUM is generated if either target is not RENDERBUFFER or
1225bd8deadSopenharmony_ci    a valid non-proxy texture target, or is TEXTURE_BUFFER, or is one
1235bd8deadSopenharmony_ci    of the cubemap face selectors described in table 3.23, or if the
1245bd8deadSopenharmony_ci    target does not match the type of the object.  INVALID_OPERATION
1255bd8deadSopenharmony_ci    is generated if either object is a texture and the texture is not
1265bd8deadSopenharmony_ci    consistent, or if the source and destination internal formats or
1275bd8deadSopenharmony_ci    number of samples do not match.  INVALID_VALUE is generated if
1285bd8deadSopenharmony_ci    either name does not correspond to a valid renderbuffer or texture
1295bd8deadSopenharmony_ci    object according to the corresponding target parameter, or if the
1305bd8deadSopenharmony_ci    specified level is not a valid level for the image, or if the
1315bd8deadSopenharmony_ci    dimensions of the either subregion exceeds the boundaries of the
1325bd8deadSopenharmony_ci    corresponding image object, or if the image format is compressed
1335bd8deadSopenharmony_ci    and the dimensions of the subregion fail to meet the alignment
1345bd8deadSopenharmony_ci    constraints of the format.
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci************************************************************************
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ciAdditions to the WGL Specification
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci    The function
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci        BOOL wglCopyImageSubDataNV(
1435bd8deadSopenharmony_ci            HGLRC hSrcRC, uint srcName, enum srcTarget, int srcLevel,
1445bd8deadSopenharmony_ci            int srcX, int srcY, int srcZ,
1455bd8deadSopenharmony_ci            HGLRC hDstRC, uint dstName, enum dstTarget, int dstLevel,
1465bd8deadSopenharmony_ci            int dstX, int dstY, int dstZ,
1475bd8deadSopenharmony_ci            sizei width, sizei height, sizei depth);
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ci    behaves identically to the core function glCopyImageSubDataNV,
1505bd8deadSopenharmony_ci    except that the <hSrcRC> and <hDstRC> parameters specify the
1515bd8deadSopenharmony_ci    contexts in which to look up the source and destination objects,
1525bd8deadSopenharmony_ci    respectively.  A value of zero indicates that the currently bound
1535bd8deadSopenharmony_ci    context should be used instead.
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci    Upon success, the value TRUE is returned.  Upon failure, the value
1565bd8deadSopenharmony_ci    FALSE is returned, and the system error code will be set to one of
1575bd8deadSopenharmony_ci    the following:
1585bd8deadSopenharmony_ci
1595bd8deadSopenharmony_ci        ERROR_INVALID_HANDLE indicates that either of <hSrcRC> or
1605bd8deadSopenharmony_ci        <hDstRC> is non-zero and is not recognized by the
1615bd8deadSopenharmony_ci        implementation as a valid context, or is zero and there is no
1625bd8deadSopenharmony_ci        valid context bound in the current thread.
1635bd8deadSopenharmony_ci
1645bd8deadSopenharmony_ci        ERROR_INVALID_OPERATION indicates that the call failed, and if
1655bd8deadSopenharmony_ci        either the source or the destination context is bound in the
1665bd8deadSopenharmony_ci        current thread, a GL error code is set to indicate the cause.
1675bd8deadSopenharmony_ci        This error code may be retrieved by calling glGetError().  If
1685bd8deadSopenharmony_ci        neither the source nor the destination context is bound in the
1695bd8deadSopenharmony_ci        current thread, no GL error is set.
1705bd8deadSopenharmony_ci
1715bd8deadSopenharmony_ciAdditions to the GLX Specification
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ci    The function
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci        void glXCopyImageSubDataNV(Display *dpy,
1765bd8deadSopenharmony_ci            GLXContext srcCtx, uint srcName, enum srcTarget, int srcLevel,
1775bd8deadSopenharmony_ci            int srcX, int srcY, int srcZ,
1785bd8deadSopenharmony_ci            GLXContext dstCtx, uint dstName, enum dstTarget, int dstLevel,
1795bd8deadSopenharmony_ci            int dstX, int dstY, int dstZ,
1805bd8deadSopenharmony_ci            sizei width, sizei height, sizei depth);
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ci    behaves identically to the core function glCopyImageSubDataNV,
1835bd8deadSopenharmony_ci    except that the <srcCtx> and <dstCtx> parameters specify the
1845bd8deadSopenharmony_ci    contexts in which to look up the source and destination objects,
1855bd8deadSopenharmony_ci    respectively.  A value of NULL for either context indicates that
1865bd8deadSopenharmony_ci    the value which is returned by glXGetCurrentContext() should be
1875bd8deadSopenharmony_ci    used instead. Both contexts must share the same address space, as
1885bd8deadSopenharmony_ci    described in section 2.3.
1895bd8deadSopenharmony_ci
1905bd8deadSopenharmony_ci    If either <srcCtx> or <dstCtx> is not a valid rendering context,
1915bd8deadSopenharmony_ci    the error GLXBadContext is generated.
1925bd8deadSopenharmony_ci
1935bd8deadSopenharmony_ci    If the server portion of the contexts do not share the same
1945bd8deadSopenharmony_ci    address space, the error BadMatch is generated.
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci    If an error occurs due to GL parameter validation, the error
1975bd8deadSopenharmony_ci    BadMatch will be generated.  Additionally, if either the source or
1985bd8deadSopenharmony_ci    destination context is bound to the current thread, a GL error is
1995bd8deadSopenharmony_ci    set to indicate the cause. This error code may be retrieved by
2005bd8deadSopenharmony_ci    calling glGetError().  If neither the source nor the destination
2015bd8deadSopenharmony_ci    context is bound in the current thread, no GL error is set.
2025bd8deadSopenharmony_ci
2035bd8deadSopenharmony_ciGLX Protocol
2045bd8deadSopenharmony_ci
2055bd8deadSopenharmony_ci    One new GLX protocol command is added.
2065bd8deadSopenharmony_ci
2075bd8deadSopenharmony_ci    glXCopyImageSubDataNV
2085bd8deadSopenharmony_ci        1       CARD8           opcode (X assigned)
2095bd8deadSopenharmony_ci        1       16              GLX opcode (glXVendorPrivate)
2105bd8deadSopenharmony_ci        2       20              request length
2115bd8deadSopenharmony_ci        4       1360            vendor specific opcode
2125bd8deadSopenharmony_ci        4                       unused
2135bd8deadSopenharmony_ci        4       GLX_CONTEXT     src_context
2145bd8deadSopenharmony_ci        4       CARD32          src_name
2155bd8deadSopenharmony_ci        4       ENUM            src_target
2165bd8deadSopenharmony_ci        4       INT32           src_level
2175bd8deadSopenharmony_ci        4       INT32           src_x
2185bd8deadSopenharmony_ci        4       INT32           src_y
2195bd8deadSopenharmony_ci        4       INT32           src_z
2205bd8deadSopenharmony_ci        4       GLX_CONTEXT     dst_context
2215bd8deadSopenharmony_ci        4       CARD32          dst_name
2225bd8deadSopenharmony_ci        4       ENUM            dst_target
2235bd8deadSopenharmony_ci        4       INT32           dst_level
2245bd8deadSopenharmony_ci        4       INT32           dst_x
2255bd8deadSopenharmony_ci        4       INT32           dst_y
2265bd8deadSopenharmony_ci        4       INT32           dst_z
2275bd8deadSopenharmony_ci        4       INT32           width
2285bd8deadSopenharmony_ci        4       INT32           height
2295bd8deadSopenharmony_ci        4       INT32           depth
2305bd8deadSopenharmony_ci
2315bd8deadSopenharmony_ci    The following rendering command is sent to the server as a part of
2325bd8deadSopenharmony_ci    glXRender request:
2335bd8deadSopenharmony_ci
2345bd8deadSopenharmony_ci    CopyImageSubDataNV
2355bd8deadSopenharmony_ci        2       64              rendering command length
2365bd8deadSopenharmony_ci        2       4291            rendering command opcode
2375bd8deadSopenharmony_ci        4       CARD32          src_name
2385bd8deadSopenharmony_ci        4       ENUM            src_target
2395bd8deadSopenharmony_ci        4       INT32           src_level
2405bd8deadSopenharmony_ci        4       INT32           src_x
2415bd8deadSopenharmony_ci        4       INT32           src_y
2425bd8deadSopenharmony_ci        4       INT32           src_z
2435bd8deadSopenharmony_ci        4       CARD32          dst_name
2445bd8deadSopenharmony_ci        4       ENUM            dst_target
2455bd8deadSopenharmony_ci        4       INT32           dst_level
2465bd8deadSopenharmony_ci        4       INT32           dst_x
2475bd8deadSopenharmony_ci        4       INT32           dst_y
2485bd8deadSopenharmony_ci        4       INT32           dst_z
2495bd8deadSopenharmony_ci        4       INT32           width
2505bd8deadSopenharmony_ci        4       INT32           height
2515bd8deadSopenharmony_ci        4       INT32           depth
2525bd8deadSopenharmony_ci
2535bd8deadSopenharmony_ciDependencies on EXT_extension_name
2545bd8deadSopenharmony_ci
2555bd8deadSopenharmony_ci    The list of supported image targets depends on the availability of
2565bd8deadSopenharmony_ci    such targets in the implementation.
2575bd8deadSopenharmony_ci
2585bd8deadSopenharmony_ciErrors
2595bd8deadSopenharmony_ci
2605bd8deadSopenharmony_ci    CopyImageSubDataNV may fail with any of the following errors:
2615bd8deadSopenharmony_ci    INVALID_ENUM is generated if either target is not RENDERBUFFER or
2625bd8deadSopenharmony_ci    a valid non-proxy texture target, or is TEXTURE_BUFFER, or is one
2635bd8deadSopenharmony_ci    of the cubemap face selectors described in table 3.23, or if the
2645bd8deadSopenharmony_ci    target does not match the type of the object.  INVALID_OPERATION
2655bd8deadSopenharmony_ci    is generated if either object is a texture and the texture is not
2665bd8deadSopenharmony_ci    consistent, or if the source and destination internal formats or
2675bd8deadSopenharmony_ci    number of samples do not match.  INVALID_VALUE is generated if
2685bd8deadSopenharmony_ci    either name does not correspond to a valid renderbuffer or texture
2695bd8deadSopenharmony_ci    object according to the corresponding target parameter, or if the
2705bd8deadSopenharmony_ci    specified level is not a valid level for the image, or if the
2715bd8deadSopenharmony_ci    dimensions of the either subregion exceeds the boundaries of the
2725bd8deadSopenharmony_ci    corresponding image object, or if the image format is compressed
2735bd8deadSopenharmony_ci    and the dimensions of the subregion fail to meet the alignment
2745bd8deadSopenharmony_ci    constraints of the format.
2755bd8deadSopenharmony_ci
2765bd8deadSopenharmony_ciSample Code
2775bd8deadSopenharmony_ci
2785bd8deadSopenharmony_ci    TBD
2795bd8deadSopenharmony_ci
2805bd8deadSopenharmony_ciIssues
2815bd8deadSopenharmony_ci
2825bd8deadSopenharmony_ci1) Should there be a single function for all image types, or
2835bd8deadSopenharmony_ci   "per-dimensional" functions?
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ci    Resolved.
2865bd8deadSopenharmony_ci
2875bd8deadSopenharmony_ci    A single function can support all image types.  Not only are
2885bd8deadSopenharmony_ci    per-dimensional functions an unnecessary convenience, they also
2895bd8deadSopenharmony_ci    restrict some of the flexibility offered by this extension,
2905bd8deadSopenharmony_ci    e.g. copying a slice of data between a 2D and a 3D image.
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci2) Should the extension support "deep copies", i.e. multiple slices of
2935bd8deadSopenharmony_ci   a 3D texture, a 2D array texture, or a cubemap?
2945bd8deadSopenharmony_ci
2955bd8deadSopenharmony_ci    Resolved.
2965bd8deadSopenharmony_ci
2975bd8deadSopenharmony_ci    Yes, there may be performance advantages in copying a multiple
2985bd8deadSopenharmony_ci    slices in a single call.
2995bd8deadSopenharmony_ci
3005bd8deadSopenharmony_ci3) Should renderbuffers be supported by the same function as textures?
3015bd8deadSopenharmony_ci
3025bd8deadSopenharmony_ci    Resolved.
3035bd8deadSopenharmony_ci
3045bd8deadSopenharmony_ci    Yes, there is no fundamental difference between the two object
3055bd8deadSopenharmony_ci    classes, and allowing them to be used interchangeably has the
3065bd8deadSopenharmony_ci    advantage of allowing data transfers between them.
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci4) Is the "target" parameter necessary?
3095bd8deadSopenharmony_ci
3105bd8deadSopenharmony_ci    Resolved.
3115bd8deadSopenharmony_ci
3125bd8deadSopenharmony_ci    Yes, given the current object model and texture API, there are two
3135bd8deadSopenharmony_ci    obvious applications of the target parameter:
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci    1) Allows the selection of a single cubemap face.
3165bd8deadSopenharmony_ci    2) Differentiate between TEXTURE and RENDERBUFFER targets.
3175bd8deadSopenharmony_ci
3185bd8deadSopenharmony_ci5) Should the target TEXTURE_CUBE_MAP be supported, and with what
3195bd8deadSopenharmony_ci   behavior?
3205bd8deadSopenharmony_ci
3215bd8deadSopenharmony_ci    Resolved.
3225bd8deadSopenharmony_ci
3235bd8deadSopenharmony_ci    Given the resolution of issue 7, this is moot.  The
3245bd8deadSopenharmony_ci    TEXTURE_CUBE_MAP token is the only way to access a cubemap.
3255bd8deadSopenharmony_ci
3265bd8deadSopenharmony_ci6) Should the "extra" parameters for a given dimension be ignored, or
3275bd8deadSopenharmony_ci   should there be required values?
3285bd8deadSopenharmony_ci
3295bd8deadSopenharmony_ci    Resolved.
3305bd8deadSopenharmony_ci
3315bd8deadSopenharmony_ci    All parameters are required to have sensible values, for the
3325bd8deadSopenharmony_ci    simple reason that future extensions may give meaning to these
3335bd8deadSopenharmony_ci    values.  For dimensions which are currently superfluous, the
3345bd8deadSopenharmony_ci    offset must be zero and the size must be one, e.g. if the target
3355bd8deadSopenharmony_ci    is TEXTURE_2D, z must be 0 and depth must be 1.
3365bd8deadSopenharmony_ci
3375bd8deadSopenharmony_ci7) Should the per-face cubemap targets be accepted at all?  Why not
3385bd8deadSopenharmony_ci   use Z as the selector?
3395bd8deadSopenharmony_ci
3405bd8deadSopenharmony_ci    Resolved.
3415bd8deadSopenharmony_ci
3425bd8deadSopenharmony_ci    The existing per-face targets effectively define the face order:
3435bd8deadSopenharmony_ci
3445bd8deadSopenharmony_ci       face_index = face_target - TEXTURE_CUBE_MAP_POSITIVE_X;
3455bd8deadSopenharmony_ci
3465bd8deadSopenharmony_ci    Therefore it makes sense to generalize a cubemap as an array of
3475bd8deadSopenharmony_ci    size 6, and use the Z parameter to select the face(s).
3485bd8deadSopenharmony_ci
3495bd8deadSopenharmony_ci8) Should the WGL/GLX functions accept a source context as well as a
3505bd8deadSopenharmony_ci   destination context?
3515bd8deadSopenharmony_ci
3525bd8deadSopenharmony_ci    Resolved.
3535bd8deadSopenharmony_ci
3545bd8deadSopenharmony_ci    Yes, the symmetry and flexibility this offers has advantages, and
3555bd8deadSopenharmony_ci    there is no obvious technical reason to disallow this.
3565bd8deadSopenharmony_ci
3575bd8deadSopenharmony_ciRevision History
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ci    Rev.    Date    Author    Changes
3605bd8deadSopenharmony_ci    ----  --------  --------  -----------------------------------------
3615bd8deadSopenharmony_ci     1              gold      Internal revisions.
3625bd8deadSopenharmony_ci     2    09/09/09  mjk       Assign number
3635bd8deadSopenharmony_ci     3    09/16/09  Jon Leech Fix hDstRC->hSrcRC in prototype.
3645bd8deadSopenharmony_ci     4    10/13/11  srahman   Added protocol for the GL command.
3655bd8deadSopenharmony_ci     5    08/07/12  pbrown    Fix the GLX protocol section to clarify that
3665bd8deadSopenharmony_ci                              the first set of protocol is for
3675bd8deadSopenharmony_ci                              glXCopyImageSubDataNV and not the GL command.
368