1 module directx.dcomp; 2 //--------------------------------------------------------------------------- 3 // Copyright (c) Microsoft Corporation. All rights reserved. 4 //--------------------------------------------------------------------------- 5 6 public import directx.com, directx.dcommon; 7 public import directx.dcompanimation; 8 public import directx.d2dbasetypes, directx.d3d9; 9 public import directx.d2d1_1, directx.dcomptypes; 10 11 extern(Windows) 12 { 13 extern(Windows): 14 /// Creates a new DirectComposition device object, which can be used to create 15 /// other DirectComposition objects. 16 HRESULT DCompositionCreateDevice( 17 IDXGIDevice dxgiDevice, 18 REFIID iid, 19 void** dcompositionDevice 20 ); 21 /// Creates a new DirectComposition device object, which can be used to create 22 /// other DirectComposition objects. 23 HRESULT DCompositionCreateDevice2( 24 IUnknown renderingDevice, 25 REFIID iid, 26 void** dcompositionDevice 27 ); 28 /// Creates a new DirectComposition device object, which can be used to create 29 /// other DirectComposition objects. 30 HRESULT DCompositionCreateDevice3( 31 IUnknown renderingDevice, 32 REFIID iid, 33 void** dcompositionDevice 34 ); 35 /// Creates a new composition surface object, which can be bound to a 36 /// DirectX swap chain or swap buffer or to a GDI bitmap and associated 37 /// with a visual. 38 HRESULT DCompositionCreateSurfaceHandle( 39 DWORD desiredAccess, 40 SECURITY_ATTRIBUTES* securityAttributes, 41 HANDLE* surfaceHandle 42 ); 43 /// Creates an Interaction/InputSink to route mouse wheel messages to the 44 /// given HWND. After calling this API, the device owning the visual must 45 /// be committed. 46 HRESULT DCompositionAttachMouseWheelToHwnd( 47 IDCompositionVisual visual, 48 HWND hwnd, 49 BOOL enable 50 ); 51 /// Creates an Interaction/InputSink to route mouse button down and any 52 /// subsequent move and up events to the given HWND. There is no move 53 /// thresholding; when enabled, all events including and following the down 54 /// are unconditionally redirected to the specified window. After calling this 55 /// API, the device owning the visual must be committed. 56 HRESULT DCompositionAttachMouseDragToHwnd( 57 IDCompositionVisual visual, 58 HWND hwnd, 59 BOOL enable 60 ); 61 } 62 63 mixin(uuid!(IDCompositionDevice, "C37EA93A-E7AA-450D-B16F-9746CB0407F3")); 64 /// Serves as the root factory for all other DirectComposition objects and 65 /// controls transactional composition. 66 interface IDCompositionDevice : IUnknown 67 { 68 extern(Windows): 69 /// Commits all DirectComposition commands pending on this device. 70 HRESULT Commit(); 71 /// Waits for the last Commit to be processed by the composition engine 72 HRESULT WaitForCommitCompletion(); 73 /// Gets timing information about the composition engine. 74 HRESULT GetFrameStatistics(DCOMPOSITION_FRAME_STATISTICS* statistics); 75 /// Creates a composition target bound to a window represented by an HWND. 76 HRESULT CreateTargetForHwnd( 77 HWND hwnd, 78 BOOL topmost, 79 IDCompositionTarget* target 80 ); 81 /// Creates a new visual object. 82 HRESULT CreateVisual(IDCompositionVisual* visual); 83 /// Creates a DirectComposition surface object 84 HRESULT CraeteSurface( 85 UINT width, 86 UINT height, 87 DXGI_FORMAT pixelFormat, 88 DXGI_ALPHA_MODE alphaMode, 89 IDCompositionSurface* surface 90 ); 91 /// Creates a DirectComposition virtual surface object 92 HRESULT CreateVirtualSurface( 93 UINT initialWidth, 94 UINT initialHeight, 95 DXGI_FORMAT pixelFormat, 96 DXGI_ALPHA_MODE alphaMode, 97 IDCompositionVirtualSurface* virtualSurface 98 ); 99 /// Creates a surface wrapper around a pre-existing surface that can be associated with one or more visuals for composition. 100 HRESULT CreateSurfaceForHandle( 101 HANDLE handle, 102 IUnknown* surface 103 ); 104 /// Creates a wrapper object that represents the rasterization of a layered window and which can be associated with a visual for composition. 105 HRESULT CreateSurfaceForHwnd( 106 HWND hwnd, 107 IUnknown* surface 108 ); 109 /// Creates a 2D translation transform object. 110 HRESULT CreateTranslateTransform(IDCompositionTranslateTransform* translateTransform); 111 /// Creates a 2D scale transform object. 112 HRESULT CreateScaleTransform(IDCompositionScaleTransform* scaleTransform); 113 /// Creates a 2D rotation transform object. 114 HRESULT CreateRotateTransform(IDCompositionRotateTransform* rotateTransform); 115 /// Creates a 2D skew transform object. 116 HRESULT CreateSkewTransform(IDCompositionSkewTransform* skewTransform); 117 /// Creates a 2D 3x2 matrix transform object. 118 HRESULT CreateMatrixTransform(IDCompositionMatrixTransform* matrixTransform); 119 /// Creates a 2D transform object that holds an array of 2D transform objects. 120 HRESULT CreateTransformGroup( 121 IDCompositionTransform* transforms, UINT elements, 122 IDCompositionTransform* transformGroup 123 ); 124 /// Creates a 3D translation transform object. 125 HRESULT CreateTranslateTransform3D(IDCompositionTranslateTransform3D* translateTransform3D); 126 /// Creates a 3D scale transform object. 127 HRESULT CreateScaleTransform3D(IDCompositionScaleTransform3D* scaleTransform3D); 128 /// Creates a 3D rotation transform object. 129 HRESULT CreateRotateTransform3D(IDCompositionRotateTransform3D* rotateTransform3D); 130 /// Creates a 3D 4x4 matrix transform object. 131 HRESULT CreateMatrixTransform3D(IDCompositionMatrixTransform3D* matrixTransform3D); 132 /// Creates a 3D transform object that holds an array of 3D transform objects. 133 HRESULT CreateTransform3DGroup( 134 IDCompositionTransform3D* transform3D, UINT elements, 135 IDCompositionTransform3D* transform3DGroup 136 ); 137 /// Creates an effect group 138 HRESULT CreateEffectrGroup(IDCompositionEffectGroup* effectGroup); 139 /// Creates a clip object that can be used to clip the contents of a visual subtree. 140 HRESULT CreateRectangleClip(IDCompositionRectangleClip* clip); 141 /// Creates an animation object 142 HRESULT CreateAnimation(IDCompositionAnimation animation); 143 /// Returns the states of the app's DX device and DWM's dx devices 144 HRESULT CheckDeviceState(BOOL* pfValid); 145 } 146 147 mixin(uuid!(IDCompositionTarget, "eacdd04c-117e-4e17-88f4-d1b12b0e3d89")); 148 /// An IDCompositionTarget interface represents a binding between a 149 /// DirectComposition visual tree and a destination on top of which the 150 /// visual tree should be composed. 151 interface IDCompositionTarget : IUnknown 152 { 153 extern(Windows): 154 /// Sets the root visual 155 HRESULT SetRoot(IDCompositionVisual visual); 156 } 157 158 mixin(uuid!(IDCompositionVisual, "4d93059d-097b-4651-9a60-f0f25116e2f3")); 159 /// An IDCompositionVisual interface represents a visual that participates in 160 /// a visual tree. 161 interface IDCompositionVisual : IUnknown 162 { 163 extern(Windows): 164 /// Changes the value of OffsetX property 165 HRESULT SetOffsetX(float offsetX); 166 /// Animates the value of the OffsetX property. 167 HRESULT SetOffsetX(IDCompositionAnimation animation); 168 /// Changes the value of OffsetY property 169 HRESULT SetOffsetY(float offsetY); 170 /// Animates the value of the OffsetY property. 171 HRESULT SetOffsetY(IDCompositionAnimation animation); 172 /// Sets the matrix that modifies the coordinate system of this visual. 173 HRESULT SetTransform(const(D2D_MATRIX_3X2_F)* matrix); 174 /// Sets the transformation object that modifies the coordinate system of this visual. 175 HRESULT SetTransform(IDCompositionTransform transform); 176 /// Sets the visual that should act as this visual's parent for the 177 /// purpose of establishing a base coordinate system. 178 HRESULT SetTransformParent(IDCompositionVisual visual); 179 /// Sets the effect object that is applied during the rendering of this visual 180 HRESULT SetEffect(IDCompositionEffect effect); 181 /// Sets the mode to use when interpolating pixels from bitmaps drawn not 182 /// exactly at scale and axis-aligned. 183 HRESULT SetBitmapInterpolationMode(DCOMPOSITION_BITMAP_INTERPOLATION_MODE interpolationMode); 184 /// Sets the mode to use when drawing the edge of bitmaps that are not 185 /// exactly axis-aligned and at precise pixel boundaries. 186 HRESULT SetBorderMode(DCOMPOSITION_BORDER_MODE borderMode); 187 /// Sets the clip object that restricts the rendering of this visual to a D2D rectangle. 188 HRESULT SetClip(const(D2D_RECT_F)* rect); 189 /// Sets the clip object that restricts the rendering of this visual to a rectangle. 190 HRESULT SetClip(IDCompositionClip clip); 191 /// Associates a bitmap with a visual 192 HRESULT SetContent(IUnknown content); 193 /// Adds a visual to the children list of another visual. 194 HRESULT AddVisual( 195 IDCompositionVisual visual, 196 BOOL insertAbove, 197 IDCompositionVisual referenceVisual 198 ); 199 /// Removes a visual from the children list of another visual. 200 HRESULT RemoveVisual(IDCompositionVisual visual); 201 /// Removes all visuals from the children list of another visual. 202 HRESULT RemoveAllVisuals(); 203 /// Sets the mode to use when composing the bitmap against the render target. 204 HRESULT SetCompositeMode(DCOMPOSITION_COMPOSITE_MODE compositeMode); 205 } 206 207 mixin(uuid!(IDCompositionEffect, "EC81B08F-BFCB-4e8d-B193-A915587999E8")); 208 /// An IDCompositionEffect interface represents an effect 209 interface IDCompositionEffect : IUnknown {} 210 mixin(uuid!(IDCompositionTransform3D, "71185722-246B-41f2-AAD1-0443F7F4BFC2")); 211 /// An IDCompositionTransform3D interface represents a 3D transformation. 212 interface IDCompositionTransform3D : IDCompositionEffect {} 213 mixin(uuid!(IDCompositionTransform, "FD55FAA7-37E0-4c20-95D2-9BE45BC33F55")); 214 /// An IDCompositionTransform interface represents a 2D transformation that 215 /// can be used to modify the coordinate space of a visual subtree. 216 interface IDCompositionTransform : IDCompositionTransform3D {} 217 mixin(uuid!(IDCompositionTranslateTransform, "06791122-C6F0-417d-8323-269E987F5954")); 218 /// An IDCompositionTranslateTransform interface represents a 2D transformation 219 /// that affects only the offset of a visual along the x and y axes. 220 interface IDCompositionTranslateTransform : IDCompositionTransform 221 { 222 extern(Windows): 223 /// Changes the value of the OffsetX property. 224 HRESULT SetOffsetX(float offsetX); 225 /// Animates the value of the OffsetX property. 226 HRESULT SetOffsetX(IDCompositionAnimation animation); 227 /// Changes the value of the OffsetY property. 228 HRESULT SetOffsetY(float offsetY); 229 /// Animates the value of the OffsetY property. 230 HRESULT SetOffsetY(IDCompositionAnimation animation); 231 } 232 233 mixin(uuid!(IDCompositionScaleTransform, "71FDE914-40EF-45ef-BD51-68B037C339F9")); 234 /// An IDCompositionScaleTransform interface represents a 2D transformation that 235 /// affects the scale of a visual along the x and y axes. The coordinate system 236 /// is scaled from the specified center point. 237 interface IDCompositionScaleTransform : IDCompositionTransform 238 { 239 extern(Windows): 240 /// Changes the value of the ScaleX property. 241 HRESULT SetScaleX(float scaleX); 242 /// Animates the value of the ScaleX property. 243 HRESULT SetScaleX(IDCompositionAnimation animation); 244 /// Changes the value of the ScaleY property. 245 HRESULT SetScaleY(float scaleY); 246 /// Animates the value of the ScaleY property. 247 HRESULT SetScaleY(IDCompositionAnimation animation); 248 /// Changes the value of the CenterX property. 249 HRESULT SetCenterX(float centerX); 250 /// Animates the value of the CenterX property. 251 HRESULT SetCenterX(IDCompositionAnimation animation); 252 /// Changes the value of the CenterY property. 253 HRESULT SetCenterY(float centerY); 254 /// Animates the value of the CenterY property. 255 HRESULT SetCenterY(IDCompositionAnimation animation); 256 } 257 258 mixin(uuid!(IDCompositionRotateTransform, "641ED83C-AE96-46c5-90DC-32774CC5C6D5")); 259 /// An IDCompositionRotateTransform interface represents a 2D transformation 260 /// that affects the rotation of a visual along the z axis. The coordinate system 261 /// is rotated around the specified center point. 262 interface IDCompositionRotateTransform : IDCompositionTransform 263 { 264 extern(Windows): 265 /// Changes the value of the Angle property. 266 HRESULT SetAngle(float angle); 267 /// Animates the value of the Angle property. 268 HRESULT SetAngle(IDCompositionAnimation animation); 269 /// Changes the value of the CenterX property. 270 HRESULT SetCenterX(float centerX); 271 /// Animates the value of the CenterX property. 272 HRESULT SetCenterX(IDCompositionAnimation animation); 273 /// Changes the value of the CenterY property. 274 HRESULT SetCenterY(float centerY); 275 /// Animates the value of the CenterY property. 276 HRESULT SetCenterY(IDCompositionAnimation animation); 277 } 278 279 mixin(uuid!(IDCompositionSkewTransform, "E57AA735-DCDB-4c72-9C61-0591F58889EE")); 280 /// An IDCompositionSkewTransform interface represents a 2D transformation that 281 /// affects the skew of a visual along the x and y axes. The coordinate system 282 /// is skewed around the specified center point. 283 interface IDCompositionSkewTransform : IDCompositionTransform 284 { 285 extern(Windows): 286 /// Changes the value of the AngleX property. 287 HRESULT SetAngleX(float angleX); 288 /// Animates the value of the AngleX property. 289 HRESULT SetAngleX(IDCompositionAnimation animation); 290 /// Changes the value of the AngleY property. 291 HRESULT SetAngleY(float angleY); 292 /// Animates the value of the AngleY property. 293 HRESULT SetAngleY(IDCompositionAnimation animation); 294 /// Changes the value of the CenterX property. 295 HRESULT SetCenterX(float centerX); 296 /// Animates the value of the CenterX property. 297 HRESULT SetCenterX(IDCompositionAnimation animation); 298 /// Changes the value of the CenterY property. 299 HRESULT SetCenterY(float centerY); 300 /// Animates the value of the CenterY property. 301 HRESULT SetCenterY(IDCompositionAnimation animation); 302 } 303 304 mixin(uuid!(IDCompositionMatrixTransform, "16CDFF07-C503-419c-83F2-0965C7AF1FA6")); 305 /// An IDCompositionMatrixTransform interface represents an arbitrary affine 306 /// 2D transformation defined by a 3x2 matrix. 307 interface IDCompositionMatrixTransform : IDCompositionTransform 308 { 309 extern(Windows): 310 /// Changes all values of the matrix of this transform. 311 HRESULT SetMatrix(const(D2D_MATRIX_3X2_F)* matrix); 312 /// Changes a single element of the matrix of this transform. 313 HRESULT SetMatrixElement(int row, int column, float value); 314 /// Animates a single element of the matrix of this transform. 315 HRESULT SetMatrixElement(int row, int column, IDCompositionAnimation animation); 316 } 317 318 mixin(uuid!(IDCompositionEffectGroup, "A7929A74-E6B2-4bd6-8B95-4040119CA34D")); 319 /// An IDCompositionEffectGroup holds effects, inluding 3D transforms that can 320 /// be applied to a visual. 321 interface IDCompositionEffectGroup : IDCompositionEffect 322 { 323 extern(Windows): 324 /// Changes the opacity property. 325 HRESULT SetOpacity(float opacity); 326 /// Animates the opacity property 327 HRESULT SetOpacity(IDCompositionAnimation animation); 328 /// Sets the 3D transform 329 HRESULT SetTransform3D(IDCompositionTransform3D transform3D); 330 } 331 332 mixin(uuid!(IDCompositionTranslateTransform3D, "91636D4B-9BA1-4532-AAF7-E3344994D788")); 333 /// An IDCompositionTranslateTransform3D interface represents a 3D transformation 334 /// that affects the offset of a visual along the x,y and z axes. 335 interface IDCompositionTranslateTransform3D : IDCompositionTransform3D 336 { 337 extern(Windows): 338 /// Changes the value of the OffsetX property. 339 HRESULT SetOffsetX(float offsetX); 340 /// Animates the value of the OffsetX property. 341 HRESULT SetOffsetX(IDCompositionAnimation animation); 342 /// Changes the value of the OffsetY property. 343 HRESULT SetOffsetY(float offsetY); 344 /// Animates the value of the OffsetY property. 345 HRESULT SetOffsetY(IDCompositionAnimation animation); 346 /// Changes the value of the OffsetZ property. 347 HRESULT SetOffsetZ(float offsetZ); 348 /// Animates the value of the OffsetZ property. 349 HRESULT SetOffsetZ(IDCompositionAnimation animation); 350 } 351 352 mixin(uuid!(IDCompositionScaleTransform3D, "2A9E9EAD-364B-4b15-A7C4-A1997F78B389")); 353 /// An IDCompositionScaleTransform3D interface represents a 3D transformation that 354 /// affects the scale of a visual along the x, y and z axes. The coordinate system 355 /// is scaled from the specified center point. 356 interface IDCompositionScaleTransform3D : IDCompositionTransform3D 357 { 358 extern(Windows): 359 /// Changes the value of the ScaleX property. 360 HRESULT SetScaleX(float scaleX); 361 /// Animates the value of the ScaleX property. 362 HRESULT SetScaleX(IDCompositionAnimation animation); 363 /// Changes the value of the ScaleY property. 364 HRESULT SetScaleY(float scaleY); 365 /// Animates the value of the ScaleY property. 366 HRESULT SetScaleY(IDCompositionAnimation animation); 367 /// Changes the value of the ScaleZ property. 368 HRESULT SetScaleZ(float scaleZ); 369 /// Animates the value of the ScaleZ property. 370 HRESULT SetScaleZ(IDCompositionAnimation animation); 371 /// Changes the value of the CenterX property. 372 HRESULT SetCenterX(float centerX); 373 /// Animates the value of the CenterX property. 374 HRESULT SetCenterX(IDCompositionAnimation animation); 375 /// Changes the value of the CenterY property. 376 HRESULT SetCenterY(float centerY); 377 /// Animates the value of the CenterY property. 378 HRESULT SetCenterY(IDCompositionAnimation animation); 379 /// Changes the value of the CenterZ property. 380 HRESULT SetCenterZ(float centerZ); 381 /// Animates the value of the CenterZ property. 382 HRESULT SetCenterZ(IDCompositionAnimation animation); 383 } 384 385 mixin(uuid!(IDCompositionRotateTransform3D, "D8F5B23F-D429-4a91-B55A-D2F45FD75B18")); 386 /// An IDCompositionRotateTransform3D interface represents a 3D transformation 387 /// that affects the rotation of a visual along the specified axis at the 388 /// specified center point. 389 interface IDCompositionRotateTransform3D : IDCompositionTransform3D 390 { 391 extern(Windows): 392 /// Changes the value of the Angle property. 393 HRESULT SetAngle(float angle); 394 /// Animates the value of the Angle property. 395 HRESULT SetAngle(IDCompositionAnimation animation); 396 /// Changes the value of the AxisX property. 397 HRESULT SetAxisX(float axisX); 398 /// Animates the value of the AxisX property. 399 HRESULT SetAxisX(IDCompositionAnimation animation); 400 /// Changes the value of the AxisY property. 401 HRESULT SetAxisY(float axisY); 402 /// Animates the value of the AxisY property. 403 HRESULT SetAxisY(IDCompositionAnimation animation); 404 /// Changes the value of the AxisZ property. 405 HRESULT SetAxisZ(float axisZ); 406 /// Animates the value of the AxisZ property. 407 HRESULT SetAxisZ(IDCompositionAnimation animation); 408 /// Changes the value of the CenterX property. 409 HRESULT SetCenterX(float centerX); 410 /// Animates the value of the CenterX property. 411 HRESULT SetCenterX(IDCompositionAnimation animation); 412 /// Changes the value of the CenterY property. 413 HRESULT SetCenterY(float centerY); 414 /// Animates the value of the CenterY property. 415 HRESULT SetCenterY(IDCompositionAnimation animation); 416 /// Changes the value of the CenterZ property. 417 HRESULT SetCenterZ(float centerZ); 418 /// Animates the value of the CenterZ property. 419 HRESULT SetCenterZ(IDCompositionAnimation animation); 420 } 421 422 mixin(uuid!(IDCompositionMatrixTransform3D, "4B3363F0-643B-41b7-B6E0-CCF22D34467C")); 423 /// An IDCompositionMatrixTransform3D interface represents an arbitrary 424 /// 3D transformation defined by a 4x4 matrix. 425 interface IDCompositionMatrixTransform3D : IDCompositionTransform3D 426 { 427 extern(Windows): 428 /// Changes all values of the matrix of this transform. 429 HRESULT SetMatrix(const(D3DMATRIX)* matrix); 430 /// Changes a single element of the matrix of this transform. 431 HRESULT SetMatrixElement(int row, int column, float value); 432 /// Animates a single element of the matrix of this transform. 433 HRESULT SetMatrixElement(int row, int column, IDCompositionAnimation animation); 434 } 435 mixin(uuid!(IDCompositionClip, "64AC3703-9D3F-45ec-A109-7CAC0E7A13A7")); 436 /// An IDCompositionClip interface represents a rectangle that restricts the 437 /// rasterization of a visual subtree. 438 interface IDCompositionClip : IUnknown {} 439 mixin(uuid!(IDCompositionRectangleClip, "9842AD7D-D9CF-4908-AED7-48B51DA5E7C2")); 440 /// An IDCompositionRectangleClip interface represents a rectangle that restricts 441 /// the rasterization of a visual subtree. 442 interface IDCompositionRectangleClip : IDCompositionClip 443 { 444 extern(Windows): 445 /// Changes the value of the Left property. 446 HRESULT SetLeft(float left); 447 /// Animates the value of the Left property. 448 HRESULT SetLeft(IDCompositionAnimation animation); 449 /// Changes the value of the Top property. 450 HRESULT SetTop(float top); 451 /// Animates the value of the Top property. 452 HRESULT SetTop(IDCompositionAnimation animation); 453 /// Changes the value of the Right property. 454 HRESULT SetRight(float right); 455 /// Animates the value of the Right property. 456 HRESULT SetRight(IDCompositionAnimation animation); 457 /// Changes the value of the Bottom property. 458 HRESULT SetBottom(float bottom); 459 /// Animates the value of the Bottom property. 460 HRESULT SetBottom(IDCompositionAnimation animation); 461 /// Changes the value of the x radius of the ellipse that rounds the 462 /// top-left corner of the clip. 463 HRESULT SetTopLeftRadiusX(float radius); 464 /// Animates the value of the x radius of the ellipse that rounds the 465 /// top-left corner of the clip. 466 HRESULT SetTopLeftRadiusX(IDCompositionAnimation animation); 467 /// Changes the value of the y radius of the ellipse that rounds the 468 /// top-left corner of the clip. 469 HRESULT SetTopLeftRadiusY(float radius); 470 /// Animates the value of the y radius of the ellipse that rounds the 471 /// top-left corner of the clip. 472 HRESULT SetTopLeftRadiusY(IDCompositionAnimation animation); 473 /// Changes the value of the x radius of the ellipse that rounds the 474 /// top-right corner of the clip. 475 HRESULT SetTopRightRadiusX(float radius); 476 /// Animates the value of the x radius of the ellipse that rounds the 477 /// top-right corner of the clip. 478 HRESULT SetTopRightRadiusX(IDCompositionAnimation animation); 479 /// Changes the value of the y radius of the ellipse that rounds the 480 /// top-right corner of the clip. 481 HRESULT SetTopRightRadiusY(float radius); 482 /// Animates the value of the y radius of the ellipse that rounds the 483 /// top-right corner of the clip. 484 HRESULT SettopRightRadiusY(IDCompositionAnimation animation); 485 /// Changes the value of the x radius of the ellipse that rounds the 486 /// bottom-left corner of the clip. 487 HRESULT SetBottomLeftRadiusX(float radius); 488 /// Animates the value of the x radius of the ellipse that rounds the 489 /// bottom-left corner of the clip. 490 HRESULT SetBottomLeftRadiusX(IDCompositionAnimation animation); 491 /// Changes the value of the y radius of the ellipse that rounds the 492 /// bottom-left corner of the clip. 493 HRESULT SetBottomLeftRadiusY(float radius); 494 /// Animates the value of the y radius of the ellipse that rounds the 495 /// bottom-left corner of the clip. 496 HRESULT SetBottomLeftRadiusY(IDCompositionAnimation animation); 497 /// Changes the value of the x radius of the ellipse that rounds the 498 /// bottom-right corner of the clip. 499 HRESULT SetBottomRightRadiusX(float radius); 500 /// Animates the value of the x radius of the ellipse that rounds the 501 /// bottom-right corner of the clip. 502 HRESULT SetBottomRightRadiusX(IDCompositionAnimation animation); 503 /// Changes the value of the y radius of the ellipse that rounds the 504 /// bottom-right corner of the clip. 505 HRESULT SetBottomRightRadiusY(float radius); 506 /// Animates the value of the y radius of the ellipse that rounds the 507 /// bottom-right corner of the clip. 508 HRESULT SetBottomRightRadiusY(IDCompositionAnimation animation); 509 } 510 511 mixin(uuid!(IDCompositionSurface, "BB8A4953-2C99-4F5A-96F5-4819027FA3AC")); 512 /// An IDCompositionSurface interface represents a wrapper around a DirectX 513 /// object, or a sub-rectangle of one of those objects. 514 interface IDCompositionSurface : IUnknown 515 { 516 extern(Windows): 517 HRESULT BeginDraw(const(RECT)* updateRect, REFIID iid, void** updateObject, POINT* updateOffset); 518 HRESULT EndDraw(); 519 HRESULT SuspendDraw(); 520 HRESULT ResumeDraw(); 521 HRESULT Scroll( 522 const(RECT)* scrollRect, 523 const(RECT)* clipRect, 524 int offsetX, 525 int offsetY); 526 } 527 mixin(uuid!(IDCompositionVirtualSurface, "AE471C51-5F53-4A24-8D3E-D0C39C30B3F0")); 528 /// An IDCompositionVirtualSurface interface represents a sparsely 529 /// allocated surface. 530 interface IDCompositionVirtualSurface : IDCompositionSurface 531 { 532 extern(Windows): 533 HRESULT Resize(UINT width, UINT height); 534 HRESULT Trim(const(RECT)* rectangles, UINT count); 535 } 536 537 mixin(uuid!(IDCompositionDevice2, "75F6468D-1B8E-447C-9BC6-75FEA80B5B25")); 538 /// Serves as the root factory for all other DirectComposition2 objects and 539 /// controls transactional composition. 540 interface IDCompositionDevice2 : IUnknown 541 { 542 extern(Windows): 543 /// Commits all DirectComposition commands pending on this device. 544 HRESULT Commit(); 545 /// Waits for the last Commit to be processed by the composition engine 546 HRESULT WaitForCommitCompletion(); 547 /// Gets timing information about the composition engine. 548 HRESULT GetFrameStatistics(DCOMPOSITION_FRAME_STATISTICS* statistics); 549 /// Creates a new visual object. 550 HRESULT CreateVisual(IDCompositionVisual2* visual); 551 /// Creates a factory for surface objects 552 HRESULT CreateSurfaceFactory(IUnknown renderingDevice, IDCompositionSurfaceFactory* surfaceFactory); 553 /// Creates a DirectComposition surface object 554 HRESULT CreateSurface( 555 UINT width, 556 UINT height, 557 DXGI_FORMAT pixelFormat, 558 DXGI_ALPHA_MODE alphaMode, 559 IDCompositionSurface* surface); 560 /// Creates a DirectComposition virtual surface object 561 HRESULT CreateVirtualSurface( 562 UINT initialWidth, 563 UINT initialHeight, 564 DXGI_FORMAT pixelFormat, 565 DXGI_ALPHA_MODE alphaMode, 566 IDCompositionVirtualSurface* virtualSurface); 567 /// Creates a 2D translation transform object. 568 HRESULT CreateTranslateTransform(IDCompositionTranslateTransform* translateTransform); 569 /// Creates a 2D scale transform object. 570 HRESULT CreateScaleTransform(IDCompositionScaleTransform* scaleTransform); 571 /// Creates a 2D rotation transform object. 572 HRESULT CreateRotateTransform(IDCompositionRotateTransform* rotateTransform); 573 /// Creates a 2D skew transform object. 574 HRESULT CreateSkewTransform(IDCompositionSkewTransform* skewTransform); 575 /// Creates a 2D 3x2 matrix transform object. 576 HRESULT CreateMatrixTransform(IDCompositionMatrixTransform* matrixTransform); 577 /// Creates a 2D transform object that holds an array of 2D transform objects. 578 HRESULT CreateTransformGroup( 579 IDCompositionTransform* transforms, UINT elements, 580 IDCompositionTransform* transformGroup); 581 /// Creates a 3D translation transform object. 582 HRESULT CreateTranslateTransform3D(IDCompositionTranslateTransform3D* translateTransform3D); 583 /// Creates a 3D scale transform object. 584 HRESULT CreateScaleTransform3D(IDCompositionScaleTransform3D* scaleTransform3D); 585 /// Creates a 3D rotation transform object. 586 HRESULT CreateRotateTransform3D(IDCompositionRotateTransform3D* rotateTransfrom3D); 587 /// Creates a 3D 4x4 matrix transform object. 588 HRESULT CreateMatrixTransform3D(IDCompositionMatrixTransform3D* matrixTransform3D); 589 /// Creates a 3D transform object that holds an array of 3D transform objects. 590 HRESULT CreateTransform3DGroup( 591 IDCompositionTransform3D* transforms3D, UINT elements, 592 IDCompositionTransform3D* transform3DGroup); 593 /// Creates an effect group 594 HRESULT CreateEffectGroup(IDCompositionEffectGroup* effectGroup); 595 /// Creates a clip object that can be used to clip the contents of a visual subtree. 596 HRESULT CreateRectangleClip(IDCompositionRectangleClip* clip); 597 /// Creates an animation object 598 HRESULT CreateAnimation(IDCompositionAnimation animation); 599 } 600 601 mixin(uuid!(IDCompositionDesktopDevice, "5F4633FE-1E08-4CB8-8C75-CE24333F5602")); 602 /// Serves as the root factory for all other desktop DirectComposition 603 /// objects. 604 interface IDCompositionDesktopDevice : IDCompositionDevice2 605 { 606 extern(Windows): 607 HRESULT CreateTargetForHwnd(HWND hwnd, BOOL topmost, IDCompositionTarget* target); 608 /// Creates a surface wrapper around a pre-existing surface that can be associated with one or more visuals for composition. 609 HRESULT CreateSurfaceFromHandle(HANDLE handle, IUnknown* surface); 610 /// Creates a wrapper object that represents the rasterization of a layered window and which can be associated with a visual for composition. 611 HRESULT CreateSurfaceFromHwnd(HWND hwnd, IUnknown* surface); 612 } 613 614 mixin(uuid!(IDCompositionDeviceDebug, "A1A3C64A-224F-4A81-9773-4F03A89D3C6C")); 615 /// IDCompositionDeviceDebug serves as a debug interface 616 interface IDCompositionDeviceDebug : IUnknown 617 { 618 extern(Windows): 619 /// Enables debug counters 620 HRESULT EnableDebugCounters(); 621 /// Enables debug counters 622 HRESULT DisableDebugCounters(); 623 } 624 625 mixin(uuid!(IDCompositionSurfaceFactory, "E334BC12-3937-4E02-85EB-FCF4EB30D2C8")); 626 /// An IDCompositionSurfaceFactory interface represents an object that can 627 /// create surfaces suitable for composition. 628 interface IDCompositionSurfaceFactory : IUnknown 629 { 630 extern(Windows): 631 /// Creates a DirectComposition surface object 632 HRESULT CreateSurface( 633 UINT width, 634 UINT height, 635 DXGI_FORMAT pixelFormat, 636 DXGI_ALPHA_MODE alphaMode, 637 IDCompositionSurface* surface); 638 /// Creates a DirectComposition virtual surface object 639 HRESULT CreateVirtualSurface( 640 UINT initialWidth, 641 UINT initialHeight, 642 DXGI_FORMAT pixelFormat, 643 DXGI_ALPHA_MODE alphaMode, 644 IDCompositionVirtualSurface* virtualSurface); 645 } 646 647 mixin(uuid!(IDCompositionVisual2, "E8DE1639-4331-4B26-BC5F-6A321D347A85")); 648 /// An IDCompositionVisual2 interface represents a visual that participates in 649 /// a visual tree. 650 interface IDCompositionVisual2 : IDCompositionVisual 651 { 652 extern(Windows): 653 /// Changes the interpretation of the opacity property of an effect group 654 /// associated with this visual 655 HRESULT SetOpacityMode(DCOMPOSITION_OPACITY_MODE mode); 656 /// Sets back face visibility 657 HRESULT SetBackFaceVisibility(DCOMPOSITION_BACKFACE_VISIBILITY visibility); 658 } 659 660 mixin(uuid!(IDCompositionVisualDebug, "FED2B808-5EB4-43A0-AEA3-35F65280F91B")); 661 /// An IDCompositionVisualDebug interface represents a debug visual 662 interface IDCompositionVisualDebug : IDCompositionVisual2 663 { 664 extern(Windows): 665 /// Enable heat map 666 HRESULT EnableHeatMap(const(D2D1_COLOR_F)* color); 667 /// Disable heat map 668 HRESULT DisableHeatMap(); 669 /// Enable redraw regions 670 HRESULT EnableRedrawRegions(); 671 /// Disable redraw regions 672 HRESULT DisableRedrawRegions(); 673 } 674 675 mixin(uuid!(IDCompositionVisual3, "2775F462-B6C1-4015-B0BE-B3E7D6A4976D")); 676 /// An IDCompositionVisual3 interface represents a visual that participates in 677 /// a visual tree. 678 interface IDCompositionVisual3 : IDCompositionVisualDebug 679 { 680 extern(Windows): 681 /// Sets depth mode property associated with this visual 682 HRESULT SetDepthMode(DCOMPOSITION_DEPTH_MODE mode); 683 /// Changes the value of OffsetZ property. 684 HRESULT SetOffsetZ(float offsetZ); 685 /// Animates the value of the OffsetZ property. 686 HRESULT SetOffsetZ(IDCompositionAnimation animation); 687 /// Changes the value of the Opacity property. 688 HRESULT SetOpacity(float opacity); 689 /// Animates the value of the Opacity property. 690 HRESULT SetOpacity(IDCompositionAnimation animation); 691 /// Sets the matrix that modifies the coordinate system of this visual. 692 HRESULT SetTransform(const(D2D_MATRIX_4X4_F)* matrix); 693 /// Sets the transformation object that modifies the coordinate system of this visual. 694 HRESULT SetTransform(IDCompositionTransform3D transform); 695 /// Changes the value of the Visible property 696 HRESULT SetVisible(BOOL visible); 697 } 698 699 mixin(uuid!(IDCompositionDevice3, "0987CB06-F916-48BF-8D35-CE7641781BD9")); 700 /// Serves as the root factory for all other DirectComposition3 objects and 701 /// controls transactional composition. 702 interface IDCompositionDevice3 : IDCompositionDevice2 703 { 704 extern(Windows): 705 /// Effect creation calls, each creates an interface around a D2D1Effect 706 HRESULT CreateGaussianBlurEffect(IDCompositionGaussianBlurEffect* gaussianBlurEffect); 707 HRESULT CreateBrightnessEffect(IDCompositionBrightnessEffect* brightnessEffect); 708 HRESULT CreateColorMatrixEffect(IDCompositionColorMatrixEffect* colorMatrixEffect); 709 HRESULT CreateShadowEffect(IDCompositionShadowEffect* shadowEffect); 710 HRESULT CreateHueRotationEffect(IDCompositionHueRotationEffect* hueRotationEffect); 711 HRESULT CreateSaturationEffect(IDCompositionSaturationEffect* saturationEffect); 712 HRESULT CreateTurbulenceEffect(IDCompositionTurbulenceEffect* turbulenceEffect); 713 HRESULT CreateLinearTransferEffect(IDCompositionLinearTransferEffect* linearTransferEffect); 714 HRESULT CreateTableTransferEffect(IDCompositionTableTransferEffect* tableTransferEffect); 715 HRESULT CreateCompositeEffect(IDCompositionCompositeEffect* compositeEffect); 716 HRESULT CreateBlendEffect(IDCompositionBlendEffect* blendEffect); 717 HRESULT CreateArithmeticCompositeEffect(IDCompositionArithmeticCompositeEffect* arithmeticCompositeEffect); 718 HRESULT CreateAffineTransform2DEffect(IDCompositionAffineTransform2DEffect* affineTransform2dEffect); 719 } 720 721 mixin(uuid!(IDCompositionFilterEffect, "30C421D5-8CB2-4E9F-B133-37BE270D4AC2")); 722 /// An IDCompositionFilterEffect interface represents a filter effect 723 interface IDCompositionFilterEffect : IDCompositionEffect 724 { 725 extern(Windows): 726 /// Sets the input at the given index to the filterEffect (NULL will use source visual, unless flagged otherwise) 727 HRESULT SetInput(UINT index, IUnknown input, UINT flags); 728 } 729 730 mixin(uuid!(IDCompositionGaussianBlurEffect, "45D4D0B7-1BD4-454E-8894-2BFA68443033")); 731 /// An IDCompositionGaussianBlurEffect interface represents a gaussian blur filter effect 732 interface IDCompositionGaussianBlurEffect : IDCompositionFilterEffect 733 { 734 extern(Windows): 735 /// Changes the amount of blur to be applied. 736 HRESULT SetStandardDeviation(float amount); 737 HRESULT SetStandardDeviation(IDCompositionAnimation animation); 738 /// Changes border mode (see D2D1_GAUSSIANBLUR) 739 HRESULT SetBorderMode(D2D1_BORDER_MODE mode); 740 } 741 742 mixin(uuid!(IDCompositionBrightnessEffect, "6027496E-CB3A-49AB-934F-D798DA4F7DA6")); 743 /// An IDCompositionBrightnessEffect interface represents a brightness filter effect 744 interface IDCompositionBrightnessEffect : IDCompositionFilterEffect 745 { 746 extern(Windows): 747 /// Changes the value of white point property. 748 HRESULT SetWhitePoint(const(D2D1_VECTOR_2F)* whitePoint); 749 /// Changes the value of black point property 750 HRESULT SetBlackPoint(const(D2D1_VECTOR_2F)* blackPoint); 751 /// Changes the X value of the white point property. 752 HRESULT SetWhitePointX(float whitePointX); 753 HRESULT SetWhitePointX(IDCompositionAnimation animation); 754 /// Changes the Y value of the white point property. 755 HRESULT SetWhitePointY(float whitePointY); 756 HRESULT SetWhitePointY(IDCompositionAnimation animation); 757 /// Changes the X value of the black point property. 758 HRESULT SetBlackPointX(float blackPointX); 759 HRESULT SetBlackPointX(IDCompositionAnimation animation); 760 /// Changes the Y value of the black point property. 761 HRESULT SetBlackPointY(float blackPointY); 762 HRESULT SetBlackPointY(IDCompositionAnimation animation); 763 } 764 765 mixin(uuid!(IDCompositionColorMatrixEffect, "C1170A22-3CE2-4966-90D4-55408BFC84C4")); 766 /// An IDCompositionColorMatrixEffect interface represents a color matrix filter effect 767 interface IDCompositionColorMatrixEffect : IDCompositionFilterEffect 768 { 769 extern(Windows): 770 /// Changes all values of the matrix for a color transform 771 HRESULT SetMatrix(const(D2D1_MATRIX_5X4_F)* matrix); 772 /// Changes a single element of the matrix of this color transform. 773 HRESULT SetMatrixElement(int row, int column, float value); 774 /// Animates a single element of the matrix of this color transform. 775 HRESULT SetMatrixElement(int row, int column, IDCompositionAnimation animation); 776 /// Changes the alpha mode 777 HRESULT SetAlphaMode(D2D1_COLORMATRIX_ALPHA_MODE mode); 778 /// Sets the clamp output property 779 HRESULT SetClampOutput(BOOL clamp); 780 } 781 782 mixin(uuid!(IDCompositionShadowEffect, "4AD18AC0-CFD2-4C2F-BB62-96E54FDB6879")); 783 /// An IDCompositionShadowEffect interface represents a shadow filter effect 784 interface IDCompositionShadowEffect : IDCompositionFilterEffect 785 { 786 extern(Windows): 787 /// Changes the amount of blur to be applied. 788 HRESULT SetStandardDeviation(float amount); 789 HRESULT SetStandardDeviation(IDCompositionAnimation animation); 790 /// Changes shadow color 791 HRESULT SetColor(const(D2D1_VECTOR_4F)* color); 792 HRESULT SetRed(float amount); 793 HRESULT SetRed(IDCompositionAnimation animation); 794 HRESULT SetGreen(float amount); 795 HRESULT SetGreen(IDCompositionAnimation animation); 796 HRESULT SetBlue(float amount); 797 HRESULT SetBlue(IDCompositionAnimation animation); 798 HRESULT SetAlpha(float amount); 799 HRESULT SetAlpha(IDCompositionAnimation animation); 800 } 801 802 mixin(uuid!(IDCompositionHueRotationEffect, "6DB9F920-0770-4781-B0C6-381912F9D167")); 803 /// An IDCompositionHueRotationEffect interface represents a hue rotation filter effect 804 interface IDCompositionHueRotationEffect : IDCompositionFilterEffect 805 { 806 extern(Windows): 807 /// Changes the angle of rotation 808 HRESULT SetAngle(float amountDegrees); 809 HRESULT SetAngle(IDCompositionAnimation animation); 810 } 811 812 mixin(uuid!(IDCompositionSaturationEffect, "A08DEBDA-3258-4FA4-9F16-9174D3FE93B1")); 813 /// An IDCompositionSaturationEffect interface represents a saturation filter effect 814 interface IDCompositionSaturationEffect : IDCompositionFilterEffect 815 { 816 extern(Windows): 817 /// Changes the amount of saturation to be applied. 818 HRESULT SetSaturation(float ratio); 819 HRESULT SetSaturation(IDCompositionAnimation animation); 820 } 821 822 mixin(uuid!(IDCompositionTurbulenceEffect, "A6A55BDA-C09C-49F3-9193-A41922C89715")); 823 /// An IDCompositionTurbulenceEffect interface represents a turbulence filter effect 824 interface IDCompositionTurbulenceEffect : IDCompositionFilterEffect 825 { 826 extern(Windows): 827 /// Changes the starting offset of the turbulence 828 HRESULT SetOffset(const(D2D1_VECTOR_2F)* offset); 829 /// Changes the base frequency of the turbulence 830 HRESULT SetBaseFrequency(const(D2D1_VECTOR_2F)* frequency); 831 /// Changes the output size of the turbulence 832 HRESULT SetSize(const(D2D1_VECTOR_2F)* size); 833 /// Sets the number of octaves 834 HRESULT SetNumOctaves(UINT numOctaves); 835 /// Set the random number seed 836 HRESULT SetSeed(UINT seed); 837 /// Set the noise mode 838 HRESULT SetNoise(D2D1_TURBULENCE_NOISE noise); 839 /// Set stitchable 840 HRESULT SetStitchable(BOOL stitchable); 841 } 842 843 mixin(uuid!(IDCompositionLinearTransferEffect, "4305EE5B-C4A0-4C88-9385-67124E017683")); 844 /// An IDCompositionLinearTransferEffect interface represents a linear transfer filter effect 845 interface IDCompositionLinearTransferEffect : IDCompositionFilterEffect 846 { 847 extern(Windows): 848 HRESULT SetRedYIntercept(float redYIntercept); 849 HRESULT SetRedYIntercept(IDCompositionAnimation animation); 850 HRESULT SetRedSlope(float redSlope); 851 HRESULT SetRedSlope(IDCompositionAnimation animation); 852 HRESULT SetRedDisable(BOOL redDisable); 853 HRESULT SetGreenYIntercept(float greenYIntercept); 854 HRESULT SetGreenYIntercept(IDCompositionAnimation animation); 855 HRESULT SetGreenSlope(float greenSlope); 856 HRESULT SetGreenSlope(IDCompositionAnimation animation); 857 HRESULT SetGreenDisable(BOOL greenDisable); 858 HRESULT SetBlueYIntercept(float blueYIntercept); 859 HRESULT SetBlueYIntercept(IDCompositionAnimation animation); 860 HRESULT SetBlueSlope(float blueSlope); 861 HRESULT SetBlueSlope(IDCompositionAnimation animation); 862 HRESULT SetBlueDisable(BOOL blueDisable); 863 HRESULT SetAlphaYIntercept(float alphaYIntercept); 864 HRESULT SetAlphaYIntercept(IDCompositionAnimation animation); 865 HRESULT SetAlphaSlope(float alphaSlope); 866 HRESULT SetAlphaSlope(IDCompositionAnimation animation); 867 HRESULT SetAlphaDisable(BOOL alphaDisable); 868 HRESULT SetClampOutput(BOOL clampOutput); 869 } 870 871 mixin(uuid!(IDCompositionTableTransferEffect, "9B7E82E2-69C5-4EB4-A5F5-A7033F5132CD")); 872 /// An IDCompositionTableTransferEffect interface represents a Table transfer filter effect 873 interface IDCompositionTableTransferEffect : IDCompositionFilterEffect 874 { 875 extern(Windows): 876 HRESULT SetRedTable(const(float)* tableValues, UINT count); 877 HRESULT SetGreenTable(const(float)* tableValues, UINT count); 878 HRESULT SetBlueTable(const(float)* tableValues, UINT count); 879 HRESULT SetAlphaTable(const(float)* tableValues, UINT count); 880 HRESULT SetRedDisable(BOOL redDisable); 881 HRESULT SetGreenDisable(BOOL greenDisable); 882 HRESULT SetBlueDisable(BOOL blueDisable); 883 HRESULT SetAlphaDisable(BOOL alphaDisable); 884 HRESULT SetClampOutput(BOOL clampOutput); 885 /// Note: To set individual values, the table must have already been initialized 886 //// with a buffer of values of the appropriate size, or these calls will fail 887 HRESULT SetRedTableValue(UINT index, float value); 888 HRESULT SetRedTableValue(UINT index, IDCompositionAnimation animation); 889 HRESULT SetGreenTableValue(UINT index, float value); 890 HRESULT SetGreenTableValue(UINT index, IDCompositionAnimation animation); 891 HRESULT SetBlueTableValue(UINT index, float value); 892 HRESULT SetBlueTableValue(UINT index, IDCompositionAnimation animation); 893 HRESULT SetAlphaTableValue(UINT index, float value); 894 HRESULT SetAlphaTableValue(UINT index, IDCompositionAnimation animation); 895 } 896 897 mixin(uuid!(IDCompositionCompositeEffect, "576616C0-A231-494D-A38D-00FD5EC4DB46")); 898 /// An IDCompositionCompositeEffect interface represents a composite filter effect 899 interface IDCompositionCompositeEffect : IDCompositionFilterEffect 900 { 901 extern(Windows): 902 /// Changes the composite mode. 903 HRESULT SetMode(D2D1_COMPOSITE_MODE mode); 904 } 905 906 mixin(uuid!(IDCompositionBlendEffect, "33ECDC0A-578A-4A11-9C14-0CB90517F9C5")); 907 /// An IDCompositionBlendEffect interface represents a blend filter effect 908 interface IDCompositionBlendEffect : IDCompositionFilterEffect 909 { 910 extern(Windows): 911 HRESULT SetMode(D2D1_BLEND_MODE mode); 912 } 913 914 mixin(uuid!(IDCompositionArithmeticCompositeEffect, "3B67DFA8-E3DD-4E61-B640-46C2F3D739DC")); 915 /// An IDCompositionArithmeticCompositeEffect interface represents an arithmetic composite filter effect 916 interface IDCompositionArithmeticCompositeEffect : IDCompositionFilterEffect 917 { 918 extern(Windows): 919 HRESULT SetCoefficients(const(D2D1_VECTOR_4F)* coefficients); 920 HRESULT SetClampOutput(BOOL clampoutput); 921 HRESULT SetCoefficient1(float Coeffcient1); 922 HRESULT SetCoefficient1(IDCompositionAnimation animation); 923 HRESULT SetCoefficient2(float Coefficient2); 924 HRESULT SetCoefficient2(IDCompositionAnimation animation); 925 HRESULT SetCoefficient3(float Coefficient3); 926 HRESULT SetCoefficient3(IDCompositionAnimation animation); 927 HRESULT SetCoefficient4(float Coefficient4); 928 HRESULT SetCoefficient4(IDCompositionAnimation animation); 929 } 930 931 mixin(uuid!(IDCompositionAffineTransform2DEffect, "0B74B9E8-CDD6-492F-BBBC-5ED32157026D")); 932 /// An IDCompositionAffineTransform2DEffect interface represents a affine transform 2D filter effect 933 interface IDCompositionAffineTransform2DEffect : IDCompositionFilterEffect 934 { 935 extern(Windows): 936 HRESULT SetInterpolationMode(D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE interpolationMode); 937 HRESULT SetBorderMode(D2D1_BORDER_MODE borderMode); 938 HRESULT SetTransformMatrix(const(D2D1_MATRIX_3X2_F)* transformMatrix); 939 HRESULT SetTransformMatrixElement(int row, int column, float value); 940 HRESULT SetTransformMatrixElement(int row, int column, IDCompositionAnimation animation); 941 HRESULT SetSharpness(float sharpness); 942 HRESULT SetSharpness(IDCompositionAnimation animation); 943 }