mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1007856: Update 2D.h to doxygen friendly comment format. r=bas,trivial
This commit is contained in:
parent
38829f6d9b
commit
30f2e2be5f
402
gfx/2d/2D.h
402
gfx/2d/2D.h
@ -69,17 +69,12 @@ struct NativeFont {
|
||||
void *mFont;
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This structure is used to send draw options that are universal to all drawing
|
||||
* operations. It consists of the following:
|
||||
*
|
||||
* mAlpha - Alpha value by which the mask generated by this operation is
|
||||
* multiplied.
|
||||
* mCompositionOp - The operator that indicates how the source and destination
|
||||
* patterns are blended.
|
||||
* mAntiAliasMode - The AntiAlias mode used for this drawing operation.
|
||||
* operations.
|
||||
*/
|
||||
struct DrawOptions {
|
||||
/// For constructor parameter description, see member data documentation.
|
||||
DrawOptions(Float aAlpha = 1.0f,
|
||||
CompositionOp aCompositionOp = CompositionOp::OP_OVER,
|
||||
AntialiasMode aAntialiasMode = AntialiasMode::DEFAULT)
|
||||
@ -88,28 +83,20 @@ struct DrawOptions {
|
||||
, mAntialiasMode(aAntialiasMode)
|
||||
{}
|
||||
|
||||
Float mAlpha;
|
||||
CompositionOp mCompositionOp;
|
||||
AntialiasMode mAntialiasMode;
|
||||
Float mAlpha; /**< Alpha value by which the mask generated by this
|
||||
operation is multiplied. */
|
||||
CompositionOp mCompositionOp; /**< The operator that indicates how the source and
|
||||
destination patterns are blended. */
|
||||
AntialiasMode mAntialiasMode; /**< The AntiAlias mode used for this drawing
|
||||
operation. */
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This structure is used to send stroke options that are used in stroking
|
||||
* operations. It consists of the following:
|
||||
*
|
||||
* mLineWidth - Width of the stroke in userspace.
|
||||
* mLineJoin - Join style used for joining lines.
|
||||
* mLineCap - Cap style used for capping lines.
|
||||
* mMiterLimit - Miter limit in units of linewidth
|
||||
* mDashPattern - Series of on/off userspace lengths defining dash.
|
||||
* Owned by the caller; must live at least as long as
|
||||
* this StrokeOptions.
|
||||
* mDashPattern != null <=> mDashLength > 0.
|
||||
* mDashLength - Number of on/off lengths in mDashPattern.
|
||||
* mDashOffset - Userspace offset within mDashPattern at which stroking
|
||||
* begins.
|
||||
* operations.
|
||||
*/
|
||||
struct StrokeOptions {
|
||||
/// For constructor parameter description, see member data documentation.
|
||||
StrokeOptions(Float aLineWidth = 1.0f,
|
||||
JoinStyle aLineJoin = JoinStyle::MITER_OR_BEVEL,
|
||||
CapStyle aLineCap = CapStyle::BUTT,
|
||||
@ -128,36 +115,40 @@ struct StrokeOptions {
|
||||
MOZ_ASSERT(aDashLength == 0 || aDashPattern);
|
||||
}
|
||||
|
||||
Float mLineWidth;
|
||||
Float mMiterLimit;
|
||||
const Float* mDashPattern;
|
||||
size_t mDashLength;
|
||||
Float mDashOffset;
|
||||
JoinStyle mLineJoin;
|
||||
CapStyle mLineCap;
|
||||
Float mLineWidth; //!< Width of the stroke in userspace.
|
||||
Float mMiterLimit; //!< Miter limit in units of linewidth
|
||||
const Float* mDashPattern; /**< Series of on/off userspace lengths defining dash.
|
||||
Owned by the caller; must live at least as long as
|
||||
this StrokeOptions.
|
||||
mDashPattern != null <=> mDashLength > 0. */
|
||||
size_t mDashLength; //!< Number of on/off lengths in mDashPattern.
|
||||
Float mDashOffset; /**< Userspace offset within mDashPattern at which
|
||||
stroking begins. */
|
||||
JoinStyle mLineJoin; //!< Join style used for joining lines.
|
||||
CapStyle mLineCap; //!< Cap style used for capping lines.
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This structure supplies additional options for calls to DrawSurface.
|
||||
*
|
||||
* mFilter - Filter used when resampling source surface region to the
|
||||
* destination region.
|
||||
* aSamplingBounds - This indicates whether the implementation is allowed
|
||||
* to sample pixels outside the source rectangle as
|
||||
* specified in DrawSurface on the surface.
|
||||
*/
|
||||
struct DrawSurfaceOptions {
|
||||
/// For constructor parameter description, see member data documentation.
|
||||
DrawSurfaceOptions(Filter aFilter = Filter::LINEAR,
|
||||
SamplingBounds aSamplingBounds = SamplingBounds::UNBOUNDED)
|
||||
: mFilter(aFilter)
|
||||
, mSamplingBounds(aSamplingBounds)
|
||||
{ }
|
||||
|
||||
Filter mFilter;
|
||||
SamplingBounds mSamplingBounds;
|
||||
Filter mFilter; /**< Filter used when resampling source surface
|
||||
region to the destination region. */
|
||||
SamplingBounds mSamplingBounds; /**< This indicates whether the implementation is
|
||||
allowed to sample pixels outside the source
|
||||
rectangle as specified in DrawSurface on
|
||||
the surface. */
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This class is used to store gradient stops, it can only be used with a
|
||||
* matching DrawTarget. Not adhering to this condition will make a draw call
|
||||
* fail.
|
||||
@ -174,7 +165,7 @@ protected:
|
||||
GradientStops() {}
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This is the base class for 'patterns'. Patterns describe the pixels used as
|
||||
* the source for a masked composition operation that is done by the different
|
||||
* drawing commands. These objects are not backend specific, however for
|
||||
@ -203,7 +194,7 @@ public:
|
||||
Color mColor;
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This class is used for Linear Gradient Patterns, the gradient stops are
|
||||
* stored in a separate object and are backend dependent. This class itself
|
||||
* may be used on the stack.
|
||||
@ -211,14 +202,7 @@ public:
|
||||
class LinearGradientPattern : public Pattern
|
||||
{
|
||||
public:
|
||||
/*
|
||||
* aBegin Start of the linear gradient
|
||||
* aEnd End of the linear gradient - NOTE: In the case of a zero length
|
||||
* gradient it will act as the color of the last stop.
|
||||
* aStops GradientStops object for this gradient, this should match the
|
||||
* backend type of the draw target this pattern will be used with.
|
||||
* aMatrix A matrix that transforms the pattern into user space
|
||||
*/
|
||||
/// For constructor parameter description, see member data documentation.
|
||||
LinearGradientPattern(const Point &aBegin,
|
||||
const Point &aEnd,
|
||||
GradientStops *aStops,
|
||||
@ -232,13 +216,18 @@ public:
|
||||
|
||||
virtual PatternType GetType() const { return PatternType::LINEAR_GRADIENT; }
|
||||
|
||||
Point mBegin;
|
||||
Point mEnd;
|
||||
RefPtr<GradientStops> mStops;
|
||||
Matrix mMatrix;
|
||||
Point mBegin; //!< Start of the linear gradient
|
||||
Point mEnd; /**< End of the linear gradient - NOTE: In the case
|
||||
of a zero length gradient it will act as the
|
||||
color of the last stop. */
|
||||
RefPtr<GradientStops> mStops; /**< GradientStops object for this gradient, this
|
||||
should match the backend type of the draw
|
||||
target this pattern will be used with. */
|
||||
Matrix mMatrix; /**< A matrix that transforms the pattern into
|
||||
user space */
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This class is used for Radial Gradient Patterns, the gradient stops are
|
||||
* stored in a separate object and are backend dependent. This class itself
|
||||
* may be used on the stack.
|
||||
@ -246,15 +235,7 @@ public:
|
||||
class RadialGradientPattern : public Pattern
|
||||
{
|
||||
public:
|
||||
/*
|
||||
* aCenter1 Center of the inner (focal) circle.
|
||||
* aCenter2 Center of the outer circle.
|
||||
* aRadius1 Radius of the inner (focal) circle.
|
||||
* aRadius2 Radius of the outer circle.
|
||||
* aStops GradientStops object for this gradient, this should match the
|
||||
* backend type of the draw target this pattern will be used with.
|
||||
* aMatrix A matrix that transforms the pattern into user space
|
||||
*/
|
||||
/// For constructor parameter description, see member data documentation.
|
||||
RadialGradientPattern(const Point &aCenter1,
|
||||
const Point &aCenter2,
|
||||
Float aRadius1,
|
||||
@ -272,28 +253,24 @@ public:
|
||||
|
||||
virtual PatternType GetType() const { return PatternType::RADIAL_GRADIENT; }
|
||||
|
||||
Point mCenter1;
|
||||
Point mCenter2;
|
||||
Float mRadius1;
|
||||
Float mRadius2;
|
||||
RefPtr<GradientStops> mStops;
|
||||
Matrix mMatrix;
|
||||
Point mCenter1; //!< Center of the inner (focal) circle.
|
||||
Point mCenter2; //!< Center of the outer circle.
|
||||
Float mRadius1; //!< Radius of the inner (focal) circle.
|
||||
Float mRadius2; //!< Radius of the outer circle.
|
||||
RefPtr<GradientStops> mStops; /**< GradientStops object for this gradient, this
|
||||
should match the backend type of the draw target
|
||||
this pattern will be used with. */
|
||||
Matrix mMatrix; //!< A matrix that transforms the pattern into user space
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This class is used for Surface Patterns, they wrap a surface and a
|
||||
* repetition mode for the surface. This may be used on the stack.
|
||||
*/
|
||||
class SurfacePattern : public Pattern
|
||||
{
|
||||
public:
|
||||
/*
|
||||
* aSourceSurface Surface to use for drawing
|
||||
* aExtendMode This determines how the image is extended outside the bounds
|
||||
* of the image.
|
||||
* aMatrix A matrix that transforms the pattern into user space
|
||||
* aFilter Resampling filter used for resampling the image.
|
||||
*/
|
||||
/// For constructor parameter description, see member data documentation.
|
||||
SurfacePattern(SourceSurface *aSourceSurface, ExtendMode aExtendMode,
|
||||
const Matrix &aMatrix = Matrix(), Filter aFilter = Filter::GOOD)
|
||||
: mSurface(aSourceSurface)
|
||||
@ -304,13 +281,14 @@ public:
|
||||
|
||||
virtual PatternType GetType() const { return PatternType::SURFACE; }
|
||||
|
||||
RefPtr<SourceSurface> mSurface;
|
||||
ExtendMode mExtendMode;
|
||||
Filter mFilter;
|
||||
Matrix mMatrix;
|
||||
RefPtr<SourceSurface> mSurface; //!< Surface to use for drawing
|
||||
ExtendMode mExtendMode; /**< This determines how the image is extended
|
||||
outside the bounds of the image */
|
||||
Filter mFilter; //!< Resampling filter for resampling the image.
|
||||
Matrix mMatrix; //!< Transforms the pattern into user space
|
||||
};
|
||||
|
||||
/*
|
||||
/**
|
||||
* This is the base class for source surfaces. These objects are surfaces
|
||||
* which may be used as a source in a SurfacePattern or a DrawSurface call.
|
||||
* They cannot be drawn to directly.
|
||||
@ -325,20 +303,20 @@ public:
|
||||
virtual IntSize GetSize() const = 0;
|
||||
virtual SurfaceFormat GetFormat() const = 0;
|
||||
|
||||
/* This returns false if some event has made this source surface invalid for
|
||||
/** This returns false if some event has made this source surface invalid for
|
||||
* usage with current DrawTargets. For example in the case of Direct2D this
|
||||
* could return false if we have switched devices since this surface was
|
||||
* created.
|
||||
*/
|
||||
virtual bool IsValid() const { return true; }
|
||||
|
||||
/*
|
||||
/**
|
||||
* This function will get a DataSourceSurface for this surface, a
|
||||
* DataSourceSurface's data can be accessed directly.
|
||||
*/
|
||||
virtual TemporaryRef<DataSourceSurface> GetDataSurface() = 0;
|
||||
|
||||
/* Tries to get this SourceSurface's native surface. This will fail if aType
|
||||
/** Tries to get this SourceSurface's native surface. This will fail if aType
|
||||
* is not the type of this SourceSurface's native surface.
|
||||
*/
|
||||
virtual void *GetNativeSurface(NativeSurfaceType aType) {
|
||||
@ -384,13 +362,13 @@ public:
|
||||
};
|
||||
|
||||
virtual SurfaceType GetType() const { return SurfaceType::DATA; }
|
||||
/* [DEPRECATED]
|
||||
/** @deprecated
|
||||
* Get the raw bitmap data of the surface.
|
||||
* Can return null if there was OOM allocating surface data.
|
||||
*/
|
||||
virtual uint8_t *GetData() = 0;
|
||||
|
||||
/* [DEPRECATED]
|
||||
/** @deprecated
|
||||
* Stride of the surface, distance in bytes between the start of the image
|
||||
* data belonging to row y and row y+1. This may be negative.
|
||||
* Can return 0 if there was OOM allocating surface data.
|
||||
@ -411,7 +389,7 @@ public:
|
||||
mIsMapped = false;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Returns a DataSourceSurface with the same data as this one, but
|
||||
* guaranteed to have surface->GetType() == SurfaceType::DATA.
|
||||
*/
|
||||
@ -420,35 +398,35 @@ public:
|
||||
bool mIsMapped;
|
||||
};
|
||||
|
||||
/* This is an abstract object that accepts path segments. */
|
||||
/** This is an abstract object that accepts path segments. */
|
||||
class PathSink : public RefCounted<PathSink>
|
||||
{
|
||||
public:
|
||||
MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME(PathSink)
|
||||
virtual ~PathSink() {}
|
||||
|
||||
/* Move the current point in the path, any figure currently being drawn will
|
||||
/** Move the current point in the path, any figure currently being drawn will
|
||||
* be considered closed during fill operations, however when stroking the
|
||||
* closing line segment will not be drawn.
|
||||
*/
|
||||
virtual void MoveTo(const Point &aPoint) = 0;
|
||||
/* Add a linesegment to the current figure */
|
||||
/** Add a linesegment to the current figure */
|
||||
virtual void LineTo(const Point &aPoint) = 0;
|
||||
/* Add a cubic bezier curve to the current figure */
|
||||
/** Add a cubic bezier curve to the current figure */
|
||||
virtual void BezierTo(const Point &aCP1,
|
||||
const Point &aCP2,
|
||||
const Point &aCP3) = 0;
|
||||
/* Add a quadratic bezier curve to the current figure */
|
||||
/** Add a quadratic bezier curve to the current figure */
|
||||
virtual void QuadraticBezierTo(const Point &aCP1,
|
||||
const Point &aCP2) = 0;
|
||||
/* Close the current figure, this will essentially generate a line segment
|
||||
/** Close the current figure, this will essentially generate a line segment
|
||||
* from the current point to the starting point for the current figure
|
||||
*/
|
||||
virtual void Close() = 0;
|
||||
/* Add an arc to the current figure */
|
||||
/** Add an arc to the current figure */
|
||||
virtual void Arc(const Point &aOrigin, float aRadius, float aStartAngle,
|
||||
float aEndAngle, bool aAntiClockwise = false) = 0;
|
||||
/* Point the current subpath is at - or where the next subpath will start
|
||||
/** Point the current subpath is at - or where the next subpath will start
|
||||
* if there is no active subpath.
|
||||
*/
|
||||
virtual Point CurrentPoint() const = 0;
|
||||
@ -457,7 +435,7 @@ public:
|
||||
class PathBuilder;
|
||||
class FlattenedPath;
|
||||
|
||||
/* The path class is used to create (sets of) figures of any shape that can be
|
||||
/** The path class is used to create (sets of) figures of any shape that can be
|
||||
* filled or stroked to a DrawTarget
|
||||
*/
|
||||
class Path : public RefCounted<Path>
|
||||
@ -468,21 +446,21 @@ public:
|
||||
|
||||
virtual BackendType GetBackendType() const = 0;
|
||||
|
||||
/* This returns a PathBuilder object that contains a copy of the contents of
|
||||
/** This returns a PathBuilder object that contains a copy of the contents of
|
||||
* this path and is still writable.
|
||||
*/
|
||||
virtual TemporaryRef<PathBuilder> CopyToBuilder(FillRule aFillRule = FillRule::FILL_WINDING) const = 0;
|
||||
virtual TemporaryRef<PathBuilder> TransformedCopyToBuilder(const Matrix &aTransform,
|
||||
FillRule aFillRule = FillRule::FILL_WINDING) const = 0;
|
||||
|
||||
/* This function checks if a point lies within a path. It allows passing a
|
||||
/** This function checks if a point lies within a path. It allows passing a
|
||||
* transform that will transform the path to the coordinate space in which
|
||||
* aPoint is given.
|
||||
*/
|
||||
virtual bool ContainsPoint(const Point &aPoint, const Matrix &aTransform) const = 0;
|
||||
|
||||
|
||||
/* This function checks if a point lies within the stroke of a path using the
|
||||
/** This function checks if a point lies within the stroke of a path using the
|
||||
* specified strokeoptions. It allows passing a transform that will transform
|
||||
* the path to the coordinate space in which aPoint is given.
|
||||
*/
|
||||
@ -490,13 +468,13 @@ public:
|
||||
const Point &aPoint,
|
||||
const Matrix &aTransform) const = 0;
|
||||
|
||||
/* This functions gets the bounds of this path. These bounds are not
|
||||
/** This functions gets the bounds of this path. These bounds are not
|
||||
* guaranteed to be tight. A transform may be specified that gives the bounds
|
||||
* after application of the transform.
|
||||
*/
|
||||
virtual Rect GetBounds(const Matrix &aTransform = Matrix()) const = 0;
|
||||
|
||||
/* This function gets the bounds of the stroke of this path using the
|
||||
/** This function gets the bounds of the stroke of this path using the
|
||||
* specified strokeoptions. These bounds are not guaranteed to be tight.
|
||||
* A transform may be specified that gives the bounds after application of
|
||||
* the transform.
|
||||
@ -504,12 +482,12 @@ public:
|
||||
virtual Rect GetStrokedBounds(const StrokeOptions &aStrokeOptions,
|
||||
const Matrix &aTransform = Matrix()) const = 0;
|
||||
|
||||
/* Take the contents of this path and stream it to another sink, this works
|
||||
/** Take the contents of this path and stream it to another sink, this works
|
||||
* regardless of the backend that might be used for the destination sink.
|
||||
*/
|
||||
virtual void StreamToSink(PathSink *aSink) const = 0;
|
||||
|
||||
/* This gets the fillrule this path's builder was created with. This is not
|
||||
/** This gets the fillrule this path's builder was created with. This is not
|
||||
* mutable.
|
||||
*/
|
||||
virtual FillRule GetFillRule() const = 0;
|
||||
@ -526,14 +504,14 @@ protected:
|
||||
RefPtr<FlattenedPath> mFlattenedPath;
|
||||
};
|
||||
|
||||
/* The PathBuilder class allows path creation. Once finish is called on the
|
||||
/** The PathBuilder class allows path creation. Once finish is called on the
|
||||
* pathbuilder it may no longer be written to.
|
||||
*/
|
||||
class PathBuilder : public PathSink
|
||||
{
|
||||
public:
|
||||
MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME(PathBuilder)
|
||||
/* Finish writing to the path and return a Path object that can be used for
|
||||
/** Finish writing to the path and return a Path object that can be used for
|
||||
* drawing. Future use of the builder results in a crash!
|
||||
*/
|
||||
virtual TemporaryRef<Path> Finish() = 0;
|
||||
@ -545,19 +523,17 @@ struct Glyph
|
||||
Point mPosition;
|
||||
};
|
||||
|
||||
/* This class functions as a glyph buffer that can be drawn to a DrawTarget.
|
||||
* XXX - This should probably contain the guts of gfxTextRun in the future as
|
||||
/** This class functions as a glyph buffer that can be drawn to a DrawTarget.
|
||||
* @todo XXX - This should probably contain the guts of gfxTextRun in the future as
|
||||
* roc suggested. But for now it's a simple container for a glyph vector.
|
||||
*/
|
||||
struct GlyphBuffer
|
||||
{
|
||||
// A pointer to a buffer of glyphs. Managed by the caller.
|
||||
const Glyph *mGlyphs;
|
||||
// Number of glyphs mGlyphs points to.
|
||||
uint32_t mNumGlyphs;
|
||||
const Glyph *mGlyphs; //!< A pointer to a buffer of glyphs. Managed by the caller.
|
||||
uint32_t mNumGlyphs; //!< Number of glyphs mGlyphs points to.
|
||||
};
|
||||
|
||||
/* This class is an abstraction of a backend/platform specific font object
|
||||
/** This class is an abstraction of a backend/platform specific font object
|
||||
* at a particular size. It is passed into text drawing calls to describe
|
||||
* the font used for the drawing call.
|
||||
*/
|
||||
@ -571,14 +547,14 @@ public:
|
||||
|
||||
virtual FontType GetType() const = 0;
|
||||
|
||||
/* This allows getting a path that describes the outline of a set of glyphs.
|
||||
/** This allows getting a path that describes the outline of a set of glyphs.
|
||||
* A target is passed in so that the guarantee is made the returned path
|
||||
* can be used with any DrawTarget that has the same backend as the one
|
||||
* passed in.
|
||||
*/
|
||||
virtual TemporaryRef<Path> GetPathForGlyphs(const GlyphBuffer &aBuffer, const DrawTarget *aTarget) = 0;
|
||||
|
||||
/* This copies the path describing the glyphs into a PathBuilder. We use this
|
||||
/** This copies the path describing the glyphs into a PathBuilder. We use this
|
||||
* API rather than a generic API to append paths because it allows easier
|
||||
* implementation in some backends, and more efficient implementation in
|
||||
* others.
|
||||
@ -602,9 +578,9 @@ protected:
|
||||
|
||||
#ifdef MOZ_ENABLE_FREETYPE
|
||||
/**
|
||||
* Describes a font
|
||||
* Describes a font.
|
||||
* Used to pass the key informatin from a gfxFont into Azure
|
||||
* XXX Should be replaced by a more long term solution, perhaps Bug 738014
|
||||
* @todo Should be replaced by a more long term solution, perhaps Bug 738014
|
||||
*/
|
||||
struct FontOptions
|
||||
{
|
||||
@ -614,7 +590,7 @@ struct FontOptions
|
||||
#endif
|
||||
|
||||
|
||||
/* This class is designed to allow passing additional glyph rendering
|
||||
/** This class is designed to allow passing additional glyph rendering
|
||||
* parameters to the glyph drawing functions. This is an empty wrapper class
|
||||
* merely used to allow holding on to and passing around platform specific
|
||||
* parameters. This is because different platforms have unique rendering
|
||||
@ -632,7 +608,7 @@ protected:
|
||||
GlyphRenderingOptions() {}
|
||||
};
|
||||
|
||||
/* This is the main class used for all the drawing. It is created through the
|
||||
/** This is the main class used for all the drawing. It is created through the
|
||||
* factory and accepts drawing commands. The results of drawing to a target
|
||||
* may be used either through a Snapshot or by flushing the target and directly
|
||||
* accessing the backing store a DrawTarget was created with.
|
||||
@ -662,22 +638,22 @@ public:
|
||||
int32_t* aStride, SurfaceFormat* aFormat) { return false; }
|
||||
virtual void ReleaseBits(uint8_t* aData) {}
|
||||
|
||||
/* Ensure that the DrawTarget backend has flushed all drawing operations to
|
||||
/** Ensure that the DrawTarget backend has flushed all drawing operations to
|
||||
* this draw target. This must be called before using the backing surface of
|
||||
* this draw target outside of GFX 2D code.
|
||||
*/
|
||||
virtual void Flush() = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Draw a surface to the draw target. Possibly doing partial drawing or
|
||||
* applying scaling. No sampling happens outside the source.
|
||||
*
|
||||
* aSurface Source surface to draw
|
||||
* aDest Destination rectangle that this drawing operation should draw to
|
||||
* aSource Source rectangle in aSurface coordinates, this area of aSurface
|
||||
* will be stretched to the size of aDest.
|
||||
* aOptions General draw options that are applied to the operation
|
||||
* aSurfOptions DrawSurface options that are applied
|
||||
* @param aSurface Source surface to draw
|
||||
* @param aDest Destination rectangle that this drawing operation should draw to
|
||||
* @param aSource Source rectangle in aSurface coordinates, this area of aSurface
|
||||
* will be stretched to the size of aDest.
|
||||
* @param aOptions General draw options that are applied to the operation
|
||||
* @param aSurfOptions DrawSurface options that are applied
|
||||
*/
|
||||
virtual void DrawSurface(SourceSurface *aSurface,
|
||||
const Rect &aDest,
|
||||
@ -685,32 +661,32 @@ public:
|
||||
const DrawSurfaceOptions &aSurfOptions = DrawSurfaceOptions(),
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Draw the output of a FilterNode to the DrawTarget.
|
||||
*
|
||||
* aNode FilterNode to draw
|
||||
* aSourceRect Source rectangle in FilterNode space to draw
|
||||
* aDestPoint Destination point on the DrawTarget to draw the
|
||||
* SourceRectangle of the filter output to
|
||||
* @param aNode FilterNode to draw
|
||||
* @param aSourceRect Source rectangle in FilterNode space to draw
|
||||
* @param aDestPoint Destination point on the DrawTarget to draw the
|
||||
* SourceRectangle of the filter output to
|
||||
*/
|
||||
virtual void DrawFilter(FilterNode *aNode,
|
||||
const Rect &aSourceRect,
|
||||
const Point &aDestPoint,
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Blend a surface to the draw target with a shadow. The shadow is drawn as a
|
||||
* gaussian blur using a specified sigma. The shadow is clipped to the size
|
||||
* of the input surface, so the input surface should contain a transparent
|
||||
* border the size of the approximate coverage of the blur (3 * aSigma).
|
||||
* NOTE: This function works in device space!
|
||||
*
|
||||
* aSurface Source surface to draw.
|
||||
* aDest Destination point that this drawing operation should draw to.
|
||||
* aColor Color of the drawn shadow
|
||||
* aOffset Offset of the shadow
|
||||
* aSigma Sigma used for the guassian filter kernel
|
||||
* aOperator Composition operator used
|
||||
* @param aSurface Source surface to draw.
|
||||
* @param aDest Destination point that this drawing operation should draw to.
|
||||
* @param aColor Color of the drawn shadow
|
||||
* @param aOffset Offset of the shadow
|
||||
* @param aSigma Sigma used for the guassian filter kernel
|
||||
* @param aOperator Composition operator used
|
||||
*/
|
||||
virtual void DrawSurfaceWithShadow(SourceSurface *aSurface,
|
||||
const Point &aDest,
|
||||
@ -719,30 +695,30 @@ public:
|
||||
Float aSigma,
|
||||
CompositionOp aOperator) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Clear a rectangle on the draw target to transparent black. This will
|
||||
* respect the clipping region and transform.
|
||||
*
|
||||
* aRect Rectangle to clear
|
||||
* @param aRect Rectangle to clear
|
||||
*/
|
||||
virtual void ClearRect(const Rect &aRect) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* This is essentially a 'memcpy' between two surfaces. It moves a pixel
|
||||
* aligned area from the source surface unscaled directly onto the
|
||||
* drawtarget. This ignores both transform and clip.
|
||||
*
|
||||
* aSurface Surface to copy from
|
||||
* aSourceRect Source rectangle to be copied
|
||||
* aDest Destination point to copy the surface to
|
||||
* @param aSurface Surface to copy from
|
||||
* @param aSourceRect Source rectangle to be copied
|
||||
* @param aDest Destination point to copy the surface to
|
||||
*/
|
||||
virtual void CopySurface(SourceSurface *aSurface,
|
||||
const IntRect &aSourceRect,
|
||||
const IntPoint &aDestination) = 0;
|
||||
|
||||
/*
|
||||
/** @see CopySurface
|
||||
* Same as CopySurface, except uses itself as the source.
|
||||
*
|
||||
*
|
||||
* Some backends may be able to optimize this better
|
||||
* than just taking a snapshot and using CopySurface.
|
||||
*/
|
||||
@ -753,36 +729,36 @@ public:
|
||||
CopySurface(source, aSourceRect, aDestination);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Fill a rectangle on the DrawTarget with a certain source pattern.
|
||||
*
|
||||
* aRect Rectangle that forms the mask of this filling operation
|
||||
* aPattern Pattern that forms the source of this filling operation
|
||||
* aOptions Options that are applied to this operation
|
||||
* @param aRect Rectangle that forms the mask of this filling operation
|
||||
* @param aPattern Pattern that forms the source of this filling operation
|
||||
* @param aOptions Options that are applied to this operation
|
||||
*/
|
||||
virtual void FillRect(const Rect &aRect,
|
||||
const Pattern &aPattern,
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Stroke a rectangle on the DrawTarget with a certain source pattern.
|
||||
*
|
||||
* aRect Rectangle that forms the mask of this stroking operation
|
||||
* aPattern Pattern that forms the source of this stroking operation
|
||||
* aOptions Options that are applied to this operation
|
||||
* @param aRect Rectangle that forms the mask of this stroking operation
|
||||
* @param aPattern Pattern that forms the source of this stroking operation
|
||||
* @param aOptions Options that are applied to this operation
|
||||
*/
|
||||
virtual void StrokeRect(const Rect &aRect,
|
||||
const Pattern &aPattern,
|
||||
const StrokeOptions &aStrokeOptions = StrokeOptions(),
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Stroke a line on the DrawTarget with a certain source pattern.
|
||||
*
|
||||
* aStart Starting point of the line
|
||||
* aEnd End point of the line
|
||||
* aPattern Pattern that forms the source of this stroking operation
|
||||
* aOptions Options that are applied to this operation
|
||||
* @param aStart Starting point of the line
|
||||
* @param aEnd End point of the line
|
||||
* @param aPattern Pattern that forms the source of this stroking operation
|
||||
* @param aOptions Options that are applied to this operation
|
||||
*/
|
||||
virtual void StrokeLine(const Point &aStart,
|
||||
const Point &aEnd,
|
||||
@ -790,31 +766,31 @@ public:
|
||||
const StrokeOptions &aStrokeOptions = StrokeOptions(),
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Stroke a path on the draw target with a certain source pattern.
|
||||
*
|
||||
* aPath Path that is to be stroked
|
||||
* aPattern Pattern that should be used for the stroke
|
||||
* aStrokeOptions Stroke options used for this operation
|
||||
* aOptions Draw options used for this operation
|
||||
* @param aPath Path that is to be stroked
|
||||
* @param aPattern Pattern that should be used for the stroke
|
||||
* @param aStrokeOptions Stroke options used for this operation
|
||||
* @param aOptions Draw options used for this operation
|
||||
*/
|
||||
virtual void Stroke(const Path *aPath,
|
||||
const Pattern &aPattern,
|
||||
const StrokeOptions &aStrokeOptions = StrokeOptions(),
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Fill a path on the draw target with a certain source pattern.
|
||||
*
|
||||
* aPath Path that is to be filled
|
||||
* aPattern Pattern that should be used for the fill
|
||||
* aOptions Draw options used for this operation
|
||||
* @param aPath Path that is to be filled
|
||||
* @param aPattern Pattern that should be used for the fill
|
||||
* @param aOptions Draw options used for this operation
|
||||
*/
|
||||
virtual void Fill(const Path *aPath,
|
||||
const Pattern &aPattern,
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Fill a series of clyphs on the draw target with a certain source pattern.
|
||||
*/
|
||||
virtual void FillGlyphs(ScaledFont *aFont,
|
||||
@ -823,55 +799,55 @@ public:
|
||||
const DrawOptions &aOptions = DrawOptions(),
|
||||
const GlyphRenderingOptions *aRenderingOptions = nullptr) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* This takes a source pattern and a mask, and composites the source pattern
|
||||
* onto the destination surface using the alpha channel of the mask pattern
|
||||
* as a mask for the operation.
|
||||
*
|
||||
* aSource Source pattern
|
||||
* aMask Mask pattern
|
||||
* aOptions Drawing options
|
||||
* @param aSource Source pattern
|
||||
* @param aMask Mask pattern
|
||||
* @param aOptions Drawing options
|
||||
*/
|
||||
virtual void Mask(const Pattern &aSource,
|
||||
const Pattern &aMask,
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* This takes a source pattern and a mask, and composites the source pattern
|
||||
* onto the destination surface using the alpha channel of the mask source.
|
||||
* The operation is bound by the extents of the mask.
|
||||
*
|
||||
* aSource Source pattern
|
||||
* aMask Mask surface
|
||||
* aOffset a transformed offset that the surface is masked at
|
||||
* aOptions Drawing options
|
||||
* @param aSource Source pattern
|
||||
* @param aMask Mask surface
|
||||
* @param aOffset a transformed offset that the surface is masked at
|
||||
* @param aOptions Drawing options
|
||||
*/
|
||||
virtual void MaskSurface(const Pattern &aSource,
|
||||
SourceSurface *aMask,
|
||||
Point aOffset,
|
||||
const DrawOptions &aOptions = DrawOptions()) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Push a clip to the DrawTarget.
|
||||
*
|
||||
* aPath The path to clip to
|
||||
* @param aPath The path to clip to
|
||||
*/
|
||||
virtual void PushClip(const Path *aPath) = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Push an axis-aligned rectangular clip to the DrawTarget. This rectangle
|
||||
* is specified in user space.
|
||||
*
|
||||
* aRect The rect to clip to
|
||||
* @param aRect The rect to clip to
|
||||
*/
|
||||
virtual void PushClipRect(const Rect &aRect) = 0;
|
||||
|
||||
/* Pop a clip from the DrawTarget. A pop without a corresponding push will
|
||||
/** Pop a clip from the DrawTarget. A pop without a corresponding push will
|
||||
* be ignored.
|
||||
*/
|
||||
virtual void PopClip() = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a SourceSurface optimized for use with this DrawTarget from
|
||||
* existing bitmap data in memory.
|
||||
*
|
||||
@ -882,14 +858,14 @@ public:
|
||||
int32_t aStride,
|
||||
SurfaceFormat aFormat) const = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a SourceSurface optimized for use with this DrawTarget from an
|
||||
* arbitrary SourceSurface type supported by this backend. This may return
|
||||
* aSourceSurface or some other existing surface.
|
||||
*/
|
||||
virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a SourceSurface for a type of NativeSurface. This may fail if the
|
||||
* draw target does not know how to deal with the type of NativeSurface passed
|
||||
* in.
|
||||
@ -897,13 +873,13 @@ public:
|
||||
virtual TemporaryRef<SourceSurface>
|
||||
CreateSourceSurfaceFromNativeSurface(const NativeSurface &aSurface) const = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a DrawTarget whose snapshot is optimized for use with this DrawTarget.
|
||||
*/
|
||||
virtual TemporaryRef<DrawTarget>
|
||||
CreateSimilarDrawTarget(const IntSize &aSize, SurfaceFormat aFormat) const = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a draw target optimized for drawing a shadow.
|
||||
*
|
||||
* Note that aSigma is the blur radius that must be used when we draw the
|
||||
@ -918,7 +894,7 @@ public:
|
||||
return CreateSimilarDrawTarget(aSize, aFormat);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a path builder with the specified fillmode.
|
||||
*
|
||||
* We need the fill mode up front because of Direct2D.
|
||||
@ -927,32 +903,32 @@ public:
|
||||
*/
|
||||
virtual TemporaryRef<PathBuilder> CreatePathBuilder(FillRule aFillRule = FillRule::FILL_WINDING) const = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a GradientStops object that holds information about a set of
|
||||
* gradient stops, this object is required for linear or radial gradient
|
||||
* patterns to represent the color stops in the gradient.
|
||||
*
|
||||
* aStops An array of gradient stops
|
||||
* aNumStops Number of stops in the array aStops
|
||||
* aExtendNone This describes how to extend the stop color outside of the
|
||||
* gradient area.
|
||||
* @param aStops An array of gradient stops
|
||||
* @param aNumStops Number of stops in the array aStops
|
||||
* @param aExtendNone This describes how to extend the stop color outside of the
|
||||
* gradient area.
|
||||
*/
|
||||
virtual TemporaryRef<GradientStops>
|
||||
CreateGradientStops(GradientStop *aStops,
|
||||
uint32_t aNumStops,
|
||||
ExtendMode aExtendMode = ExtendMode::CLAMP) const = 0;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Create a FilterNode object that can be used to apply a filter to various
|
||||
* inputs.
|
||||
*
|
||||
* aType Type of filter node to be created.
|
||||
* @param aType Type of filter node to be created.
|
||||
*/
|
||||
virtual TemporaryRef<FilterNode> CreateFilter(FilterType aType) = 0;
|
||||
|
||||
const Matrix &GetTransform() const { return mTransform; }
|
||||
|
||||
/*
|
||||
/**
|
||||
* Set a transform on the surface, this transform is applied at drawing time
|
||||
* to both the mask and source of the operation.
|
||||
*/
|
||||
@ -961,7 +937,7 @@ public:
|
||||
|
||||
SurfaceFormat GetFormat() { return mFormat; }
|
||||
|
||||
/* Tries to get a native surface for a DrawTarget, this may fail if the
|
||||
/** Tries to get a native surface for a DrawTarget, this may fail if the
|
||||
* draw target cannot convert to this surface type.
|
||||
*/
|
||||
virtual void *GetNativeSurface(NativeSurfaceType aType) { return nullptr; }
|
||||
@ -975,7 +951,7 @@ public:
|
||||
return mUserData.Get(key);
|
||||
}
|
||||
|
||||
/* Within this rectangle all pixels will be opaque by the time the result of
|
||||
/** Within this rectangle all pixels will be opaque by the time the result of
|
||||
* this DrawTarget is first used for drawing. Either by the underlying surface
|
||||
* being used as an input to external drawing, or Snapshot() being called.
|
||||
* This rectangle is specified in device space.
|
||||
@ -1027,7 +1003,7 @@ class GFX2D_API Factory
|
||||
public:
|
||||
static bool HasSSE2();
|
||||
|
||||
/* Make sure that the given dimensions don't overflow a 32-bit signed int
|
||||
/** Make sure that the given dimensions don't overflow a 32-bit signed int
|
||||
* using 4 bytes per pixel; optionally, make sure that either dimension
|
||||
* doesn't exceed the given limit.
|
||||
*/
|
||||
@ -1050,16 +1026,16 @@ public:
|
||||
/**
|
||||
* This creates a ScaledFont from TrueType data.
|
||||
*
|
||||
* aData - Pointer to the data
|
||||
* aSize - Size of the TrueType data
|
||||
* aFaceIndex - Index of the font face in the truetype data this ScaledFont needs to represent.
|
||||
* aGlyphSize - Size of the glyphs in this ScaledFont
|
||||
* aType - Type of ScaledFont that should be created.
|
||||
* @param aData Pointer to the data
|
||||
* @param aSize Size of the TrueType data
|
||||
* @param aFaceIndex Index of the font face in the truetype data this ScaledFont needs to represent.
|
||||
* @param aGlyphSize Size of the glyphs in this ScaledFont
|
||||
* @param aType Type of ScaledFont that should be created.
|
||||
*/
|
||||
static TemporaryRef<ScaledFont>
|
||||
CreateScaledFontForTrueTypeData(uint8_t *aData, uint32_t aSize, uint32_t aFaceIndex, Float aGlyphSize, FontType aType);
|
||||
|
||||
/*
|
||||
/**
|
||||
* This creates a scaled font with an associated cairo_scaled_font_t, and
|
||||
* must be used when using the Cairo backend. The NativeFont and
|
||||
* cairo_scaled_font_t* parameters must correspond to the same font.
|
||||
@ -1067,7 +1043,7 @@ public:
|
||||
static TemporaryRef<ScaledFont>
|
||||
CreateScaledFontWithCairo(const NativeFont &aNativeFont, Float aSize, cairo_scaled_font_t* aScaledFont);
|
||||
|
||||
/*
|
||||
/**
|
||||
* This creates a simple data source surface for a certain size. It allocates
|
||||
* new memory for the surface. This memory is freed when the surface is
|
||||
* destroyed.
|
||||
@ -1075,7 +1051,7 @@ public:
|
||||
static TemporaryRef<DataSourceSurface>
|
||||
CreateDataSourceSurface(const IntSize &aSize, SurfaceFormat aFormat);
|
||||
|
||||
/*
|
||||
/**
|
||||
* This creates a simple data source surface for a certain size with a
|
||||
* specific stride, which must be large enough to fit all pixels.
|
||||
* It allocates new memory for the surface. This memory is freed when
|
||||
@ -1084,7 +1060,7 @@ public:
|
||||
static TemporaryRef<DataSourceSurface>
|
||||
CreateDataSourceSurfaceWithStride(const IntSize &aSize, SurfaceFormat aFormat, int32_t aStride);
|
||||
|
||||
/*
|
||||
/**
|
||||
* This creates a simple data source surface for some existing data. It will
|
||||
* wrap this data and the data for this source surface. The caller is
|
||||
* responsible for deallocating the memory only after destruction of the
|
||||
|
Loading…
Reference in New Issue
Block a user