Adds a cubic polynomial segment to the animation function.
A cubic segment transitions time along a cubic polynomial. For a given time input (t), the output value is given by the following equation.
x(t) = at3 + bt2 + ct + d
This method fails if any of the parameters are NaN, positive infinity, or negative infinity.
Because animation segments must be added in increasing order, this method fails if the beginOffset parameter is less than or equal to the beginOffset parameter of the previous segment, if any.
This animation segment remains in effect until the begin time of the next segment in the animation function. If the animation function contains no more segments, this segment remains in effect indefinitely.
If all coefficients except constantCoefficient are zero, the value of this segment remains constant over time, and the animation does not cause a recomposition for the duration of the segment.
Resets the animation function so that it contains no segments.
If the function succeeds, it returns
This method returns the animation function to a clean state, as when the animation was first constructed. After this method is called, the next segment to be added becomes the first segment of the animation function. Because it is the first segment, it can have any non-negative beginning offset.
Sets the absolute time at which the animation function starts.
The starting time for this animation.
If the function succeeds, it returns
By default, an animation function starts when the first frame of the animation takes effect. For example, if an application creates a simple animation function with a single primitive at offset zero, associates the animation with some property, and then calls the
This method does not control when animations take effect; it only affects how animations are sampled after they start. If the application specifies the exact time of the next frame as the absolute begin time, the result is the same as not calling this method at all. If the specified begin time is different from the time of the next frame, the result is one of following:
Adds a cubic polynomial segment to the animation function.
The offset, in seconds, from the beginning of the animation function to the point when this segment should take effect.
The constant coefficient of the polynomial.
The linear coefficient of the polynomial.
The quadratic coefficient of the polynomial.
The cubic coefficient of the polynomial.
If the function succeeds, it returns
A cubic segment transitions time along a cubic polynomial. For a given time input (t), the output value is given by the following equation.
x(t) = at3 + bt2 + ct + d
This method fails if any of the parameters are NaN, positive infinity, or negative infinity.
Because animation segments must be added in increasing order, this method fails if the beginOffset parameter is less than or equal to the beginOffset parameter of the previous segment, if any.
This animation segment remains in effect until the begin time of the next segment in the animation function. If the animation function contains no more segments, this segment remains in effect indefinitely.
If all coefficients except constantCoefficient are zero, the value of this segment remains constant over time, and the animation does not cause a recomposition for the duration of the segment.
Adds a sinusoidal segment to the animation function.
The offset, in seconds, from the beginning of the animation function to the point when this segment should take effect.
A constant that is added to the sinusoidal.
A scale factor that is applied to the sinusoidal.
A scale factor that is applied to the time offset, in Hertz.
A constant that is added to the time offset, in degrees.
If the function succeeds, it returns
This method fails if any of the parameters are NaN, positive infinity, or negative infinity, or if the beginOffset parameter is negative.
Because animation segments must be added in increasing order, this method fails if the beginOffset parameter is less than or equal to the beginOffset parameter of the previous segment, if any.
This animation segment remains in effect until the begin time of the next segment in the animation function. If the animation function contains no more segments, this segment remains in effect indefinitely.
Adds a repeat segment that causes the specified portion of an animation function to be repeated.
The offset, in seconds, from the beginning of the animation to the point at which the repeat should begin.
The duration, in seconds, of a portion of the animation immediately preceding the begin time that is specified by beginOffset. This is the portion that will be repeated.
If the function succeeds, it returns
This method fails if any of the parameters are NaN, positive infinity, or negative infinity.
Because animation segments must be added in increasing order, this method fails if the beginOffset parameter is less than or equal to the beginOffset parameter of the previous segment. This method also fails if this is the first segment to be added to the animation function.
This animation segment remains in effect until the begin time of the next segment. If the animation function contains no more segments, this segment remains in effect indefinitely.
Adds an end segment that marks the end of an animation function.
The offset, in seconds, from the beginning of the animation function to the point when the function ends.
The final value of the animation.
If the function succeeds, it returns
When the specified offset is reached, the property or properties affected by this animation are set to the specified final value, and then the animation stops. If no end segment is added, the final segment of the animation function runs indefinitely. Calling this method is semantically identical to making the last segment of the animation function a cubic polynomial where the cubic, quadratic, and linear coefficients are all zeros, and the constant coefficient is the desired final value.
Because animation segments must be added in increasing order, this method fails if the endOffset parameter is less than or equal to the beginOffset parameter of the previous segment. This method also fails if this is the first segment to be added to the animation function.
After this method is called, all methods on this animation object fail except the
Sets the absolute time at which the animation function starts.
By default, an animation function starts when the first frame of the animation takes effect. For example, if an application creates a simple animation function with a single primitive at offset zero, associates the animation with some property, and then calls the
This method does not control when animations take effect; it only affects how animations are sampled after they start. If the application specifies the exact time of the next frame as the absolute begin time, the result is the same as not calling this method at all. If the specified begin time is different from the time of the next frame, the result is one of following:
An application must use the
Serves as a factory for all other Microsoft DirectComposition objects and provides methods to control transactional composition.
Commits all DirectComposition commands that are pending on this device.
If the function succeeds, it returns
Calls to DirectComposition methods are always batched and executed atomically as a single transaction. Calls take effect only when
An application that uses multiple devices must call Commit for each device separately. However, because the composition engine processes the calls individually, the batch of commands might not take effect at the same time.
Waits for the composition engine to finish processing the previous call to the
If the function succeeds, it returns
Retrieves information from the composition engine about composition times and the frame rate.
A structure that receives composition times and frame rate information.
If the function succeeds, it returns
This method retrieves timing information about the composition engine that an application can use to synchronize the rasterization of bitmaps with independent animations.
Creates a new visual object.
The new visual object. This parameter must not be
If the function succeeds, it returns
A new visual object has a static value of zero for the OffsetX and OffsetY properties, and
Creates a Microsoft DirectComposition surface factory object, which can be used to create other DirectComposition surface or virtual surface objects
A reference to a DirectX device to be used to create DirectComposition surface objects. Must be a reference to an object implementing the
The newly created surface factory object. This parameter must not be
If the function succeeds, it returns
A surface factory allows an application to simultaneously use more than one single DXGI or Direct2D device with DirectComposition. Each surface factory has a permanent association with one DXGI or Direct2D device, but a DirectComposition device may have any number of surface factories.
Each surface factory manages resources independently from the others. In particular, DirectComposition pools surface allocations to mitigate surface allocation and deallocation costs. This pool is done on a per-surface factory basis.
If the
A surface object remains alive as long as any of the surfaces or virtual surfaces that it created remain alive, either directly because the application holds a direct reference, or indirectly because one or more such surfaces are associated with one or more visual objects.
Creates an updateable surface object that can be associated with one or more visuals for composition.
The width of the surface, in pixels. Constrained by the feature level of the rendering device that was passed in at the time the DirectComposition device was created.
The height of the surface, in pixels. Constrained by the feature level of the rendering device that was passed in at the time the DirectComposition device was created.
The pixel format of the surface.
The format of the alpha channel, if an alpha channel is included in the pixel format. It can be one of the following values:
Value | Meaning |
---|---|
The alpha channel is not specified. This value has the same effect as | |
The color channels contain values that are premultiplied with the alpha channel. | |
The alpha channel should be ignored and the bitmap should be rendered opaquely. |
?
The newly created surface object. This parameter must not be
If the function succeeds, it returns
A Microsoft DirectComposition surface is a rectangular array of pixels that can be associated with a visual for composition.
A newly created surface object is in an uninitialized state. While it is uninitialized, the surface has no effect on the composition of the visual tree. It behaves exactly like a surface that has 100% transparent pixels.
To initialize the surface with pixel data, use the
DirectComposition surfaces support the following pixel formats:
Creates a sparsely populated surface that can be associated with one or more visuals for composition.
The width of the surface, in pixels. The maximum width is 16,777,216 pixels.
The height of the surface, in pixels. The maximum height is 16,777,216 pixels.
The pixel format of the surface.
The meaning of the alpha channel, if the pixel format contains an alpha channel. It can be one of the following values:
Value | Meaning |
---|---|
The alpha channel is not specified. This value has the same effect as | |
The color channels contain values that are premultiplied with the alpha channel. | |
The alpha channel should be ignored and the bitmap should be rendered opaquely. |
?
The newly created surface object. This parameter must not be
If the function succeeds, it returns
A Microsoft DirectComposition sparse surface is a logical object that behaves like a rectangular array of pixels that can be associated with a visual for composition. The surface is not necessarily backed by any physical video or system memory for every one of its pixels. The application can realize or virtualize parts of the logical surface at different times.
A newly created surface object is in an uninitialized state. While it is uninitialized, the surface has no effect on the composition of the visual tree. It behaves exactly like a surface that is initialized with 100% transparent pixels.
To initialize the surface with pixel data, use the
DirectComposition surfaces support the following pixel formats:
This method fails if initialWidth or initialHeight exceeds 16,777,216 pixels.
Creates a 2D translation transform object.
The new 2D translation transform object. This parameter must not be
If the function succeeds, it returns
A new 2D translation transform object has a static value of zero for the OffsetX and OffsetY properties.
Creates a 2D scale transform object.
The new 2D scale transform object. This parameter must not be
If the function succeeds, it returns
A new 2D scale transform object has a static value of zero for the ScaleX, ScaleY, CenterX, and CenterY properties.
Creates a 2D rotation transform object.
The new rotation transform object. This parameter must not be
If the function succeeds, it returns
A new 2D rotation transform object has a static value of zero for the Angle, CenterX, and CenterY properties.
Creates a 2D skew transform object.
The new 2D skew transform object. This parameter must not be
If the function succeeds, it returns
A new 2D skew transform object has a static value of zero for the AngleX, AngleY, CenterX, and CenterY properties.
Creates a 2D 3-by-2 matrix transform object.
The new matrix transform object. This parameter must not be
If the function succeeds, it returns
A new matrix transform object has the identity matrix as its initial value. The identity matrix is the 3x2 matrix with ones on the main diagonal and zeros elsewhere, as shown in the following illustration.
When an identity transform is applied to an object, it does not change the position, shape, or size of the object. It is similar to the way that multiplying a number by one does not change the number. Any transform other than the identity transform will modify the position, shape, and/or size of objects.
Creates a 2D transform group object that holds an array of 2D transform objects.
An array of 2D transform objects that make up this transform group.
The number of elements in the transforms array.
The new transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates a 2D transform group object that holds an array of 2D transform objects.
An array of 2D transform objects that make up this transform group.
The number of elements in the transforms array.
The new transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates a 3D translation transform object.
The new 3D translation transform object. This parameter must not be
If this method succeeds, it returns
A newly created 3D translation transform has a static value of 0 for the OffsetX, OffsetY, and OffsetZ properties.
Creates a 3D scale transform object.
The new 3D scale transform object. This parameter must not be
If the function succeeds, it returns
A new 3D scale transform object has a static value of 1.0 for the ScaleX, ScaleY, and ScaleZ properties.
Creates a 3D rotation transform object.
The new 3D rotation transform object. This parameter must not be
If the function succeeds, it returns
A new 3D rotation transform object has a default static value of zero for the Angle, CenterX, CenterY, CenterZ, AxisX, and AxisY properties, and a default static value of 1.0 for the AxisZ property.
Creates a 3D 4-by-4 matrix transform object.
The new 3D matrix transform object. This parameter must not be
If the function succeeds, it returns
The new 3D matrix transform has the identity matrix as its value. The identity matrix is the 4-by-4 matrix with ones on the main diagonal and zeros elsewhere, as shown in the following illustration.
When an identity transform is applied to an object, it does not change the position, shape, or size of the object. It is similar to the way that multiplying a number by one does not change the number. Any transform other than the identity transform will modify the position, shape, and/or size of objects.
Creates a 3D transform group object that holds an array of 3D transform objects.
An array of 3D transform objects that make up this transform group.
The number of elements in the transforms array.
The new 3D transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a 3D transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates a 3D transform group object that holds an array of 3D transform objects.
An array of 3D transform objects that make up this transform group.
The number of elements in the transforms array.
The new 3D transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a 3D transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates an object that represents multiple effects to be applied to a visual subtree.
The new effect group object. This parameter must not be
If the function succeeds, it returns
An effect group enables an application to apply multiple effects to a single visual subtree.
A new effect group has a default opacity value of 1.0 and no 3D transformations.
To set the opacity and transform values, use the corresponding methods on the
Creates a clip object that can be used to restrict the rendering of a visual subtree to a rectangular area.
The new clip object. This parameter must not be
If the function succeeds, it returns
A newly created clip object has a static value of FLT_MAX for the left and top properties, and a static value of ?FLT_MAX for the right and bottom properties, effectively making it a no-op clip object.
Creates an animation object that is used to animate one or more scalar properties of one or more Microsoft DirectComposition objects.
The new animation object. This parameter must not be
If the function succeeds, it returns
A number of DirectComposition object properties can have an animation object as the value of the property. When a property has an animation object as its value, DirectComposition redraws the visual at the refresh rate to reflect the changing value of the property that is being animated.
A newly created animation object does not have any animation segments associated with it. An application must use the methods of the
Retrieves information from the composition engine about composition times and the frame rate.
This method retrieves timing information about the composition engine that an application can use to synchronize the rasterization of bitmaps with independent animations.
Creates a composition target object that is bound to the window that is represented by the specified window handle.
The window to which the composition target object should be bound. This parameter must not be
TRUE if the visual tree should be displayed on top of the children of the window specified by the hwnd parameter; otherwise, the visual tree is displayed behind the children.
The new composition target object. This parameter must not be
A DirectComposition visual tree must be bound to a window before anything can be displayed on screen. The window can be a top-level window or a child window. In either case, the window can be a layered window, but in all cases the window must belong to the calling process. If the window belongs to a different process, this method returns DCOMPOSITION_ERROR_ACCESS_DENIED.
When DirectComposition content is composed to the window, the content is always composed on top of whatever is drawn directly to that window through the device context returned by the GetDC function, or by calls to DirectX Present methods. However, because window clipping rules apply to DirectComposition content, if the window has child windows, those child windows may clip the visual tree. The topmost parameter determines whether child windows clip the visual tree.
Conceptually, each window consists of four layers:
All four layers are clipped to the window?s visible region.
At most, only two composition targets can be created for each window in the system, one topmost and one not topmost. If a composition target is already bound to the specified window at the specified layer, this method fails. When a composition target object is destroyed, the layer it composed is available for use by a new composition target object.
Creates a new composition surface object that wraps an existing composition surface.
The handle of an existing composition surface that was created by a call to the
The new composition surface object. This parameter must not be
Creates a wrapper object that represents the rasterization of a layered window, and that can be associated with a visual for composition.
The handle of the layered window for which to create a wrapper. A layered window is created by specifying WS_EX_LAYERED when creating the window with the CreateWindowEx function or by setting WS_EX_LAYERED via SetWindowLong after the window has been created.
The new composition surface object. This parameter must not be
You can use the surface reference in calls to the
The contents of the window are not cached beyond the life of the window. That is, if the window is destroyed, the affected visuals stop composing the window.
If the window is moved off-screen or resized to zero, the system stops composing the content of those visuals. You should use the DwmSetWindowAttribute function with the DWMWA_CLOAK flag to "cloak" the layered child window when you need to hide the original window while allowing the system to continue to compose the content of the visuals.
Serves as a factory for all other Microsoft DirectComposition objects and provides methods to control transactional composition.
Commits all DirectComposition commands that are pending on this device.
If the function succeeds, it returns
Calls to DirectComposition methods are always batched and executed atomically as a single transaction. Calls take effect only when
An application that uses multiple devices must call Commit for each device separately. However, because the composition engine processes the calls individually, the batch of commands might not take effect at the same time.
Waits for the composition engine to finish processing the previous call to the
If the function succeeds, it returns
Retrieves information from the composition engine about composition times and the frame rate.
A structure that receives composition times and frame rate information.
If the function succeeds, it returns
This method retrieves timing information about the composition engine that an application can use to synchronize the rasterization of bitmaps with independent animations.
Creates a composition target object that is bound to the window that is represented by the specified window handle (
If the function succeeds, it returns
A Microsoft DirectComposition visual tree must be bound to a window before anything can be displayed on screen. The window can be a top-level window or a child window. In either case, the window can be a layered window, but in all cases the window must belong to the calling process. If the window belongs to a different process, this method returns DCOMPOSITION_ERROR_ACCESS_DENIED.
When DirectComposition content is composed to the window, the content is always composed on top of whatever is drawn directly to that window through the device context (
Conceptually, each window consists of four layers:
All four layers are clipped to the window's visible region.
At most, only two composition targets can be created for each window in the system, one topmost and one not topmost. If a composition target is already bound to the specified window at the specified layer, this method fails. When a composition target object is destroyed, the layer it composed is available for use by a new composition target object.
Creates a new visual object.
The new visual object. This parameter must not be
If the function succeeds, it returns
A new visual object has a static value of zero for the OffsetX and OffsetY properties, and
Creates an updateable surface object that can be associated with one or more visuals for composition.
The width of the surface, in pixels.
The height of the surface, in pixels.
The pixel format of the surface.
The format of the alpha channel, if an alpha channel is included in the pixel format. It can be one of the following values:
Value | Meaning |
---|---|
The alpha channel is not specified. This value has the same effect as | |
The color channels contain values that are premultiplied with the alpha channel. | |
The alpha channel should be ignored and the bitmap should be rendered opaquely. |
?
The newly created surface object. This parameter must not be
If the function succeeds, it returns
A Microsoft DirectComposition surface is a rectangular array of pixels that can be associated with a visual for composition.
A newly created surface object is in an uninitialized state. While it is uninitialized, the surface has no effect on the composition of the visual tree. It behaves exactly like a surface that has 100% transparent pixels.
To initialize the surface with pixel data, use the
DirectComposition surfaces support the following pixel formats:
Creates a sparsely populated surface that can be associated with one or more visuals for composition.
The width of the surface, in pixels. The maximum width is 16,777,216 pixels.
The height of the surface, in pixels. The maximum height is 16,777,216 pixels.
The pixel format of the surface.
The meaning of the alpha channel, if the pixel format contains an alpha channel. It can be one of the following values:
Value | Meaning |
---|---|
The alpha channel is not specified. This value has the same effect as | |
The color channels contain values that are premultiplied with the alpha channel. | |
The alpha channel should be ignored and the bitmap should be rendered opaquely. |
?
The newly created surface object. This parameter must not be
If the function succeeds, it returns
A Microsoft DirectComposition sparse surface is a logical object that behaves like a rectangular array of pixels that can be associated with a visual for composition. The surface is not necessarily backed by any physical video or system memory for every one of its pixels. The application can realize or virtualize parts of the logical surface at different times.
A newly created surface object is in an uninitialized state. While it is uninitialized, the surface has no effect on the composition of the visual tree. It behaves exactly like a surface that is initialized with 100% transparent pixels.
To initialize the surface with pixel data, use the
DirectComposition surfaces support the following pixel formats:
This method fails if initialWidth or initialHeight exceeds 16,777,216 pixels.
Creates a new composition surface object that wraps an existing composition surface.
The handle of an existing composition surface that was created by a call to the
The new composition surface object. This parameter must not be
If the function succeeds, it returns
This method enables an application to use a shared composition surface in a composition tree.
Creates a wrapper object that represents the rasterization of a layered window, and that can be associated with a visual for composition.
The handle of the layered window for which to create a wrapper. A layered window is created by specifying WS_EX_LAYERED when creating the window with the CreateWindowEx function or by setting WS_EX_LAYERED via SetWindowLong after the window has been created.
The new composition surface object. This parameter must not be
If the function succeeds, it returns
You can use the surface reference in calls to the
The contents of the window are not cached beyond the life of the window. That is, if the window is destroyed, the affected visuals stop composing the window.
If the window is moved off-screen or resized to zero, the system stops composing the content of visuals. You should use the DwmSetWindowAttribute function with the DWMWA_CLOAK flag to "cloak" the layered child window when you need to hide the original window while allowing the system to continue to compose the content of the visuals. For more information, see How to animate the bitmap of a layered child window and DirectComposition layered child window sample.
Creates a 2D translation transform object.
The new 2D translation transform object. This parameter must not be
If the function succeeds, it returns
A new 2D translation transform object has a static value of zero for the OffsetX and OffsetY properties.
Creates a 2D scale transform object.
The new 2D scale transform object. This parameter must not be
If the function succeeds, it returns
A new 2D scale transform object has a static value of zero for the ScaleX, ScaleY, CenterX, and CenterY properties.
Creates a 2D rotation transform object.
The new rotation transform object. This parameter must not be
If the function succeeds, it returns
A new 2D rotation transform object has a static value of zero for the Angle, CenterX, and CenterY properties.
Creates a 2D skew transform object.
The new 2D skew transform object. This parameter must not be
If the function succeeds, it returns
A new 2D skew transform object has a static value of zero for the AngleX, AngleY, CenterX, and CenterY properties.
Creates a 2D 3-by-2 matrix transform object.
The new matrix transform object. This parameter must not be
If the function succeeds, it returns
A new matrix transform object has the identity matrix as its initial value. The identity matrix is the 3x2 matrix with ones on the main diagonal and zeros elsewhere, as shown in the following illustration.
When an identity transform is applied to an object, it does not change the position, shape, or size of the object. It is similar to the way that multiplying a number by one does not change the number. Any transform other than the identity transform will modify the position, shape, and/or size of objects.
Creates a 2D transform group object that holds an array of 2D transform objects.
An array of 2D transform objects that make up this transform group.
The number of elements in the transforms array.
The new transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates a 2D transform group object that holds an array of 2D transform objects.
An array of 2D transform objects that make up this transform group.
The number of elements in the transforms array.
The new transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates a 3D translation transform object.
The new 3D translation transform object. This parameter must not be
If this method succeeds, it returns
A newly created 3D translation transform has a static value of 0 for the OffsetX, OffsetY, and OffsetZ properties.
Creates a 3D scale transform object.
The new 3D scale transform object. This parameter must not be
If the function succeeds, it returns
A new 3D scale transform object has a static value of 1.0 for the ScaleX, ScaleY, and ScaleZ properties.
Creates a 3D rotation transform object.
The new 3D rotation transform object. This parameter must not be
If the function succeeds, it returns
A new 3D rotation transform object has a default static value of zero for the Angle, CenterX, CenterY, AxisX, and AxisY properties, and a default static value of 1.0 for the AxisZ property.
Creates a 3D 4-by-4 matrix transform object.
The new 3D matrix transform object. This parameter must not be
If the function succeeds, it returns
The new 3D matrix transform has the identity matrix as its value. The identity matrix is the 4-by-4 matrix with ones on the main diagonal and zeros elsewhere, as shown in the following illustration.
When an identity transform is applied to an object, it does not change the position, shape, or size of the object. It is similar to the way that multiplying a number by one does not change the number. Any transform other than the identity transform will modify the position, shape, and/or size of objects.
Creates a 3D transform group object that holds an array of 3D transform objects.
An array of 3D transform objects that make up this transform group.
The number of elements in the transforms array.
The new 3D transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a 3D transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates a 3D transform group object that holds an array of 3D transform objects.
An array of 3D transform objects that make up this transform group.
The number of elements in the transforms array.
The new 3D transform group object. This parameter must not be
If the function succeeds, it returns
The array entries in a 3D transform group cannot be changed. However, each transform in the array can be modified through its own property setting methods. If a transform in the array is modified, the change is reflected in the computed matrix of the transform group.
Creates an object that represents multiple effects to be applied to a visual subtree.
The new effect group object. This parameter must not be
If the function succeeds, it returns
An effect group enables an application to apply multiple effects to a single visual subtree.
A new effect group has a default opacity value of 1.0 and no 3D transformations.
Creates a clip object that can be used to restrict the rendering of a visual subtree to a rectangular area.
The new clip object. This parameter must not be
If the function succeeds, it returns
A newly created clip object has a static value of ?FLT_MAX for the left and top properties, and a static value of ?FLT_MAX for the right and bottom properties, effectively making it a no-op clip object.
Creates an animation object that is used to animate one or more scalar properties of one or more Microsoft DirectComposition objects.
The new animation object. This parameter must not be
If the function succeeds, it returns
A number of DirectComposition object properties can have an animation object as the value of the property. When a property has an animation object as its value, DirectComposition redraws the visual at the refresh rate to reflect the changing value of the property that is being animated.
A newly created animation object does not have any animation segments associated with it. An application must use the methods of the
Determines whether the DirectComposition device object is still valid.
TRUE if the DirectComposition device object is still valid; otherwise
If the function succeeds, it returns
If the Microsoft DirectX Graphics Infrastructure (DXGI) device is lost, the DirectComposition device associated with the DXGI device is also lost. When it detects a lost device, DirectComposition sends the WM_PAINT message to all windows that are composing DirectComposition content using the lost device. An application should call CheckDeviceState in response to each WM_PAINT message to ensure that the DirectComposition device object is still valid. The application must take steps to recover content if the device object becomes invalid. Steps include creating new DXGI and DirectComposition devices, and recreating all content. (It?s not possible to create just a new DXGI device and associate it with the existing DirectComposition device.) The system ensures that the device object remains valid between WM_PAINT messages.
Retrieves information from the composition engine about composition times and the frame rate.
This method retrieves timing information about the composition engine that an application can use to synchronize the rasterization of bitmaps with independent animations.
Represents a group of bitmap effects that are applied together to modify the rasterization of a visual's subtree.
Represents a bitmap effect that modifies the rasterization of a visual's subtree.
More than one effect can be simultaneously applied to a visual by using the
Animates the value of the Opacity property.
An animation that represents how the value of the Opacity property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Opacity property unless this method is called again. If the Opacity property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the Opacity property.
An animation that represents how the value of the Opacity property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Opacity property unless this method is called again. If the Opacity property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Sets the 3D transformation effect object that modifies the rasterization of the visuals that this effect group is applied to.
Pointer to an
If the function succeeds, it returns
This method fails if transform3D is an invalid reference, or if the reference was not created by the same
If the transform3D parameter is
Sets the 3D transformation effect object that modifies the rasterization of the visuals that this effect group is applied to.
This method fails if transform3D is an invalid reference, or if the reference was not created by the same
If the transform3D parameter is
Represents an arbitrary affine 2D transformation defined by a 3-by-2 matrix.
Represents a 2D transformation that can be used to modify the coordinate space of a visual subtree.
The
Transforms operate by modifying the coordinate system for all rendering operations on a visual. For example, ordinarily a bitmap that is associated with a visual draws at position (0,0) and extends the full width and height of the bitmap. If a translation transform is applied, the bitmap draws at a position that is offset by that transform. If a scale transform is applied, the extent covered by the bitmap is affected by the scale transform. More than one transform can be simultaneously applied to a visual by using the
Represents a 3D transformation effect that can be used to modify the rasterization of a visual subtree.
The
Changes all values of the matrix of this 2D transform.
The new matrix for this 2D transform.
If the function succeeds, it returns
This method fails if any of the matrix values are NaN, positive infinity, or negative infinity.
If any of the matrix elements were previously animated, this method removes the animations and sets the elements to the specified static value.
Represents an arbitrary 3D transformation defined by a 4-by-4 matrix.
A 3D matrix transform represents the following 4-by-4 matrix:
The application can set any of the values in the first three columns. Note that the fourth column is padded to allow for matrix concatenation.
Changes all values of the matrix of this 3D transformation effect.
The new matrix for this 3D transformation effect.
If the function succeeds, it returns
This method fails if any of the matrix values are NaN, positive infinity, or negative infinity.
If any of the matrix elements were previously animated, this method removes the animations and sets the elements to the specified static value.
Animates the value of one element of the matrix of this 3D transform.
The row index of the element to change. This value must be between 0 and 3, inclusive.
The column index of the element to change. This value must be between 0 and 3, inclusive.
An animation that represents how the value of the specified element changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the specified element unless this method is called again. If the specified element was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of one element of the matrix of this 3D transform.
The row index of the element to change. This value must be between 0 and 3, inclusive.
The column index of the element to change. This value must be between 0 and 3, inclusive.
An animation that represents how the value of the specified element changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the specified element unless this method is called again. If the specified element was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Specifies the backface visibility to be applied to a visual.
Surfaces in this visual's sub-tree are visible regardless of transformation.
Surfaces in this visual's sub-tree are only visible when facing the observer.
The back face visibility is the same as that of the target visual's parent visual.
Specifies the interpolation mode to be used when a bitmap is composed with any transform where the pixels in the bitmap don't line up exactly one-to-one with pixels on screen.
The default interpolation mode for a visual is
A single visual can have any combination of visual properties. However, if a
visual has the following combination of properties, the borders of the visual will default
to
SetCompositeMode( )
SetBorderMode( )
SetBitmapInterpolationMode( )
If you want a visual to be drawn with antialiasing, use
Bitmaps are interpolated by using nearest-neighbor sampling.
Bitmaps are interpolated by using linear sampling.
Bitmaps are interpolated according to the mode established by the parent visual.
Specifies the border mode to use when composing a bitmap or applying a clip with any transform such that the edges of the bitmap or clip are not axis-aligned with integer coordinates.
The default border mode for any given visual is
A single visual can have any combination of visual properties. However, if a
visual has the following combination of properties, the borders of the visual will default
to
SetCompositeMode( )
SetBorderMode( )
SetBitmapInterpolationMode( )
If you want a visual to be drawn with antialiasing, use
Bitmap and clip edges are antialiased.
Bitmap and clip edges are aliased. See Remarks.
Bitmap and clip edges are drawn according to the mode established by the parent visual.
The mode to use to blend the bitmap content of a visual with the render target.
A single visual can have any combination of visual properties. However, if a
visual has the following combination of properties, the borders of the visual will default
to
SetCompositeMode( )
SetBorderMode( )
SetBitmapInterpolationMode( )
If you want a visual to be drawn with antialiasing, use
The standard source-over-destination blend mode.
The bitmap colors are inverted.
Bitmap colors subtract for color channels in the background.
Bitmaps are blended according to the mode established by the parent visual.
Specifies how the effective opacity value of a visual is applied to that visual?s content and children.
The target visual defines a logical layer into which its entire sub-tree is composed with a starting effective opacity of 1.0. The original opacity value is then used to blend the layer onto the visual?s background.
The opacity value is multiplied with the effective opacity of the parent visual and the result is then individually applied to each piece of content in this visual?s sub-tree.
The opacity mode is the same as that of the target visual?s parent visual.
Creates a new composition surface object that can be bound to a Microsoft DirectX swap chain or swap buffer and associated with a visual.
The requested access to the composition surface object. It can be one of the following values:
Value | Meaning |
---|---|
| No access. |
| Read access. For internal use only. |
| Write access. For internal use only. |
| Read/write access. Always specify this flag except when duplicating a surface in another process, in which case set desiredAccess to 0. |
?
Contains the security descriptor for the composition surface object, and specifies whether the handle of the composition surface object is inheritable when a child process is created. If this parameter is
The handle of the new composition surface object. This parameter must not be
If the function succeeds, it returns
Creates a new device object that can be used to create other Microsoft DirectComposition objects.
An optional reference to a DirectX device to be used to create DirectComposition surface objects. Must be a reference to an object implementing the
The identifier of the interface to retrieve. This must be one of __uuidof(
Receives an interface reference to the newly created device object. The reference is of the type specified by the iid parameter. This parameter must not be
If the function succeeds, it returns
A device object serves as the factory for all other DirectComposition objects. It also controls transactional composition through the
The renderingDevice parameter may point to a DXGI, Direct3D, Direct2D device object, or it may be
If the renderingDevice parameter is
If the renderingDevice parameter points to a DXGI device, that device is used to allocate all video memory needed by the
If the renderingDevice parameter points to a Direct2D device object, DirectComposition extracts from it the underlying DXGI device object and uses it as if that DXGI device object had been passed in as the renderingDevice parameter. However, passing in a Direct2D object further causes
If the iid parameter is __uuidof(
Creates a new device object that can be used to create other Microsoft DirectComposition objects.
The DXGI device to use to create DirectComposition surface objects.
The identifier of the interface to retrieve.
Receives an interface reference to the newly created device object. The reference is of the type specified by the iid parameter. This parameter must not be
If the function succeeds, it returns
A device object serves as the factory for all other DirectComposition objects. It also controls transactional composition through the
The DXGI device specified by dxgiDevice is used to create all DirectComposition surface objects. In particular, the
When creating the DXGI device, developers must specify the D3D11_CREATE_DEVICE BGRA_SUPPORT or
The iid parameter must be __uuidof(
, and the dcompositionDevice parameter receives a reference to an
Represents a clip object that is used to restrict the rendering of a visual subtree to a rectangular area.
Provides access to rendering features that help with application debugging and performance tuning. This interface can be queried from the DirectComposition device interface.
Enables display of performance debugging counters.
If the function succeeds, it returns
Performance counters are displayed on the top-right corner of the screen. From left to right, Microsoft DirectComposition displays the following information:
The DirectComposition composition engine operates on the entire desktop all at once, so the performance counters measure the total cost of desktop composition, not just the cost of any one particular application. If the application occupies the entire screen, however, it is reasonable to assume that all of the composition cost is due to that one application.
Disables display of performance debugging counters.
If the function succeeds, it returns
Microsoft DirectComposition keeps a count of how many DirectComposition devices have performance counters enabled, for the entire desktop session. If the count is non-zero, the performance counters are displayed. Therefore, disabling the counters may not make them go away if another device is also requesting display of the counters.
Represents a clip object that restricts the rendering of a visual subtree to the specified rectangular region. Optionally, the clip object may have rounded corners specified.
Changes the value of the Left property of a clip rectangle. The Left property specifies the x-coordinate of the upper-left corner of the clip rectangle.
The new value of the Left property, in pixels.
If the function succeeds, it returns
This method fails if the left parameter is NaN, positive infinity, or negative infinity.
If the Left property was previously animated, this method removes the animation and sets the Left property to the specified static value.
Changes the value of the Left property of a clip rectangle. The Left property specifies the x-coordinate of the upper-left corner of the clip rectangle.
The new value of the Left property, in pixels.
If the function succeeds, it returns
This method fails if the left parameter is NaN, positive infinity, or negative infinity.
If the Left property was previously animated, this method removes the animation and sets the Left property to the specified static value.
Changes the value of the Top property of a clip rectangle. The Top property specifies the y-coordinate of the upper-left corner of the clip rectangle.
The new value of the Top property, in pixels.
If the function succeeds, it returns
This method fails if the top parameter is NaN, positive infinity, or negative infinity.
If the Top property was previously animated, this method removes the animation and sets the Top property to the specified static value.
Changes the value of the Top property of a clip rectangle. The Top property specifies the y-coordinate of the upper-left corner of the clip rectangle.
The new value of the Top property, in pixels.
If the function succeeds, it returns
This method fails if the top parameter is NaN, positive infinity, or negative infinity.
If the Top property was previously animated, this method removes the animation and sets the Top property to the specified static value.
Animates the value of the Right property of a clip rectangle. The Right property specifies the x-coordinate of the lower-right corner of the clip rectangle.
An animation object that determines how the value of the Right property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Right property unless this method is called again. If the Right property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the Right property of a clip rectangle. The Right property specifies the x-coordinate of the lower-right corner of the clip rectangle.
An animation object that determines how the value of the Right property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Right property unless this method is called again. If the Right property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Changes the value of the Bottom property of a clip object. The Bottom property specifies the y-coordinate of the lower-right corner of the clip rectangle.
The new value of the Bottom property, in pixels.
If the function succeeds, it returns
This method fails if the bottom parameter is NaN, positive infinity, or negative infinity.
If the Bottom property was previously animated, this method removes the animation and sets the Bottom property to the specified static value.
Changes the value of the Bottom property of a clip object. The Bottom property specifies the y-coordinate of the lower-right corner of the clip rectangle.
The new value of the Bottom property, in pixels.
If the function succeeds, it returns
This method fails if the bottom parameter is NaN, positive infinity, or negative infinity.
If the Bottom property was previously animated, this method removes the animation and sets the Bottom property to the specified static value.
Animates the value of the TopLeftRadiusX property of this clip. The TopLeftRadiusX property specifies the x radius of the ellipse that rounds the top-left corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the TopLeftRadiusX property of this clip. The TopLeftRadiusX property specifies the x radius of the ellipse that rounds the top-left corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the TopLeftRadiusY property of this clip. The TopLeftRadiusY property specifies the y radius of the ellipse that rounds the top-left corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the TopLeftRadiusY property of this clip. The TopLeftRadiusY property specifies the y radius of the ellipse that rounds the top-left corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the TopRightRadiusX property of this clip. The TopRightRadiusX property specifies the x radius of the ellipse that rounds the top-right corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the TopRightRadiusX property of this clip. The TopRightRadiusX property specifies the x radius of the ellipse that rounds the top-right corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the TopRightRadiusY property of this clip. The TopRightRadiusY property specifies the y radius of the ellipse that rounds the top-right corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the TopRightRadiusY property of this clip. The TopRightRadiusY property specifies the y radius of the ellipse that rounds the top-right corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomLeftRadiusX property of this clip. The BottomLeftRadiusX property specifies the x radius of the ellipse that rounds the lower-left corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomLeftRadiusX property of this clip. The BottomLeftRadiusX property specifies the x radius of the ellipse that rounds the lower-left corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomLeftRadiusY property of this clip. The BottomLeftRadiusY property specifies the y radius of the ellipse that rounds the lower-left corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomLeftRadiusY property of this clip. The BottomLeftRadiusY property specifies the y radius of the ellipse that rounds the lower-left corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomRightRadiusX property of this clip. The BottomRightRadiusX property specifies the x radius of the ellipse that rounds the lower-right corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomRightRadiusX property of this clip. The BottomRightRadiusX property specifies the x radius of the ellipse that rounds the lower-right corner of the clip.
An animation object that determines how the value of the x radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the x radius unless this method is called again. If the x radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomRightRadiusY property of this clip. The BottomRightRadiusY property specifies the y radius of the ellipse that rounds the lower-right corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the BottomRightRadiusY property of this clip. The BottomRightRadiusY property specifies the y radius of the ellipse that rounds the lower-right corner of the clip.
An animation object that determines how the value of the y radius changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the y radius unless this method is called again. If the y radius was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Represents a 2D transformation that affects the rotation of a visual around the z-axis. The coordinate system is rotated around the specified center point.
A rotate transform represents the following 3-by-3 matrix:
The effect is to rotate the coordinate system clockwise or counter-clockwise, and to apply the corresponding translation such that the center point does not move.
Animates the value of the Angle property of a 2D rotation transform. The Angle property specifies the rotation angle.
An animation object that determines how the value of the Angle property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Angle property unless this method is called again. If the Angle property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the Angle property of a 2D rotation transform. The Angle property specifies the rotation angle.
An animation object that determines how the value of the Angle property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Angle property unless this method is called again. If the Angle property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Changes the value of the CenterX property of a 2D rotation transform. The CenterX property specifies the x-coordinate of the point about which the rotation is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterX property of a 2D rotation transform. The CenterX property specifies the x-coordinate of the point about which the rotation is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterY property of a 2D rotation transform. The CenterY property specifies the y-coordinate of the point about which the rotation is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Changes the value of the CenterY property of a 2D rotation transform. The CenterY property specifies the y-coordinate of the point about which the rotation is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Represents a 3D transformation that affects the rotation of a visual along an arbitrary axis in 3D space. The coordinate system is rotated around the specified center point.
A 3D rotate transform represents the following 4-by-4 matrix:
where the offsetX, offsetY, and offsetZ values of the matrix are the following:
The effect is to rotate the coordinate system clockwise or counter-clockwise around the specified axis, and to apply the corresponding translation such that the center point does not move.
A new 3D rotation transform object has a default static value of zero for the Angle, CenterX, CenterY, AxisX, and AxisY properties, and a default static value of 1.0 for the AxisZ property.
When setting the axis to a non-default value, you should always set all three axis properties (AxisX, AxisY, and AxisZ).
Animates the value of the Angle property of a 3D rotation transform. The Angle property specifies the rotation angle. The default value is zero.
An animation object that determines how the value of the Angle property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Angle property unless this method is called again. If the Angle property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the Angle property of a 3D rotation transform. The Angle property specifies the rotation angle. The default value is zero.
An animation object that determines how the value of the Angle property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the Angle property unless this method is called again. If the Angle property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Changes the value of the AxisX property of a 3D rotation transform. The AxisX property specifies the x-coordinate for the axis vector of rotation. The default value is zero.
The new x-coordinate for the axis vector of rotation.
If the function succeeds, it returns
When setting the axis to a non-default value, you should always set all three axis properties (AxisX, AxisY, and AxisZ).
This method fails if the axisX parameter is NaN, positive infinity, or negative infinity.
If the AxisX property was previously animated, this method removes the animation and sets the AxisX property to the specified static value.
Changes the value of the AxisX property of a 3D rotation transform. The AxisX property specifies the x-coordinate for the axis vector of rotation. The default value is zero.
The new x-coordinate for the axis vector of rotation.
If the function succeeds, it returns
When setting the axis to a non-default value, you should always set all three axis properties (AxisX, AxisY, and AxisZ).
This method fails if the axisX parameter is NaN, positive infinity, or negative infinity.
If the AxisX property was previously animated, this method removes the animation and sets the AxisX property to the specified static value.
Changes the value of the AxisY property of a 3D rotation transform. The AxisY property specifies the y-coordinate for the axis vector of rotation. The default value is zero.
The new y-coordinate for the axis vector of rotation.
If the function succeeds, it returns
When setting the axis to a non-default value, you should always set all three axis properties (AxisX, AxisY, and AxisZ).
This method fails if the axisY parameter is NaN, positive infinity, or negative infinity.
If the AxisY property was previously animated, this method removes the animation and sets the AxisY property to the specified static value.
Changes the value of the AxisY property of a 3D rotation transform. The AxisY property specifies the y-coordinate for the axis vector of rotation. The default value is zero.
The new y-coordinate for the axis vector of rotation.
If the function succeeds, it returns
When setting the axis to a non-default value, you should always set all three axis properties (AxisX, AxisY, and AxisZ).
This method fails if the axisY parameter is NaN, positive infinity, or negative infinity.
If the AxisY property was previously animated, this method removes the animation and sets the AxisY property to the specified static value.
Changes the value of the AxisZ property of a 3D rotation transform. The AxisZ property specifies the z-coordinate for the axis vector of rotation. The default value is 1.0.
The new z-coordinate for the axis vector of rotation.
If the function succeeds, it returns
When setting the axis to a non-default value, you should always set all three axis properties (AxisX, AxisY, and AxisZ).
This method fails if the axisZ parameter is NaN, positive infinity, or negative infinity.
If the AxisZ property was previously animated, this method removes the animation and sets the AxisX property to the specified static value.
Changes the value of the AxisZ property of a 3D rotation transform. The AxisZ property specifies the z-coordinate for the axis vector of rotation. The default value is 1.0.
The new z-coordinate for the axis vector of rotation.
If the function succeeds, it returns
When setting the axis to a non-default value, you should always set all three axis properties (AxisX, AxisY, and AxisZ).
This method fails if the axisZ parameter is NaN, positive infinity, or negative infinity.
If the AxisZ property was previously animated, this method removes the animation and sets the AxisX property to the specified static value.
Animates the value of the CenterX property of a 3D rotation transform. The CenterX property specifies the x-coordinate of the point about which the rotation is performed. The default value is zero.
An animation object that determines how the value of the CenterX property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the CenterX property unless this method is called again. If the CenterX property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the CenterX property of a 3D rotation transform. The CenterX property specifies the x-coordinate of the point about which the rotation is performed. The default value is zero.
An animation object that determines how the value of the CenterX property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the CenterX property unless this method is called again. If the CenterX property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Changes the value of the CenterY property of a 3D rotation transform. The CenterY property specifies the y-coordinate of the point about which the rotation is performed. The default value is zero.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Changes the value of the CenterY property of a 3D rotation transform. The CenterY property specifies the y-coordinate of the point about which the rotation is performed. The default value is zero.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Changes the value of the CenterZ property of a 3D rotation transform. The CenterZ property specifies the z-coordinate of the point about which the rotation is performed. The default value is zero.
The new z-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerZ parameter is NaN, positive infinity, or negative infinity.
If the CenterZ property was previously animated, this method removes the animation and sets the CenterZ property to the specified static value.
Changes the value of the CenterZ property of a 3D rotation transform. The CenterZ property specifies the z-coordinate of the point about which the rotation is performed. The default value is zero.
The new z-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerZ parameter is NaN, positive infinity, or negative infinity.
If the CenterZ property was previously animated, this method removes the animation and sets the CenterZ property to the specified static value.
Represents a 2D transformation that affects the scale of a visual along the x-axis and y-axis. The coordinate system is scaled from the specified center point.
A scale transform represents the following 3-by-3 matrix:
The effect is to scale the coordinate system up or down and apply the corresponding translation such that the center point does not move.
Animates the value of the ScaleX property of a 2D scale transform. The ScaleX property specifies the scale factor along the x-axis.
An animation object that determines how the value of the ScaleX property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the ScaleX property unless this method is called again. If the ScaleX property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the ScaleX property of a 2D scale transform. The ScaleX property specifies the scale factor along the x-axis.
An animation object that determines how the value of the ScaleX property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the ScaleX property unless this method is called again. If the ScaleX property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Changes the value of the ScaleY property of a 2D scale transform. The ScaleY property specifies the scale factor along the y-axis.
The new y-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleY parameter is NaN, positive infinity, or negative infinity.
If the ScaleY property was previously animated, this method removes the animation and sets the ScaleY property to the specified static value.
Changes the value of the ScaleY property of a 2D scale transform. The ScaleY property specifies the scale factor along the y-axis.
The new y-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleY parameter is NaN, positive infinity, or negative infinity.
If the ScaleY property was previously animated, this method removes the animation and sets the ScaleY property to the specified static value.
Changes the value of the CenterX property of a 2D scale transform. The CenterX property specifies the x-coordinate of the point about which scaling is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterX property of a 2D scale transform. The CenterX property specifies the x-coordinate of the point about which scaling is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterY property of a 2D scale transform. The CenterY property specifies the y-coordinate of the point about which scaling is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Changes the value of the CenterY property of a 2D scale transform. The CenterY property specifies the y-coordinate of the point about which scaling is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Represents a 3D transformation effect that affects the scale of a visual along the x-axis, y-axis, and z-axis. The coordinate system is scaled from the specified center point.
A 3D scale transform represents the following 4-by-4 matrix:
The effect is to scale the blending of the visual's subtree up or down, and apply the corresponding translation such that the center point does not move.
Changes the value of the ScaleX property of a 3D scale transform. The ScaleX property specifies the scale factor along the x-axis.
The new x-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleX parameter is NaN, positive infinity, or negative infinity.
If the ScaleX property was previously animated, this method removes the animation and sets the ScaleX property to the specified static value.
Changes the value of the ScaleX property of a 3D scale transform. The ScaleX property specifies the scale factor along the x-axis.
The new x-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleX parameter is NaN, positive infinity, or negative infinity.
If the ScaleX property was previously animated, this method removes the animation and sets the ScaleX property to the specified static value.
Changes the value of the ScaleY property of a 3D scale transform. The ScaleY property specifies the scale factor along the y-axis.
The new y-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleY parameter is NaN, positive infinity, or negative infinity.
If the ScaleY property was previously animated, this method removes the animation and sets the ScaleY property to the specified static value.
Changes the value of the ScaleY property of a 3D scale transform. The ScaleY property specifies the scale factor along the y-axis.
The new y-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleY parameter is NaN, positive infinity, or negative infinity.
If the ScaleY property was previously animated, this method removes the animation and sets the ScaleY property to the specified static value.
Changes the value of the ScaleZ property of a 3D scale transform. The ScaleZ property specifies the scale factor along the z-axis.
The new z-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleZ parameter is NaN, positive infinity, or negative infinity.
If the ScaleZ property was previously animated, this method removes the animation and sets the ScaleZ property to the specified static value.
Changes the value of the ScaleZ property of a 3D scale transform. The ScaleZ property specifies the scale factor along the z-axis.
The new z-axis scale factor.
If the function succeeds, it returns
This method fails if the scaleZ parameter is NaN, positive infinity, or negative infinity.
If the ScaleZ property was previously animated, this method removes the animation and sets the ScaleZ property to the specified static value.
Changes the value of the CenterX property of a 3D scale transform. The CenterX property specifies the x-coordinate of the point about which scaling is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterX property of a 3D scale transform. The CenterX property specifies the x-coordinate of the point about which scaling is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterY property of a 3D scale transform. The CenterY property specifies the y-coordinate of the point about which scaling is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Changes the value of the CenterY property of a 3D scale transform. The CenterY property specifies the y-coordinate of the point about which scaling is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Changes the value of the CenterZ property of a 3D scale transform. The CenterZ property specifies the z-coordinate of the point about which scaling is performed.
The new z-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerZ parameter is NaN, positive infinity, or negative infinity.
If the CenterZ property was previously animated, this method removes the animation and sets the CenterZ property to the specified static value.
Changes the value of the CenterZ property of a 3D scale transform. The CenterZ property specifies the z-coordinate of the point about which scaling is performed.
The new z-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerZ parameter is NaN, positive infinity, or negative infinity.
If the CenterZ property was previously animated, this method removes the animation and sets the CenterZ property to the specified static value.
Represents a 2D transformation that affects the skew of a visual along the x-axis and y-axis. The coordinate system is skewed around the specified center point.
A skew transform represents the following 3-by-3 matrix:
The effect is to slant the coordinate system along the x-axis and y-axis such that a rectangle becomes a parallelogram, and to apply the corresponding translation such that the center point does not move.
Animates the value of the AngleX property of a 2D skew transform. The AngleX property specifies the skew angle along the x-axis.
An animation object that represents how the value of the AngleX property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the AngleX property unless this method is called again. If the AngleX property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the AngleX property of a 2D skew transform. The AngleX property specifies the skew angle along the x-axis.
An animation object that represents how the value of the AngleX property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the AngleX property unless this method is called again. If the AngleX property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the AngleY property of a 2D skew transform. The AngleY property specifies the skew angle along the y-axis.
An animation object that represents how the value of the AngleY property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the AngleY property unless this method is called again. If the AngleY property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Animates the value of the AngleY property of a 2D skew transform. The AngleY property specifies the skew angle along the y-axis.
An animation object that represents how the value of the AngleY property changes over time. This parameter must not be
If the function succeeds, it returns
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the AngleY property unless this method is called again. If the AngleY property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Changes the value of the CenterX property of a 2D skew transform. The CenterX property specifies the x-coordinate of the point about which the skew is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterX property of a 2D skew transform. The CenterX property specifies the x-coordinate of the point about which the skew is performed.
The new x-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerX parameter is NaN, positive infinity, or negative infinity.
If the CenterX property was previously animated, this method removes the animation and sets the CenterX property to the specified static value.
Changes the value of the CenterY property of a 2D skew transform. The CenterY property specifies the y-coordinate of the point about which the skew is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Changes the value of the CenterY property of a 2D skew transform. The CenterY property specifies the y-coordinate of the point about which the skew is performed.
The new y-coordinate of the center point.
If the function succeeds, it returns
This method fails if the centerY parameter is NaN, positive infinity, or negative infinity.
If the CenterY property was previously animated, this method removes the animation and sets the CenterY property to the specified static value.
Represents a physical bitmap that can be associated with a visual for composition in a visual tree. This interface can also be used to update the bitmap contents.
Initiates drawing on this Microsoft DirectComposition surface object. The update rectangle must be within the boundaries of the surface; otherwise, this method fails.
The rectangle to be updated. If this parameter is
The identifier of the interface to retrieve.
Receives an interface reference of the type specified in the iid parameter. This parameter must not be
Note??In Windows?8, this parameter was surface.
The offset into the surface where the application should draw updated content. This offset will reference the upper left corner of the update rectangle.
If the function succeeds, it returns
This method enables an application to incrementally update the contents of a DirectComposition surface object. The application must use the following sequence:
The update object returned by this method is either a Direct2D device context or a DXGI surface, depending on the value of the iid parameter and on how the DirectComposition surface object was created. If the iid parameter is __uuidof(
The iid parameter may only be __uuidof(
If the application successfully retrieves a Direct2D device context as the update object, then the application should not call either the ID2D1DeviceContext::BeginDraw or ID2D1DeviceContext::EndDraw methods on the returned Direct2D device context.
The retrieved offset is not necessarily the same as the top-left corner of the requested update rectangle. The application must transform its rendering primitives to draw within a rectangle of the same width and height as the input rectangle, but at the given offset. The application should not draw outside of this rectangle.
If the updateRectangle parameter is
If the surface is not a virtual surface, then the first time the application calls this method for a particular non-virtual surface, the update rectangle must cover the entire surface, either by specifying the full surface in the requested update rectangle, or by specifying
Because each call to this method might retrieve a different object in the updateObject surface, the application should not cache the retrieved surface reference. The application should release the retrieved reference as soon as it finishes drawing.
The retrieved surface rectangle does not contain the previous contents of the bitmap. The application must update every pixel in the update rectangle, either by first clearing the render target, or by issuing enough rendering primitives to fully cover the update rectangle. Because the initial contents of the update surface are undefined, failing to update every pixel leads to undefined behavior.
Only one DirectComposition surface can be updated at a time. An application must suspend drawing on one surface before beginning or resuming to draw on another surface. If the application calls BeginDraw twice, either for the same surface or for another surface belonging to the same DirectComposition device, without an intervening call to
Marks the end of drawing on this Microsoft DirectComposition surface object.
If the function succeeds, it returns
This method completes an update that was begun by a previous call to the
If the application calls
Suspends the drawing on this Microsoft DirectComposition surface object.
If the function succeeds, it returns
Because only one surface can be open for drawing at a time, calling SuspendDraw allows the user to call
Resumes drawing on this Microsoft DirectComposition surface object.
If the function succeeds, it returns
This method allows the surface update to continue unless there are other surfaces that have active, unsuspended draws.
Scrolls a rectangular area of a Microsoft DirectComposition logical surface.
The rectangular area of the surface to be scrolled, relative to the upper-left corner of the surface. If this parameter is
The clipRect clips the destination (scrollRect after offset) of the scroll.The only bitmap content that will be scrolled are those that remain inside the clip rectangle after the scroll is completed.
The amount of horizontal scrolling, in pixels. Use positive values to scroll right, and negative values to scroll left.
The amount of vertical scrolling, in pixels. Use positive values to scroll down, and negative values to scroll up.
If the function succeeds, it returns
This method allows an application to blt/copy a sub-rectangle of a DirectComposition surface object. This avoids re-rendering content that is already available.
The scrollRect rectangle must be contained in the boundaries of the surface. If the scrollRect rectangle goes outside the bounds of the surface, this method fails.
The bits copied by the scroll operation (source) are defined by the intersection of the scrollRect and clipRect rectangles.
The bits shown on the screen (destination) are defined by the intersection of the offset source rectangle and clipRect.
Scroll operations can only be called before calling BeginDraw or after calling EndDraw. Suspended or resumed surfaces are not candidates for scrolling because they are still being updated.
The application is responsible for ensuring that the scrollable area for an
Virtual surface sub-rectangular areas that were discarded by a trim or a resize operation can't be scrolled even if the trim or resize is applied in the same batch. Trim and Resize are applied immediately.
Creates surface and virtual surface objects associated with an application-provided rendering device.
Creates a surface object that can be associated with one or more visuals for composition.
The width of the surface, in pixels.
The height of the surface, in pixels.
The pixel format of the surface.
The format of the alpha channel, if an alpha channel is included in the pixel format. This can be one of
The newly created surface object. This parameter must not be
If the function succeeds, it returns
A Microsoft DirectComposition surface is a rectangular array of pixels that can be associated with a visual for composition. A newly created surface object is in an uninitialized state. While it is uninitialized, the surface has no effect on the composition of the visual tree. It behaves exactly like a surface that has 100% transparent pixels.
To initialize the surface with pixel data, use the
This method will fail if either the width or height exceed the max texture size. If your scenario requires dimensions beyond the max texture size, use CreateVirtualSurface method.
DirectComposition surfaces support the following pixel formats:
Creates a sparsely populated surface that can be associated with one or more visuals for composition.
The width of the surface, in pixels. The maximum width is 16,777,216 pixels.
The height of the surface, in pixels.The maximum height is 16,777,216 pixels.
The pixel format of the surface.
The format of the alpha channel, if an alpha channel is included in the pixel format. This can be one of
The newly created virtual surface object. This parameter must not be
If the function succeeds, it returns
A newly created virtual surface object is in an uninitialized state. While it is uninitialized, the surface has no effect on the composition of the visual tree. It behaves exactly like a surface that is initialized with 100% transparent pixels.
To initialize the surface with pixel data, use the
Microsoft DirectComposition surfaces support the following pixel formats:
Represents a binding between a Microsoft DirectComposition visual tree and a destination on top of which the visual tree should be composed.
Sets a visual object as the new root object of a visual tree.
The visual object that is the new root of this visual tree. This parameter can be
If the function succeeds, it returns
A visual can be either the root of a single visual tree, or a child of another visual, but it cannot be both at the same time. This method fails if the visual parameter is already the root of another visual tree, or is a child of another visual.
If visual is
Sets a visual object as the new root object of a visual tree.
A visual can be either the root of a single visual tree, or a child of another visual, but it cannot be both at the same time. This method fails if the visual parameter is already the root of another visual tree, or is a child of another visual.
If visual is
Represents a 2D transformation that affects only the offset of a visual along the x-axis and y-axis.
A translation transform represents the following 3-by-2 matrix:
The effect is simply to offset the coordinate system by x and y.
Changes the value of the OffsetX property of a 2D translation transform. The OffsetX property specifies the distance to translate along the x-axis.
The distance to translate along the x-axis, in pixels.
If the function succeeds, it returns
This method perfoms an affine transformation, which moves every point by a fixed distance in the same direction. It is similar to shifting the origin of the coordinate space.
This method fails if the offsetX parameter is NaN, positive infinity, or negative infinity.
If the OffsetX property was previously animated, this method removes the animation and sets the OffsetX property to the specified static value.
Changes the value of the OffsetX property of a 2D translation transform. The OffsetX property specifies the distance to translate along the x-axis.
The distance to translate along the x-axis, in pixels.
If the function succeeds, it returns
This method perfoms an affine transformation, which moves every point by a fixed distance in the same direction. It is similar to shifting the origin of the coordinate space.
This method fails if the offsetX parameter is NaN, positive infinity, or negative infinity.
If the OffsetX property was previously animated, this method removes the animation and sets the OffsetX property to the specified static value.
Changes the value of the OffsetY property of a 2D translation transform. The OffsetY property specifies the distance to translate along the y-axis.
The distance to translate along the y-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetY parameter is NaN, positive infinity, or negative infinity.
If the OffsetY property was previously animated, this method removes the animation and sets the OffsetY property to the specified static value.
Changes the value of the OffsetY property of a 2D translation transform. The OffsetY property specifies the distance to translate along the y-axis.
The distance to translate along the y-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetY parameter is NaN, positive infinity, or negative infinity.
If the OffsetY property was previously animated, this method removes the animation and sets the OffsetY property to the specified static value.
Animates the value of the OffsetZ property of a 3D translation transform effect. The OffsetZ property specifies the distance to translate along the z-axis.
This method makes a copy of the specified animation. If the object referenced by the animation parameter is changed after calling this method, the change does not affect the OffsetZ property unless this method is called again. If the OffsetZ property was previously animated, calling this method replaces the previous animation with the new animation.
This method fails if animation is an invalid reference or if it was not created by the same
Changes the value of the OffsetX property of a 3D translation transform effect. The OffsetX property specifies the distance to translate along the x-axis.
The distance to translate along the x-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetX parameter is NaN, positive infinity, or negative infinity.
If the OffsetX property was previously animated, this method removes the animation and sets the OffsetX property to the specified static value.
Changes the value of the OffsetX property of a 3D translation transform effect. The OffsetX property specifies the distance to translate along the x-axis.
The distance to translate along the x-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetX parameter is NaN, positive infinity, or negative infinity.
If the OffsetX property was previously animated, this method removes the animation and sets the OffsetX property to the specified static value.
Changes the value of the OffsetY property of a 3D translation transform effect. The OffsetY property specifies the distance to translate along the y-axis.
The distance to translate along the y-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetY parameter is NaN, positive infinity, or negative infinity.
If the OffsetY property was previously animated, this method removes the animation and sets the OffsetY property to the specified static value.
Changes the value of the OffsetY property of a 3D translation transform effect. The OffsetY property specifies the distance to translate along the y-axis.
The distance to translate along the y-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetY parameter is NaN, positive infinity, or negative infinity.
If the OffsetY property was previously animated, this method removes the animation and sets the OffsetY property to the specified static value.
Changes the value of the OffsetZ property of a 3D translation transform effect. The OffsetZ property specifies the distance to translate along the z-axis.
The distance to translate along the z-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetZ parameter is NaN, positive infinity, or negative infinity.
If the OffsetZ property was previously animated, this method removes the animation and sets the OffsetZ property to the specified static value.
Changes the value of the OffsetZ property of a 3D translation transform effect. The OffsetZ property specifies the distance to translate along the z-axis.
The distance to translate along the z-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetZ parameter is NaN, positive infinity, or negative infinity.
If the OffsetZ property was previously animated, this method removes the animation and sets the OffsetZ property to the specified static value.
Represents a sparsely allocated bitmap that can be associated with a visual for composition in a visual tree.
Changes the logical size of this virtual surface object.
The new width of the virtual surface, in pixels. The maximum width is 16,777,216 pixels.
The new height of the virtual surface, in pixels. The maximum height is 16,777,216 pixels.
If the function succeeds, it returns
When a virtual surface is resized, its contents are preserved up to the new boundaries of the surface. If the surface is made smaller, any previously allocated pixels that fall outside of the new width or height are discarded.
This method fails if
This method fails if width or height exceeds 16,777,216 pixels.
Discards pixels that fall outside of the specified trim rectangles.
An array of rectangles to keep.
The number of rectangles in the rectangles array.
If the function succeeds, it returns
A virtual surface might not have enough storage for every pixel in the surface. An application instructs the composition engine to allocate memory for the surface by calling the
If the count parameter is zero, no pixels are kept, and all of the memory allocated for the virtual surface may be reclaimed. The rectangles parameter can be
Represents a Microsoft DirectComposition visual.
Changes the value of the OffsetX property of this visual. The OffsetX property specifies the new offset of the visual along the x-axis, relative to the parent visual.
The new offset of the visual along the x-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetX parameter is NaN, positive infinity, or negative infinity.
Changing the OffsetX property of a visual transforms the coordinate system of the entire visual subtree that is rooted at that visual. If the Clip property of this visual is specified, the clip rectangle is also transformed.
A transformation that is specified by the Transform property is applied after the OffsetX property. In other words, the effect of setting the Transform property and the OffsetX property is the same as setting only the Transform property on a transform group object where the first member of the group is an
If the OffsetX and OffsetY properties are set to 0, and the Transform property is set to
If the OffsetX property was previously animated, this method removes the animation and sets the property to the specified static value.
Changes the value of the OffsetX property of this visual. The OffsetX property specifies the new offset of the visual along the x-axis, relative to the parent visual.
The new offset of the visual along the x-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetX parameter is NaN, positive infinity, or negative infinity.
Changing the OffsetX property of a visual transforms the coordinate system of the entire visual subtree that is rooted at that visual. If the Clip property of this visual is specified, the clip rectangle is also transformed.
A transformation that is specified by the Transform property is applied after the OffsetX property. In other words, the effect of setting the Transform property and the OffsetX property is the same as setting only the Transform property on a transform group object where the first member of the group is an
If the OffsetX and OffsetY properties are set to 0, and the Transform property is set to
If the OffsetX property was previously animated, this method removes the animation and sets the property to the specified static value.
Changes the value of the OffsetY property of this visual. The OffsetY property specifies the new offset of the visual along the y-axis, relative to the parent visual.
The new offset of the visual along the y-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetY parameter is NaN, positive infinity, or negative infinity.
Changing the OffsetY property transforms the coordinate system of the entire visual subtree that is rooted at this visual. If the Clip property of this visual is specified, the clip rectangle is also transformed.
A transformation that is specified by the Transform property is applied after the OffsetY property. In other words, the effect of setting the Transform property and the OffsetY property is the same as setting only the Transform property on a transform group object where the first member of the group is an
If the OffsetX and OffsetY properties are set to 0, and the Transform property is set to
If the OffsetY property was previously animated, this method removes the animation and sets the property to the specified static value.
Changes the value of the OffsetY property of this visual. The OffsetY property specifies the new offset of the visual along the y-axis, relative to the parent visual.
The new offset of the visual along the y-axis, in pixels.
If the function succeeds, it returns
This method fails if the offsetY parameter is NaN, positive infinity, or negative infinity.
Changing the OffsetY property transforms the coordinate system of the entire visual subtree that is rooted at this visual. If the Clip property of this visual is specified, the clip rectangle is also transformed.
A transformation that is specified by the Transform property is applied after the OffsetY property. In other words, the effect of setting the Transform property and the OffsetY property is the same as setting only the Transform property on a transform group object where the first member of the group is an
If the OffsetX and OffsetY properties are set to 0, and the Transform property is set to
If the OffsetY property was previously animated, this method removes the animation and sets the property to the specified static value.
Sets the Transform property of this visual to the specified 2D transform object.
The transform object that is used to modify the coordinate system of this visual. This parameter can point to an
If the function succeeds, it returns
Setting the Transform property transforms the coordinate system of the entire visual subtree that is rooted at this visual. If the Clip property of this visual is specified, the clip rectangle is also transformed.
If the Transform property previously specified a transform matrix, the newly specified transform object replaces the transform matrix.
A transformation specified by the Transform property is applied after the OffsetX and OffsetY properties. In other words, the effect of setting the Transform property and the OffsetX and OffsetY properties is the same as setting only the Transform property on a transform group where the first member of the group is an
This method fails if transform is an invalid reference or if it was not created by the same
If the transform parameter is
If the OffsetX and OffsetY properties are set to 0, and the Transform property is set to
Sets the Transform property of this visual to the specified 2D transform object.
The transform object that is used to modify the coordinate system of this visual. This parameter can point to an
If the function succeeds, it returns
Setting the Transform property transforms the coordinate system of the entire visual subtree that is rooted at this visual. If the Clip property of this visual is specified, the clip rectangle is also transformed.
If the Transform property previously specified a transform matrix, the newly specified transform object replaces the transform matrix.
A transformation specified by the Transform property is applied after the OffsetX and OffsetY properties. In other words, the effect of setting the Transform property and the OffsetX and OffsetY properties is the same as setting only the Transform property on a transform group where the first member of the group is an
This method fails if transform is an invalid reference or if it was not created by the same
If the transform parameter is
If the OffsetX and OffsetY properties are set to 0, and the Transform property is set to
Sets the TransformParent property of this visual. The TransformParent property establishes the coordinate system relative to which this visual is composed.
The new visual that establishes the base coordinate system for this visual. This parameter can be
If the function succeeds, it returns
The coordinate system of a visual is modified by the OffsetX, OffsetY, and Transform properties. Normally, these properties define the coordinate system of a visual relative to its immediate parent. This method specifies the visual relative to which the coordinate system for this visual is based. The specified visual must be an ancestor of the current visual. If it is not an ancestor, the coordinate system is based on this visual's immediate parent, just as if the TransformParent property were set to
If the visual parameter is
This method fails if the visual parameter is an invalid reference or if it was not created by the same
Sets the Effect property of this visual. The Effect property modifies how the subtree that is rooted at this visual is blended with the background, and can apply a 3D perspective transform to the visual.
A reference to an effect object. This parameter can be
If the function succeeds, it returns
This method creates an implicit off-screen surface to which the subtree that is rooted at this visual is composed. The surface is used as one of the inputs to the specified effect. The output of the effect is composed directly to the composition target. Some effects also use the composition target as another implicit input. This is typically the case for compositional or blend effects such as opacity, where the composition target is considered to be the "background." In that case, any visuals that are "behind" the current visual are included in the composition target when the current visual is rendered and are considered to be the "background" that this visual composes to.
If this visual is not the root of a visual tree and one of its ancestors also has an effect applied to it, the off-screen surface created by the closest ancestor is the composition target to which this visual's effect is composed. Otherwise, the composition target is the root composition target. As a consequence, the background for compositional and blend effects includes only the visuals up to the closest ancestor that itself has an effect. Conversely, any effects applied to visuals under the current visual use the newly created off-screen surface as the background, which may affect how those visuals ultimately compose on top of what the end user perceives as being "behind" those visuals.
If the effect parameter is
This method fails if effect is an invalid reference or if it was not created by the same
Sets the BitmapInterpolationMode property, which specifies the mode for Microsoft DirectComposition to use when interpolating pixels from bitmaps that are not axis-aligned or drawn exactly at scale.
The interpolation mode to use.
If the function succeeds, it returns
The interpolation mode affects how a bitmap is composed when it is transformed such that there is no one-to-one correspondence between pixels in the bitmap and pixels on the screen.
By default, a visual inherits the interpolation mode of the parent visual, which may inherit the interpolation mode of its parent visual, and so on. A visual uses the default interpolation mode if this method is never called for the visual, or if this method is called with
If the interpolationMode parameter is anything other than
Sets the BorderMode property, which specifies how to compose the edges of bitmaps and clips associated with this visual, or with visuals in the subtree rooted at this visual.
The border mode to use.
If the function succeeds, it returns
The border mode affects how the edges of a bitmap are composed when the bitmap is transformed such that the edges are not exactly axis-aligned and at precise pixel boundaries. It also affects how content is clipped at the corners of a clip that has rounded corners, and at the edge of a clip that is transformed such that the edges are not exactly axis-aligned and at precise pixel boundaries.
By default, a visual inherits the border mode of its parent visual, which may inherit the border mode of its parent visual, and so on. A visual uses the default border mode if this method is never called for the visual, or if this method is called with
If the borderMode parameter is anything other than
Sets the Clip property of this visual to the specified clip object. The Clip property restricts the rendering of the visual subtree that is rooted at this visual to a rectangular region.
The clip object to associate with this visual. This parameter can be
If the function succeeds, it returns
Setting the Clip property clips this visual along with all visuals in the subtree that is rooted at this visual. The clip is transformed by the OffsetX, OffsetY, and Transform properties.
If the Clip property previously specified a clip rectangle, the newly specified Clip object replaces the clip rectangle.
This method fails if clip is an invalid reference or if it was not created by the same
If clip is
If clip specifies a clip object that has an empty rectangle, the visual is fully clipped; that is, the visual is included in the visual tree, but it does not render anything. To exclude a particular visual from a composition, remove the visual from the visual tree instead of setting an empty clip rectangle. Removing the visual results in better performance.
Sets the Clip property of this visual to the specified clip object. The Clip property restricts the rendering of the visual subtree that is rooted at this visual to a rectangular region.
The clip object to associate with this visual. This parameter can be
If the function succeeds, it returns
Setting the Clip property clips this visual along with all visuals in the subtree that is rooted at this visual. The clip is transformed by the OffsetX, OffsetY, and Transform properties.
If the Clip property previously specified a clip rectangle, the newly specified Clip object replaces the clip rectangle.
This method fails if clip is an invalid reference or if it was not created by the same
If clip is
If clip specifies a clip object that has an empty rectangle, the visual is fully clipped; that is, the visual is included in the visual tree, but it does not render anything. To exclude a particular visual from a composition, remove the visual from the visual tree instead of setting an empty clip rectangle. Removing the visual results in better performance.
Sets the Content property of this visual to the specified bitmap or window wrapper.
The object that is the new content of this visual. This parameter can be
If the function succeeds, it returns
The content parameter must point to one of the following:
The new content replaces any content that was previously associated with the visual. If the content parameter is
A visual can be associated with a bitmap object or a window wrapper. A bitmap is either a Microsoft DirectX swap chain or a Microsoft DirectComposition surface.
A window wrapper is created with the CreateSurfaceFromHwnd method and is a stand-in for the rasterization of another window, which must be a top-level window or a layered child window. A window wrapper is conceptually equivalent to a bitmap that is the size of the target window on which the contents of the window are drawn. The contents include the target window's child windows (layered or otherwise), and any DirectComposition content that is drawn in the child windows.
A DirectComposition surface wrapper is created with the CreateSurfaceFromHandle method and is a reference to a swap chain. An application might use a surface wrapper in a cross-process scenario where one process creates the swap chain and another process associates the bitmap with a visual.
The bitmap is always drawn at position (0,0) relative to the visual's coordinate system, although the coordinate system is directly affected by the OffsetX, OffsetY, and Transform properties, as well as indirectly by the transformations on ancestor visuals. The bitmap of a visual is always drawn behind the children of that visual.
Adds a new child visual to the children list of this visual.
The child visual to add. This parameter must not be
TRUE to place the new child visual in front of the visual specified by the referenceVisual parameter, or
The existing child visual next to which the new visual should be added.
If the function succeeds, it returns
Child visuals are arranged in an ordered list. The contents of a child visual are drawn in front of (or above) the contents of its parent visual, but behind (or below) the contents of its children.
The referenceVisual parameter must be an existing child of the parent visual, or it must be
If the referenceVisual parameter is
The visual specified by the visual parameter cannot be either a child of a single other visual, or the root of a visual tree that is associated with a composition target. If visual is already a child of another visual, AddVisual fails. The child visual must be removed from the children list of its previous parent before adding it to the children list of the new parent. If visual is the root of a visual tree, the visual must be dissociated from that visual tree before adding it to the children list of the new parent. To dissociate the visual from a visual tree, call the
A child visual need not have been created by the same
This method fails if visual or referenceVisual is an invalid reference, or if the visual referenced by the referenceVisual parameter is not a child of the parent visual. These interfaces cannot be custom implementations; only interfaces created by DirectComposition can be used with this method.
Removes a child visual from the children list of this visual.
The child visual to remove from the children list. This parameter must not be
If the function succeeds, it returns
The child visual is removed from the list of children. The order of the remaining child visuals is not changed.
This method fails if visual is not a child of the parent visual.
Removes all visuals from the children list of this visual.
If the function succeeds, it returns
This method can be called even if this visual has no children.
Sets the blending mode for this visual.
The blending mode to use when composing the visual to the screen.
If the function succeeds, it returns
The composite mode determines how visual's bitmap is blended with the screen. By default, the visual is blended with "source over" semantics; that is, the colors are blended with per-pixel transparency.
Sets the Effect property of this visual. The Effect property modifies how the subtree that is rooted at this visual is blended with the background, and can apply a 3D perspective transform to the visual.
This method creates an implicit off-screen surface to which the subtree that is rooted at this visual is composed. The surface is used as one of the inputs to the specified effect. The output of the effect is composed directly to the composition target. Some effects also use the composition target as another implicit input. This is typically the case for compositional or blend effects such as opacity, where the composition target is considered to be the "background." In that case, any visuals that are "behind" the current visual are included in the composition target when the current visual is rendered and are considered to be the "background" that this visual composes to.
If this visual is not the root of a visual tree and one of its ancestors also has an effect applied to it, the off-screen surface created by the closest ancestor is the composition target to which this visual's effect is composed. Otherwise, the composition target is the root composition target. As a consequence, the background for compositional and blend effects includes only the visuals up to the closest ancestor that itself has an effect. Conversely, any effects applied to visuals under the current visual use the newly created off-screen surface as the background, which may affect how those visuals ultimately compose on top of what the end user perceives as being "behind" those visuals.
If the effect parameter is
This method fails if effect is an invalid reference or if it was not created by the same
Sets the BitmapInterpolationMode property, which specifies the mode for Microsoft DirectComposition to use when interpolating pixels from bitmaps that are not axis-aligned or drawn exactly at scale.
The interpolation mode affects how a bitmap is composed when it is transformed such that there is no one-to-one correspondence between pixels in the bitmap and pixels on the screen.
By default, a visual inherits the interpolation mode of the parent visual, which may inherit the interpolation mode of its parent visual, and so on. A visual uses the default interpolation mode if this method is never called for the visual, or if this method is called with
If the interpolationMode parameter is anything other than
Sets the BorderMode property, which specifies how to compose the edges of bitmaps and clips associated with this visual, or with visuals in the subtree rooted at this visual.
The border mode affects how the edges of a bitmap are composed when the bitmap is transformed such that the edges are not exactly axis-aligned and at precise pixel boundaries. It also affects how content is clipped at the corners of a clip that has rounded corners, and at the edge of a clip that is transformed such that the edges are not exactly axis-aligned and at precise pixel boundaries.
By default, a visual inherits the border mode of its parent visual, which may inherit the border mode of its parent visual, and so on. A visual uses the default border mode if this method is never called for the visual, or if this method is called with
If the borderMode parameter is anything other than
Sets the Content property of this visual to the specified bitmap or window wrapper.
The content parameter must point to one of the following:
The new content replaces any content that was previously associated with the visual. If the content parameter is
A visual can be associated with a bitmap object or a window wrapper. A bitmap is either a Microsoft DirectX swap chain or a Microsoft DirectComposition surface.
A window wrapper is created with the CreateSurfaceFromHwnd method and is a stand-in for the rasterization of another window, which must be a top-level window or a layered child window. A window wrapper is conceptually equivalent to a bitmap that is the size of the target window on which the contents of the window are drawn. The contents include the target window's child windows (layered or otherwise), and any DirectComposition content that is drawn in the child windows.
A DirectComposition surface wrapper is created with the CreateSurfaceFromHandle method and is a reference to a swap chain. An application might use a surface wrapper in a cross-process scenario where one process creates the swap chain and another process associates the bitmap with a visual.
The bitmap is always drawn at position (0,0) relative to the visual's coordinate system, although the coordinate system is directly affected by the OffsetX, OffsetY, and Transform properties, as well as indirectly by the transformations on ancestor visuals. The bitmap of a visual is always drawn behind the children of that visual.
Sets the blending mode for this visual.
The composite mode determines how visual's bitmap is blended with the screen. By default, the visual is blended with "source over" semantics; that is, the colors are blended with per-pixel transparency.
Represents one DirectComposition visual in a visual tree.
Sets the opacity mode for this visual.
The opacity mode to use when composing the visual to the screen.
If the function succeeds, it returns
The opacity mode affects how the Opacity property of an effect group object affects the composition of a visual sub-tree. DirectComposition supports two opacity modes: Layer and Multiply. In Layer mode, each visual sub-tree can be logically viewed as a bitmap that contains the opaque rasterization of that entire sub-tree, to which the opacity value is then applied. In this manner, overlapping opaque surfaces blend with the sub-tree?s background, but not with each other. In contrast, in Multiply mode the opacity is applied individually to each surface as it is composed, so surfaces blend with each other. Multiply mode is faster than Layer mode and always preferred if the visual tree contains entirely non-overlapping contents. However, Multiply mode may produce undesired visual results for overlapping elements.
By default, a visual inherits the opacity mode of its parent visual, which may inherit the opacity mode of its parent visual, and so on. A visual uses the
If the opacityMode parameter is anything other than
Specifies whether or not surfaces that have 3D transformations applied to them should be displayed when facing away from the observer.
The back face visibility to use when composing surfaces in this visual?s sub-tree to the screen.
If the function succeeds, it returns
The back face visibility property affects how surfaces that have 3D transformations applied are rendered.
By default, a visual inherits the back face visibility property of its parent visual, which may inherit the back face visibility property of its parent visual, and so on. A visual uses the
If the visibility parameter is anything other than
Sets the opacity mode for this visual.
The opacity mode affects how the Opacity property of an effect group object affects the composition of a visual sub-tree. DirectComposition supports two opacity modes: Layer and Multiply. In Layer mode, each visual sub-tree can be logically viewed as a bitmap that contains the opaque rasterization of that entire sub-tree, to which the opacity value is then applied. In this manner, overlapping opaque surfaces blend with the sub-tree?s background, but not with each other. In contrast, in Multiply mode the opacity is applied individually to each surface as it is composed, so surfaces blend with each other. Multiply mode is faster than Layer mode and always preferred if the visual tree contains entirely non-overlapping contents. However, Multiply mode may produce undesired visual results for overlapping elements.
By default, a visual inherits the opacity mode of its parent visual, which may inherit the opacity mode of its parent visual, and so on. A visual uses the
If the opacityMode parameter is anything other than
Specifies whether or not surfaces that have 3D transformations applied to them should be displayed when facing away from the observer.
The back face visibility property affects how surfaces that have 3D transformations applied are rendered.
By default, a visual inherits the back face visibility property of its parent visual, which may inherit the back face visibility property of its parent visual, and so on. A visual uses the
If the visibility parameter is anything other than
Represents a debug visual.
Enables a visual heatmap that represents overdraw regions.
If the function succeeds, it returns
Heatmaps can be enabled by calling EnableHeatMap. The heatmaps are drawn on the source of the VisualDebug visual and child visuals. The heatmaps are represented in a specified color for all visual content. The heatmap color must have an transparency in order to see the overlaying overdraw regions. The colored surfaces are blended together to visually show all overdraw regions in a single view.
Disables visual heatmaps.
If the function succeeds, it returns
Enables highlighting visuals when content is being redrawn.
If the function succeeds, it returns
Highlighting redraw regions can be enabled by calling EnableRedrawRegions. With this function, redrawn client areas are visually highlighted every frame the visual is updated. Redraw regions are drawn on the source of the VisualDebug and child visuals. Redraw is triggered when properties of a visual are updated. The updated visusal does not neccessarly need to visually change to trigger a redraw. The highlighting will cycle through Blue, Yellow, Pink and Green to provide an order of which content is being updated. The redraw regions are only visible while the window of the VisualDebug is being updated.
Disables visual redraw regions.
If the function succeeds, it returns
Describes timing and composition statistics for a frame.
The
The time stamp of the last batch of commands to be processed by the composition engine.
The rate at which the composition engine is producing frames, in frames per second.
The current time as computed by the QueryPerformanceCounter function.
The units in which the lastFrameTime and currentTime members are specified, in Hertz.
The estimated time when the next frame will be displayed.