mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
368 lines
10 KiB
C++
368 lines
10 KiB
C++
//---------------------------------------------------------------------------
|
|
// 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 <d2d1.h>
|
|
#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_
|