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