//--------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. // // This file is automatically generated. Please do not edit it directly. // // File name: D2D1_1.h //--------------------------------------------------------------------------- #pragma once #ifndef _D2D1_1_H_ #ifndef _D2D1_H_ #include #endif // #ifndef _D2D1_H_ //+----------------------------------------------------------------------------- // // Flag: // D2D1_LAYER_OPTIONS1 // // Synopsis: // Specifies how the layer contents should be prepared. // //------------------------------------------------------------------------------ typedef enum D2D1_LAYER_OPTIONS1 { D2D1_LAYER_OPTIONS1_NONE = 0, D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND = 1, D2D1_LAYER_OPTIONS1_IGNORE_ALPHA = 2, D2D1_LAYER_OPTIONS1_FORCE_DWORD = 0xffffffff } D2D1_LAYER_OPTIONS1; //+----------------------------------------------------------------------------- // // Struct: // D2D1_LAYER_PARAMETERS1 // // Synopsis: // All parameters related to pushing a layer. // //------------------------------------------------------------------------------ typedef struct D2D1_LAYER_PARAMETERS1 { D2D1_RECT_F contentBounds; ID2D1Geometry *geometricMask; D2D1_ANTIALIAS_MODE maskAntialiasMode; D2D1_MATRIX_3X2_F maskTransform; FLOAT opacity; ID2D1Brush *opacityBrush; D2D1_LAYER_OPTIONS1 layerOptions; } D2D1_LAYER_PARAMETERS1; DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS1); #ifndef DX_DECLARE_INTERFACE #define DX_DECLARE_INTERFACE(x) DECLSPEC_UUID(x) DECLSPEC_NOVTABLE #endif namespace D2D1 { D2D1FORCEINLINE D2D1_LAYER_PARAMETERS1 LayerParameters1( CONST D2D1_RECT_F &contentBounds = D2D1::InfiniteRect(), ID2D1Geometry *geometricMask = NULL, D2D1_ANTIALIAS_MODE maskAntialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, D2D1_MATRIX_3X2_F maskTransform = D2D1::IdentityMatrix(), FLOAT opacity = 1.0, ID2D1Brush *opacityBrush = NULL, D2D1_LAYER_OPTIONS1 layerOptions = D2D1_LAYER_OPTIONS1_NONE ) { D2D1_LAYER_PARAMETERS1 layerParameters = { 0 }; layerParameters.contentBounds = contentBounds; layerParameters.geometricMask = geometricMask; layerParameters.maskAntialiasMode = maskAntialiasMode; layerParameters.maskTransform = maskTransform; layerParameters.opacity = opacity; layerParameters.opacityBrush = opacityBrush; layerParameters.layerOptions = layerOptions; return layerParameters; } } DEFINE_GUID(IID_ID2D1DeviceContext, 0xe8f7fe7a, 0x191c, 0x466d, 0xad, 0x95, 0x97, 0x56, 0x78, 0xbd, 0xa9, 0x98); //+----------------------------------------------------------------------------- // // Interface: // ID2D1DeviceContext // // Synopsis: // The device context represents a set of state and a command buffer that is used // to render to a target bitmap. // //------------------------------------------------------------------------------ interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1DeviceContext : public ID2D1RenderTarget { // // Creates a bitmap with extended bitmap properties, potentially from a block of // memory. // STDMETHOD(CreateBitmap)() PURE; // // Create a D2D bitmap by copying a WIC bitmap. // STDMETHOD(CreateBitmapFromWicBitmap)() PURE; // // Creates a color context from a color space. If the space is Custom, the context // is initialized from the profile/profileSize arguments. Otherwise the context is // initialized with the profile bytes associated with the space and // profile/profileSize are ignored. // STDMETHOD(CreateColorContext)() PURE; STDMETHOD(CreateColorContextFromFilename)() PURE; STDMETHOD(CreateColorContextFromWicColorContext)() PURE; // // Creates a bitmap from a DXGI surface with a set of extended properties. // STDMETHOD(CreateBitmapFromDxgiSurface)() PURE; // // Create a new effect, the effect must either be built in or previously registered // through ID2D1Factory1::RegisterEffectFromStream or // ID2D1Factory1::RegisterEffectFromString. // STDMETHOD(CreateEffect)() PURE; // // A gradient stop collection represents a set of stops in an ideal unit length. // This is the source resource for a linear gradient and radial gradient brush. // STDMETHOD(CreateGradientStopCollection)() PURE; // // Creates an image brush, the input image can be any type of image, including a // bitmap, effect and a command list. // STDMETHOD(CreateImageBrush)() PURE; STDMETHOD(CreateBitmapBrush)() PURE; // // Creates a new command list. // STDMETHOD(CreateCommandList)() PURE; // // Indicates whether the format is supported by D2D. // STDMETHOD_(BOOL, IsDxgiFormatSupported)() CONST PURE; // // Indicates whether the buffer precision is supported by D2D. // STDMETHOD_(BOOL, IsBufferPrecisionSupported)() CONST PURE; // // This retrieves the local-space bounds in DIPs of the current image using the // device context DPI. // STDMETHOD(GetImageLocalBounds)() CONST PURE; // // This retrieves the world-space bounds in DIPs of the current image using the // device context DPI. // STDMETHOD(GetImageWorldBounds)() CONST PURE; // // Retrieves the world-space bounds in DIPs of the glyph run using the device // context DPI. // STDMETHOD(GetGlyphRunWorldBounds)() CONST PURE; // // Retrieves the device associated with this device context. // STDMETHOD_(void, GetDevice)() CONST PURE; // // Sets the target for this device context to point to the given image. The image // can be a command list or a bitmap created with the D2D1_BITMAP_OPTIONS_TARGET // flag. // STDMETHOD_(void, SetTarget)() PURE; // // Gets the target that this device context is currently pointing to. // STDMETHOD_(void, GetTarget)() CONST PURE; // // Sets tuning parameters for internal rendering inside the device context. // STDMETHOD_(void, SetRenderingControls)() PURE; // // This retrieves the rendering controls currently selected into the device // context. // STDMETHOD_(void, GetRenderingControls)() CONST PURE; // // Changes the primitive blending mode for all of the rendering operations. // STDMETHOD_(void, SetPrimitiveBlend)() PURE; // // Returns the primitive blend currently selected into the device context. // STDMETHOD_(void, GetPrimitiveBlend)( ) CONST PURE; // // Changes the units used for all of the rendering operations. // STDMETHOD_(void, SetUnitMode)() PURE; // // Returns the unit mode currently set on the device context. // STDMETHOD_(void, GetUnitMode)( ) CONST PURE; // // Draws the glyph run with an extended description to describe the glyphs. // STDMETHOD_(void, DrawGlyphRun)() PURE; // // Draw an image to the device context. The image represents either a concrete // bitmap or the output of an effect graph. // STDMETHOD_(void, DrawImage)() PURE; // // Draw a metafile to the device context. // STDMETHOD_(void, DrawGdiMetafile)() PURE; STDMETHOD_(void, DrawBitmap)() PURE; // // Push a layer on the device context. // STDMETHOD_(void, PushLayer)( _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters, _In_opt_ ID2D1Layer *layer ) PURE; using ID2D1RenderTarget::PushLayer; // // This indicates that a portion of an effect's input is invalid. This method can // be called many times. // STDMETHOD(InvalidateEffectInputRectangle)() PURE; // // Gets the number of invalid ouptut rectangles that have accumulated at the // effect. // STDMETHOD(GetEffectInvalidRectangleCount)() PURE; // // Gets the invalid rectangles that are at the output of the effect. // STDMETHOD(GetEffectInvalidRectangles)() PURE; // // Gets the maximum region of each specified input which would be used during a // subsequent rendering operation // STDMETHOD(GetEffectRequiredInputRectangles)() PURE; // // Fill using the alpha channel of the supplied opacity mask bitmap. The brush // opacity will be modulated by the mask. The render target antialiasing mode must // be set to aliased. // STDMETHOD_(void, FillOpacityMask)() PURE; HRESULT CreateBitmap1() { return S_OK; } HRESULT CreateBitmap2() { return S_OK; } HRESULT CreateBitmap3() { return S_OK; } HRESULT CreateBitmap4() { return S_OK; } HRESULT CreateImageBrush1() { return S_OK; } HRESULT CreateImageBrush2() { return S_OK; } HRESULT CreateBitmapBrush1() { return S_OK; } HRESULT CreateBitmapBrush2() { return S_OK; } HRESULT CreateBitmapBrush3() { return S_OK; } // // Draws the output of the effect as an image. // void DrawImage1() {} void DrawImage2() {} void DrawImage3() {} void DrawImage4() {} void DrawImage5() {} void DrawImage6() {} void DrawImage7() {} void PushLayer( CONST D2D1_LAYER_PARAMETERS1 &layerParameters, _In_opt_ ID2D1Layer *layer ) { PushLayer(&layerParameters, layer); } void DrawGdiMetafile1() {} void DrawBitmap1() {} void DrawBitmap2() {} void DrawBitmap3() {} void FillOpacityMask1() {} void FillOpacityMask2() {} // // Sets tuning parameters for internal rendering inside the device context. // void SetRenderingControls1() {} }; // interface ID2D1DeviceContext #endif // #ifndef _D2D1_1_H_