diff -r 000000000000 -r 6474c204b198 gfx/2d/moz-d2d1-1.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/2d/moz-d2d1-1.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,367 @@ +//--------------------------------------------------------------------------- +// 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_