vdpau.h   vdpau.h 
skipping to change at line 831 skipping to change at line 831
* *
* The UV plane is an array of interleaved byte-sized U and V * The UV plane is an array of interleaved byte-sized U and V
* components, in the order U, V, U, V. Applications should * components, in the order U, V, U, V. Applications should
* access this data via a uint8_t pointer. * access this data via a uint8_t pointer.
*/ */
#define VDP_YCBCR_FORMAT_NV12 (VdpYCbCrFormat)0 #define VDP_YCBCR_FORMAT_NV12 (VdpYCbCrFormat)0
/** /**
* \hideinitializer * \hideinitializer
* \brief The "YV12" YCbCr surface format. * \brief The "YV12" YCbCr surface format.
* *
* This format has a three planes, a Y plane, a U plane, and a V * This format has a three planes, a Y plane, a V plane, and a U
* plane. * plane.
* *
* Each of the planes is an array of byte-sized components. * Each of the planes is an array of byte-sized components.
* *
* Applications should access this data via a uint8_t pointer. * Applications should access this data via a uint8_t pointer.
*/ */
#define VDP_YCBCR_FORMAT_YV12 (VdpYCbCrFormat)1 #define VDP_YCBCR_FORMAT_YV12 (VdpYCbCrFormat)1
/** /**
* \hideinitializer * \hideinitializer
* \brief The "UYVY" YCbCr surface format. * \brief The "UYVY" YCbCr surface format.
skipping to change at line 2147 skipping to change at line 2147
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT = 1, VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT = 1,
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD = 2, VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD = 2,
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN = 3, VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN = 3,
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX = 4, VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX = 4,
} VdpOutputSurfaceRenderBlendEquation; } VdpOutputSurfaceRenderBlendEquation;
#define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0
/** /**
* \brief Complete blending operation definition. * \brief Complete blending operation definition.
*
* A "blend state" operation controls the math behind certain rendering
* operations.
*
* The blend math is the familiar OpenGL blend math:
* \f[
* dst.a = equation(blendFactorDstAlpha*dst.a,
* blendFactorSrcAlpha*src.a);
* \f]
* \f[
* dst.rgb = equation(blendFactorDstColor*dst.rgb,
* blendFactorSrcColor*src.rgb);
* \f]
*
* Note that when equation is MIN or MAX, the blend factors and constants
* are ignored, and are treated as if they were 1.0.
*/ */
typedef struct { typedef struct {
/** /**
* This field must be filled with VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE _VERSIION * This field must be filled with VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE _VERSIION
*/ */
uint32_t struct_version; uint32_t struct_version;
VdpOutputSurfaceRenderBlendFactor blend_factor_source_color; VdpOutputSurfaceRenderBlendFactor blend_factor_source_color;
VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color; VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color;
VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha; VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha;
VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha; VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha;
skipping to change at line 2240 skipping to change at line 2256
* post-rotation source (i.e. indices 0, 1, 2 and 3 run * post-rotation source (i.e. indices 0, 1, 2 and 3 run
* clockwise from the upper left corner). If the flag * clockwise from the upper left corner). If the flag
* VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX is not * VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX is not
* set, VDPAU will use the single VdpColor for all four * set, VDPAU will use the single VdpColor for all four
* corners. If colors is NULL then red, green, blue and * corners. If colors is NULL then red, green, blue and
* alpha values of 1.0 will be used. * alpha values of 1.0 will be used.
* \param[in] blend_state If a blend state is provided, the * \param[in] blend_state If a blend state is provided, the
* blend state will be used for the composite operation. If * blend state will be used for the composite operation. If
* NULL, blending is effectively disabled, which is * NULL, blending is effectively disabled, which is
* equivalent to a blend equation of ADD, source blend * equivalent to a blend equation of ADD, source blend
* factors of ONE and destination blend factors of ZERO. The * factors of ONE and destination blend factors of ZERO.
* blend math is the familiar OpenGL blend math: * See \ref VdpOutputSurfaceRenderBlendState for details
* \f[ * regarding the mathematics of the blending operation.
* dst.a = equation(blendFactorDstAlpha*dst.a,
* blendFactorSrcAlpha*src.a);
* \f]
* \f[
* dst.rgb = equation(blendFactorDstColor*dst.rgb,
* blendFactorSrcColor*src.rgb);
* \f]
* \param[in] flags A set of flags influencing how the * \param[in] flags A set of flags influencing how the
* compositing operation works. * compositing operation works.
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_0
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_90
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_180
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_270
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX * \arg \ref VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX
* \return VdpStatus The completion status of the operation. * \return VdpStatus The completion status of the operation.
* *
* The general compositing pipeline is as follows. * The general compositing pipeline is as follows.
skipping to change at line 2327 skipping to change at line 2336
* post-rotation source (i.e. indices 0, 1, 2 and 3 run * post-rotation source (i.e. indices 0, 1, 2 and 3 run
* clockwise from the upper left corner). If the flag * clockwise from the upper left corner). If the flag
* VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX is not * VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX is not
* set, VDPAU will use the single VdpColor for all four * set, VDPAU will use the single VdpColor for all four
* corners. If colors is NULL then red, green, blue and * corners. If colors is NULL then red, green, blue and
* alpha values of 1.0 will be used. * alpha values of 1.0 will be used.
* \param[in] blend_state If a blend state is provided, the * \param[in] blend_state If a blend state is provided, the
* blend state will be used for the composite operation. If * blend state will be used for the composite operation. If
* NULL, blending is effectively disabled, which is * NULL, blending is effectively disabled, which is
* equivalent to a blend equation of ADD, source blend * equivalent to a blend equation of ADD, source blend
* factors of ONE and destination blend factors of ZERO. The * factors of ONE and destination blend factors of ZERO.
* blend math is the familiar OpenGL blend math: * See \ref VdpOutputSurfaceRenderBlendState for details
* \f[ * regarding the mathematics of the blending operation.
* dst.a = equation(blendFactorDstAlpha*dst.a,
* blendFactorSrcAlpha*src.a);
* \f]
* \f[
* dst.rgb = equation(blendFactorDstColor*dst.rgb,
* blendFactorSrcColor*src.rgb);
* \f]
* \param[in] flags A set of flags influencing how the * \param[in] flags A set of flags influencing how the
* compositing operation works. * compositing operation works.
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_0
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_90
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_180
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 * \arg \ref VDP_OUTPUT_SURFACE_RENDER_ROTATE_270
* \arg \ref VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX * \arg \ref VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX
* \return VdpStatus The completion status of the operation. * \return VdpStatus The completion status of the operation.
* *
* The general compositing pipeline is as follows. * The general compositing pipeline is as follows.
skipping to change at line 3993 skipping to change at line 3995
* displayed region of a surface, in order to match the specific region tha t * displayed region of a surface, in order to match the specific region tha t
* was rendered to. * was rendered to.
* *
* In turn, this allows the application to allocate over-sized (e.g. * In turn, this allows the application to allocate over-sized (e.g.
* screen-sized) surfaces, but render to a region that matches the current * screen-sized) surfaces, but render to a region that matches the current
* size of the video window. * size of the video window.
* *
* Using this technique, an application's response to window resizing may * Using this technique, an application's response to window resizing may
* simply be to render to, and display, a different region of the surface, * simply be to render to, and display, a different region of the surface,
* rather than de-/re-allocation of surfaces to match the updated window si ze. * rather than de-/re-allocation of surfaces to match the updated window si ze.
*
* Implementations may impose an upper bound on the number of entries
* contained by the presentation queue at a given time. This limit is likel
y
* different to the number of \ref VdpOutputSurface "VdpOutputSurface"s tha
t
* may be allocated at a given time. This limit applies to entries in the
* QUEUED or VISIBLE state only. In other words, entries that have
* transitioned from a QUEUED or VISIBLE state to an IDLE state do not coun
t
* toward this limit.
*/ */
typedef VdpStatus VdpPresentationQueueDisplay( typedef VdpStatus VdpPresentationQueueDisplay(
VdpPresentationQueue presentation_queue, VdpPresentationQueue presentation_queue,
VdpOutputSurface surface, VdpOutputSurface surface,
uint32_t clip_width, uint32_t clip_width,
uint32_t clip_height, uint32_t clip_height,
VdpTime earliest_presentation_time VdpTime earliest_presentation_time
); );
/** /**
* \brief Wait for a surface to finish being displayed. * \brief Wait for a surface to finish being displayed.
* \param[in] presentation_queue The queue to query. * \param[in] presentation_queue The queue to query.
* \param[in] surface The surface to wait for. * \param[in] surface The surface to wait for.
* \param[out] first_presentation_time The timestamp of the * \param[out] first_presentation_time The timestamp of the
* VSYNC at which this surface was first displayed. Note * VSYNC at which this surface was first displayed. Note
* that 0 means the surface was never displayed. * that 0 means the surface was never displayed.
* \return VdpStatus The completion status of the operation. * \return VdpStatus The completion status of the operation.
* *
* Note that this API will block indefinitely if queried about * Note that this API would block forever if queried about the surface most
* the surface most recently added to a presentation queue, * recently added to a presentation queue. That is because there would be n
* since there is no other surface that could possibly replace o
* the queried surface. * other surface that could possibly replace that surface as the currently
* displayed surface, and hence that surface would never become idle. For
* that reason, this function will return an error in that case.
*/ */
typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle( typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
VdpPresentationQueue presentation_queue, VdpPresentationQueue presentation_queue,
VdpOutputSurface surface, VdpOutputSurface surface,
/* output parameters follow */ /* output parameters follow */
VdpTime * first_presentation_time VdpTime * first_presentation_time
); );
/** /**
* \hideinitializer * \hideinitializer
 End of changes. 6 change blocks. 
25 lines changed or deleted 40 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/