mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 03:15:11 +00:00
Bug 1331857 - Create class BasicRenderingContext2D. r=gwright
This commit is contained in:
parent
d8a07d33fc
commit
3f7720742d
201
dom/canvas/BasicRenderingContext2D.h
Normal file
201
dom/canvas/BasicRenderingContext2D.h
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#ifndef BasicRenderingContext2D_h
|
||||||
|
#define BasicRenderingContext2D_h
|
||||||
|
|
||||||
|
#include "mozilla/dom/CanvasRenderingContext2DBinding.h"
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
|
||||||
|
class HTMLImageElementOrHTMLCanvasElementOrHTMLVideoElementOrImageBitmap;
|
||||||
|
typedef HTMLImageElementOrHTMLCanvasElementOrHTMLVideoElementOrImageBitmap
|
||||||
|
CanvasImageSource;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* BasicRenderingContext2D
|
||||||
|
*/
|
||||||
|
class BasicRenderingContext2D
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//
|
||||||
|
// CanvasState
|
||||||
|
//
|
||||||
|
virtual void Save() = 0;
|
||||||
|
virtual void Restore() = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasTransform
|
||||||
|
//
|
||||||
|
virtual void Scale(double aX, double aY, mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void Rotate(double aAngle, mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void Translate(double aX,
|
||||||
|
double aY,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void Transform(double aM11,
|
||||||
|
double aM12,
|
||||||
|
double aM21,
|
||||||
|
double aM22,
|
||||||
|
double aDx,
|
||||||
|
double aDy,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void SetTransform(double aM11,
|
||||||
|
double aM12,
|
||||||
|
double aM21,
|
||||||
|
double aM22,
|
||||||
|
double aDx,
|
||||||
|
double aDy,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void ResetTransform(mozilla::ErrorResult& aError) = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasCompositing
|
||||||
|
//
|
||||||
|
virtual double GlobalAlpha() = 0;
|
||||||
|
virtual void SetGlobalAlpha(double aGlobalAlpha) = 0;
|
||||||
|
virtual void GetGlobalCompositeOperation(nsAString& aOp,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void SetGlobalCompositeOperation(const nsAString& aOp,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasImageSmoothing
|
||||||
|
//
|
||||||
|
virtual bool ImageSmoothingEnabled() = 0;
|
||||||
|
virtual void SetImageSmoothingEnabled(bool aImageSmoothingEnabled) = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasFillStrokeStyles
|
||||||
|
//
|
||||||
|
virtual void GetStrokeStyle(
|
||||||
|
OwningStringOrCanvasGradientOrCanvasPattern& aValue) = 0;
|
||||||
|
virtual void SetStrokeStyle(
|
||||||
|
const StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
|
||||||
|
virtual void GetFillStyle(
|
||||||
|
OwningStringOrCanvasGradientOrCanvasPattern& aValue) = 0;
|
||||||
|
virtual void SetFillStyle(
|
||||||
|
const StringOrCanvasGradientOrCanvasPattern& aValue) = 0;
|
||||||
|
virtual already_AddRefed<CanvasGradient> CreateLinearGradient(double aX0,
|
||||||
|
double aY0,
|
||||||
|
double aX1,
|
||||||
|
double aY1) = 0;
|
||||||
|
virtual already_AddRefed<CanvasGradient> CreateRadialGradient(
|
||||||
|
double aX0,
|
||||||
|
double aY0,
|
||||||
|
double aR0,
|
||||||
|
double aX1,
|
||||||
|
double aY1,
|
||||||
|
double aR1,
|
||||||
|
ErrorResult& aError) = 0;
|
||||||
|
virtual already_AddRefed<CanvasPattern> CreatePattern(
|
||||||
|
const CanvasImageSource& aElement,
|
||||||
|
const nsAString& aRepeat,
|
||||||
|
ErrorResult& aError) = 0;
|
||||||
|
//
|
||||||
|
// CanvasShadowStyles
|
||||||
|
//
|
||||||
|
virtual double ShadowOffsetX() = 0;
|
||||||
|
virtual void SetShadowOffsetX(double aShadowOffsetX) = 0;
|
||||||
|
virtual double ShadowOffsetY() = 0;
|
||||||
|
virtual void SetShadowOffsetY(double aShadowOffsetY) = 0;
|
||||||
|
virtual double ShadowBlur() = 0;
|
||||||
|
virtual void SetShadowBlur(double aShadowBlur) = 0;
|
||||||
|
virtual void GetShadowColor(nsAString& aShadowColor) = 0;
|
||||||
|
virtual void SetShadowColor(const nsAString& aShadowColor) = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasRect
|
||||||
|
//
|
||||||
|
virtual void ClearRect(double aX, double aY, double aW, double aH) = 0;
|
||||||
|
virtual void FillRect(double aX, double aY, double aW, double aH) = 0;
|
||||||
|
virtual void StrokeRect(double aX, double aY, double aW, double aH) = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasDrawImage
|
||||||
|
//
|
||||||
|
virtual void DrawImage(const CanvasImageSource& aImage,
|
||||||
|
double aDx,
|
||||||
|
double aDy,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void DrawImage(const CanvasImageSource& aImage,
|
||||||
|
double aDx,
|
||||||
|
double aDy,
|
||||||
|
double aDw,
|
||||||
|
double aDh,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void DrawImage(const CanvasImageSource& aImage,
|
||||||
|
double aSx,
|
||||||
|
double aSy,
|
||||||
|
double aSw,
|
||||||
|
double aSh,
|
||||||
|
double aDx,
|
||||||
|
double aDy,
|
||||||
|
double aDw,
|
||||||
|
double aDh,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasPathDrawingStyles
|
||||||
|
//
|
||||||
|
virtual double LineWidth() = 0;
|
||||||
|
virtual void SetLineWidth(double aWidth) = 0;
|
||||||
|
virtual void GetLineCap(nsAString& aLinecapStyle) = 0;
|
||||||
|
virtual void SetLineCap(const nsAString& aLinecapStyle) = 0;
|
||||||
|
virtual void GetLineJoin(nsAString& aLinejoinStyle,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void SetLineJoin(const nsAString& aLinejoinStyle) = 0;
|
||||||
|
virtual double MiterLimit() = 0;
|
||||||
|
virtual void SetMiterLimit(double aMiter) = 0;
|
||||||
|
virtual void SetLineDash(const Sequence<double>& aSegments,
|
||||||
|
mozilla::ErrorResult& aRv) = 0;
|
||||||
|
virtual void GetLineDash(nsTArray<double>& aSegments) const = 0;
|
||||||
|
virtual void SetLineDashOffset(double aOffset) = 0;
|
||||||
|
virtual double LineDashOffset() const = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// CanvasPath
|
||||||
|
//
|
||||||
|
virtual void ClosePath() = 0;
|
||||||
|
virtual void MoveTo(double aX, double aY) = 0;
|
||||||
|
virtual void LineTo(double aX, double aY) = 0;
|
||||||
|
virtual void QuadraticCurveTo(double aCpx,
|
||||||
|
double aCpy,
|
||||||
|
double aX,
|
||||||
|
double aY) = 0;
|
||||||
|
virtual void BezierCurveTo(double aCp1x,
|
||||||
|
double aCp1y,
|
||||||
|
double aCp2x,
|
||||||
|
double aCp2y,
|
||||||
|
double aX,
|
||||||
|
double aY) = 0;
|
||||||
|
virtual void ArcTo(double aX1,
|
||||||
|
double aY1,
|
||||||
|
double aX2,
|
||||||
|
double aY2,
|
||||||
|
double aRadius,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void Rect(double aX, double aY, double aW, double aH) = 0;
|
||||||
|
virtual void Arc(double aX,
|
||||||
|
double aY,
|
||||||
|
double aRadius,
|
||||||
|
double aStartAngle,
|
||||||
|
double aEndAngle,
|
||||||
|
bool aAnticlockwise,
|
||||||
|
mozilla::ErrorResult& aError) = 0;
|
||||||
|
virtual void Ellipse(double aX,
|
||||||
|
double aY,
|
||||||
|
double aRadiusX,
|
||||||
|
double aRadiusY,
|
||||||
|
double aRotation,
|
||||||
|
double aStartAngle,
|
||||||
|
double aEndAngle,
|
||||||
|
bool aAnticlockwise,
|
||||||
|
ErrorResult& aError) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
#endif /* BasicRenderingContext2D_h */
|
@ -15,6 +15,7 @@
|
|||||||
#include "mozilla/dom/HTMLVideoElement.h"
|
#include "mozilla/dom/HTMLVideoElement.h"
|
||||||
#include "gfxTextRun.h"
|
#include "gfxTextRun.h"
|
||||||
#include "mozilla/ErrorResult.h"
|
#include "mozilla/ErrorResult.h"
|
||||||
|
#include "mozilla/dom/BasicRenderingContext2D.h"
|
||||||
#include "mozilla/dom/CanvasGradient.h"
|
#include "mozilla/dom/CanvasGradient.h"
|
||||||
#include "mozilla/dom/CanvasRenderingContext2DBinding.h"
|
#include "mozilla/dom/CanvasRenderingContext2DBinding.h"
|
||||||
#include "mozilla/dom/CanvasPattern.h"
|
#include "mozilla/dom/CanvasPattern.h"
|
||||||
@ -61,7 +62,8 @@ class CanvasShutdownObserver;
|
|||||||
**/
|
**/
|
||||||
class CanvasRenderingContext2D final :
|
class CanvasRenderingContext2D final :
|
||||||
public nsICanvasRenderingContextInternal,
|
public nsICanvasRenderingContextInternal,
|
||||||
public nsWrapperCache
|
public nsWrapperCache,
|
||||||
|
public BasicRenderingContext2D
|
||||||
{
|
{
|
||||||
virtual ~CanvasRenderingContext2D();
|
virtual ~CanvasRenderingContext2D();
|
||||||
|
|
||||||
@ -80,18 +82,18 @@ public:
|
|||||||
return mCanvasElement->GetOriginalCanvas();
|
return mCanvasElement->GetOriginalCanvas();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Save();
|
void Save() override;
|
||||||
void Restore();
|
void Restore() override;
|
||||||
void Scale(double aX, double aY, mozilla::ErrorResult& aError);
|
void Scale(double aX, double aY, mozilla::ErrorResult& aError) override;
|
||||||
void Rotate(double aAngle, mozilla::ErrorResult& aError);
|
void Rotate(double aAngle, mozilla::ErrorResult& aError) override;
|
||||||
void Translate(double aX, double aY, mozilla::ErrorResult& aError);
|
void Translate(double aX, double aY, mozilla::ErrorResult& aError) override;
|
||||||
void Transform(double aM11, double aM12, double aM21, double aM22, double aDx,
|
void Transform(double aM11, double aM12, double aM21, double aM22,
|
||||||
double aDy, mozilla::ErrorResult& aError);
|
double aDx, double aDy, mozilla::ErrorResult& aError) override;
|
||||||
void SetTransform(double aM11, double aM12, double aM21, double aM22, double aDx,
|
void SetTransform(double aM11, double aM12, double aM21, double aM22,
|
||||||
double aDy, mozilla::ErrorResult& aError);
|
double aDx, double aDy, mozilla::ErrorResult& aError) override;
|
||||||
void ResetTransform(mozilla::ErrorResult& aError);
|
void ResetTransform(mozilla::ErrorResult& aError) override;
|
||||||
|
|
||||||
double GlobalAlpha()
|
double GlobalAlpha() override
|
||||||
{
|
{
|
||||||
return CurrentState().globalAlpha;
|
return CurrentState().globalAlpha;
|
||||||
}
|
}
|
||||||
@ -99,79 +101,85 @@ public:
|
|||||||
// Useful for silencing cast warnings
|
// Useful for silencing cast warnings
|
||||||
static mozilla::gfx::Float ToFloat(double aValue) { return mozilla::gfx::Float(aValue); }
|
static mozilla::gfx::Float ToFloat(double aValue) { return mozilla::gfx::Float(aValue); }
|
||||||
|
|
||||||
void SetGlobalAlpha(double aGlobalAlpha)
|
void SetGlobalAlpha(double aGlobalAlpha) override
|
||||||
{
|
{
|
||||||
if (aGlobalAlpha >= 0.0 && aGlobalAlpha <= 1.0) {
|
if (aGlobalAlpha >= 0.0 && aGlobalAlpha <= 1.0) {
|
||||||
CurrentState().globalAlpha = ToFloat(aGlobalAlpha);
|
CurrentState().globalAlpha = ToFloat(aGlobalAlpha);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetGlobalCompositeOperation(nsAString& aOp, mozilla::ErrorResult& aError);
|
void GetGlobalCompositeOperation(nsAString& aOp,
|
||||||
|
mozilla::ErrorResult& aError) override;
|
||||||
void SetGlobalCompositeOperation(const nsAString& aOp,
|
void SetGlobalCompositeOperation(const nsAString& aOp,
|
||||||
mozilla::ErrorResult& aError);
|
mozilla::ErrorResult& aError) override;
|
||||||
|
|
||||||
void GetStrokeStyle(OwningStringOrCanvasGradientOrCanvasPattern& aValue)
|
void
|
||||||
|
GetStrokeStyle(OwningStringOrCanvasGradientOrCanvasPattern& aValue) override
|
||||||
{
|
{
|
||||||
GetStyleAsUnion(aValue, Style::STROKE);
|
GetStyleAsUnion(aValue, Style::STROKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetStrokeStyle(const StringOrCanvasGradientOrCanvasPattern& aValue)
|
void
|
||||||
|
SetStrokeStyle(const StringOrCanvasGradientOrCanvasPattern& aValue) override
|
||||||
{
|
{
|
||||||
SetStyleFromUnion(aValue, Style::STROKE);
|
SetStyleFromUnion(aValue, Style::STROKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetFillStyle(OwningStringOrCanvasGradientOrCanvasPattern& aValue)
|
void
|
||||||
|
GetFillStyle(OwningStringOrCanvasGradientOrCanvasPattern& aValue) override
|
||||||
{
|
{
|
||||||
GetStyleAsUnion(aValue, Style::FILL);
|
GetStyleAsUnion(aValue, Style::FILL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetFillStyle(const StringOrCanvasGradientOrCanvasPattern& aValue)
|
void
|
||||||
|
SetFillStyle(const StringOrCanvasGradientOrCanvasPattern& aValue) override
|
||||||
{
|
{
|
||||||
SetStyleFromUnion(aValue, Style::FILL);
|
SetStyleFromUnion(aValue, Style::FILL);
|
||||||
}
|
}
|
||||||
|
|
||||||
already_AddRefed<CanvasGradient>
|
already_AddRefed<CanvasGradient>
|
||||||
CreateLinearGradient(double aX0, double aY0, double aX1, double aY1);
|
CreateLinearGradient(double aX0, double aY0, double aX1, double aY1) override;
|
||||||
already_AddRefed<CanvasGradient>
|
already_AddRefed<CanvasGradient>
|
||||||
CreateRadialGradient(double aX0, double aY0, double aR0, double aX1, double aY1,
|
CreateRadialGradient(double aX0, double aY0, double aR0,
|
||||||
double aR1, ErrorResult& aError);
|
double aX1, double aY1, double aR1,
|
||||||
|
ErrorResult& aError) override;
|
||||||
already_AddRefed<CanvasPattern>
|
already_AddRefed<CanvasPattern>
|
||||||
CreatePattern(const CanvasImageSource& aElement,
|
CreatePattern(const CanvasImageSource& aElement,
|
||||||
const nsAString& aRepeat, ErrorResult& aError);
|
const nsAString& aRepeat, ErrorResult& aError) override;
|
||||||
|
|
||||||
double ShadowOffsetX()
|
double ShadowOffsetX() override
|
||||||
{
|
{
|
||||||
return CurrentState().shadowOffset.x;
|
return CurrentState().shadowOffset.x;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetShadowOffsetX(double aShadowOffsetX)
|
void SetShadowOffsetX(double aShadowOffsetX) override
|
||||||
{
|
{
|
||||||
CurrentState().shadowOffset.x = ToFloat(aShadowOffsetX);
|
CurrentState().shadowOffset.x = ToFloat(aShadowOffsetX);
|
||||||
}
|
}
|
||||||
|
|
||||||
double ShadowOffsetY()
|
double ShadowOffsetY() override
|
||||||
{
|
{
|
||||||
return CurrentState().shadowOffset.y;
|
return CurrentState().shadowOffset.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetShadowOffsetY(double aShadowOffsetY)
|
void SetShadowOffsetY(double aShadowOffsetY) override
|
||||||
{
|
{
|
||||||
CurrentState().shadowOffset.y = ToFloat(aShadowOffsetY);
|
CurrentState().shadowOffset.y = ToFloat(aShadowOffsetY);
|
||||||
}
|
}
|
||||||
|
|
||||||
double ShadowBlur()
|
double ShadowBlur() override
|
||||||
{
|
{
|
||||||
return CurrentState().shadowBlur;
|
return CurrentState().shadowBlur;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetShadowBlur(double aShadowBlur)
|
void SetShadowBlur(double aShadowBlur) override
|
||||||
{
|
{
|
||||||
if (aShadowBlur >= 0.0) {
|
if (aShadowBlur >= 0.0) {
|
||||||
CurrentState().shadowBlur = ToFloat(aShadowBlur);
|
CurrentState().shadowBlur = ToFloat(aShadowBlur);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GetShadowColor(nsAString& aShadowColor)
|
void GetShadowColor(nsAString& aShadowColor) override
|
||||||
{
|
{
|
||||||
StyleColorToString(CurrentState().shadowColor, aShadowColor);
|
StyleColorToString(CurrentState().shadowColor, aShadowColor);
|
||||||
}
|
}
|
||||||
@ -181,11 +189,11 @@ public:
|
|||||||
aFilter = CurrentState().filterString;
|
aFilter = CurrentState().filterString;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetShadowColor(const nsAString& aShadowColor);
|
void SetShadowColor(const nsAString& aShadowColor) override;
|
||||||
void SetFilter(const nsAString& aFilter, mozilla::ErrorResult& aError);
|
void SetFilter(const nsAString& aFilter, mozilla::ErrorResult& aError);
|
||||||
void ClearRect(double aX, double aY, double aW, double aH);
|
void ClearRect(double aX, double aY, double aW, double aH) override;
|
||||||
void FillRect(double aX, double aY, double aW, double aH);
|
void FillRect(double aX, double aY, double aW, double aH) override;
|
||||||
void StrokeRect(double aX, double aY, double aW, double aH);
|
void StrokeRect(double aX, double aY, double aW, double aH) override;
|
||||||
void BeginPath();
|
void BeginPath();
|
||||||
void Fill(const CanvasWindingRule& aWinding);
|
void Fill(const CanvasWindingRule& aWinding);
|
||||||
void Fill(const CanvasPath& aPath, const CanvasWindingRule& aWinding);
|
void Fill(const CanvasPath& aPath, const CanvasWindingRule& aWinding);
|
||||||
@ -212,22 +220,22 @@ public:
|
|||||||
void RemoveHitRegion(const nsAString& aId);
|
void RemoveHitRegion(const nsAString& aId);
|
||||||
void ClearHitRegions();
|
void ClearHitRegions();
|
||||||
|
|
||||||
void DrawImage(const CanvasImageSource& aImage,
|
void DrawImage(const CanvasImageSource& aImage, double aDx, double aDy,
|
||||||
double aDx, double aDy, mozilla::ErrorResult& aError)
|
mozilla::ErrorResult& aError) override
|
||||||
{
|
{
|
||||||
DrawImage(aImage, 0.0, 0.0, 0.0, 0.0, aDx, aDy, 0.0, 0.0, 0, aError);
|
DrawImage(aImage, 0.0, 0.0, 0.0, 0.0, aDx, aDy, 0.0, 0.0, 0, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawImage(const CanvasImageSource& aImage,
|
void DrawImage(const CanvasImageSource& aImage, double aDx, double aDy,
|
||||||
double aDx, double aDy, double aDw, double aDh,
|
double aDw, double aDh, mozilla::ErrorResult& aError) override
|
||||||
mozilla::ErrorResult& aError)
|
|
||||||
{
|
{
|
||||||
DrawImage(aImage, 0.0, 0.0, 0.0, 0.0, aDx, aDy, aDw, aDh, 2, aError);
|
DrawImage(aImage, 0.0, 0.0, 0.0, 0.0, aDx, aDy, aDw, aDh, 2, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawImage(const CanvasImageSource& aImage,
|
void DrawImage(const CanvasImageSource& aImage,
|
||||||
double aSx, double aSy, double aSw, double aSh, double aDx,
|
double aSx, double aSy, double aSw, double aSh,
|
||||||
double aDy, double aDw, double aDh, mozilla::ErrorResult& aError)
|
double aDx, double aDy, double aDw, double aDh,
|
||||||
|
mozilla::ErrorResult& aError) override
|
||||||
{
|
{
|
||||||
DrawImage(aImage, aSx, aSy, aSw, aSh, aDx, aDy, aDw, aDh, 6, aError);
|
DrawImage(aImage, aSx, aSy, aSw, aSh, aDx, aDy, aDw, aDh, 6, aError);
|
||||||
}
|
}
|
||||||
@ -248,28 +256,29 @@ public:
|
|||||||
double aDirtyWidth, double aDirtyHeight,
|
double aDirtyWidth, double aDirtyHeight,
|
||||||
mozilla::ErrorResult& aError);
|
mozilla::ErrorResult& aError);
|
||||||
|
|
||||||
double LineWidth()
|
double LineWidth() override
|
||||||
{
|
{
|
||||||
return CurrentState().lineWidth;
|
return CurrentState().lineWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetLineWidth(double aWidth)
|
void SetLineWidth(double aWidth) override
|
||||||
{
|
{
|
||||||
if (aWidth > 0.0) {
|
if (aWidth > 0.0) {
|
||||||
CurrentState().lineWidth = ToFloat(aWidth);
|
CurrentState().lineWidth = ToFloat(aWidth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void GetLineCap(nsAString& aLinecapStyle);
|
void GetLineCap(nsAString& aLinecapStyle) override;
|
||||||
void SetLineCap(const nsAString& aLinecapStyle);
|
void SetLineCap(const nsAString& aLinecapStyle) override;
|
||||||
void GetLineJoin(nsAString& aLinejoinStyle, mozilla::ErrorResult& aError);
|
void GetLineJoin(nsAString& aLinejoinStyle,
|
||||||
void SetLineJoin(const nsAString& aLinejoinStyle);
|
mozilla::ErrorResult& aError) override;
|
||||||
|
void SetLineJoin(const nsAString& aLinejoinStyle) override;
|
||||||
|
|
||||||
double MiterLimit()
|
double MiterLimit() override
|
||||||
{
|
{
|
||||||
return CurrentState().miterLimit;
|
return CurrentState().miterLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetMiterLimit(double aMiter)
|
void SetMiterLimit(double aMiter) override
|
||||||
{
|
{
|
||||||
if (aMiter > 0.0) {
|
if (aMiter > 0.0) {
|
||||||
CurrentState().miterLimit = ToFloat(aMiter);
|
CurrentState().miterLimit = ToFloat(aMiter);
|
||||||
@ -287,7 +296,7 @@ public:
|
|||||||
void GetTextBaseline(nsAString& aTextBaseline);
|
void GetTextBaseline(nsAString& aTextBaseline);
|
||||||
void SetTextBaseline(const nsAString& aTextBaseline);
|
void SetTextBaseline(const nsAString& aTextBaseline);
|
||||||
|
|
||||||
void ClosePath()
|
void ClosePath() override
|
||||||
{
|
{
|
||||||
EnsureWritablePath();
|
EnsureWritablePath();
|
||||||
|
|
||||||
@ -298,7 +307,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MoveTo(double aX, double aY)
|
void MoveTo(double aX, double aY) override
|
||||||
{
|
{
|
||||||
EnsureWritablePath();
|
EnsureWritablePath();
|
||||||
|
|
||||||
@ -310,14 +319,14 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LineTo(double aX, double aY)
|
void LineTo(double aX, double aY) override
|
||||||
{
|
{
|
||||||
EnsureWritablePath();
|
EnsureWritablePath();
|
||||||
|
|
||||||
LineTo(mozilla::gfx::Point(ToFloat(aX), ToFloat(aY)));
|
LineTo(mozilla::gfx::Point(ToFloat(aX), ToFloat(aY)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void QuadraticCurveTo(double aCpx, double aCpy, double aX, double aY)
|
void QuadraticCurveTo(double aCpx, double aCpy, double aX, double aY) override
|
||||||
{
|
{
|
||||||
EnsureWritablePath();
|
EnsureWritablePath();
|
||||||
|
|
||||||
@ -333,7 +342,8 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BezierCurveTo(double aCp1x, double aCp1y, double aCp2x, double aCp2y, double aX, double aY)
|
void BezierCurveTo(double aCp1x, double aCp1y, double aCp2x, double aCp2y,
|
||||||
|
double aX, double aY) override
|
||||||
{
|
{
|
||||||
EnsureWritablePath();
|
EnsureWritablePath();
|
||||||
|
|
||||||
@ -342,14 +352,15 @@ public:
|
|||||||
mozilla::gfx::Point(ToFloat(aX), ToFloat(aY)));
|
mozilla::gfx::Point(ToFloat(aX), ToFloat(aY)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ArcTo(double aX1, double aY1, double aX2, double aY2, double aRadius,
|
void ArcTo(double aX1, double aY1, double aX2, double aY2,
|
||||||
mozilla::ErrorResult& aError);
|
double aRadius, mozilla::ErrorResult& aError) override;
|
||||||
void Rect(double aX, double aY, double aW, double aH);
|
void Rect(double aX, double aY, double aW, double aH) override;
|
||||||
void Arc(double aX, double aY, double aRadius, double aStartAngle,
|
void Arc(double aX, double aY, double aRadius, double aStartAngle,
|
||||||
double aEndAngle, bool aAnticlockwise, mozilla::ErrorResult& aError);
|
double aEndAngle, bool aAnticlockwise,
|
||||||
|
mozilla::ErrorResult& aError) override;
|
||||||
void Ellipse(double aX, double aY, double aRadiusX, double aRadiusY,
|
void Ellipse(double aX, double aY, double aRadiusX, double aRadiusY,
|
||||||
double aRotation, double aStartAngle, double aEndAngle,
|
double aRotation, double aStartAngle, double aEndAngle,
|
||||||
bool aAnticlockwise, ErrorResult& aError);
|
bool aAnticlockwise, ErrorResult& aError) override;
|
||||||
|
|
||||||
void GetMozCurrentTransform(JSContext* aCx,
|
void GetMozCurrentTransform(JSContext* aCx,
|
||||||
JS::MutableHandle<JSObject*> aResult,
|
JS::MutableHandle<JSObject*> aResult,
|
||||||
@ -367,11 +378,11 @@ public:
|
|||||||
void SetFillRule(const nsAString& aFillRule);
|
void SetFillRule(const nsAString& aFillRule);
|
||||||
|
|
||||||
void SetLineDash(const Sequence<double>& aSegments,
|
void SetLineDash(const Sequence<double>& aSegments,
|
||||||
mozilla::ErrorResult& aRv);
|
mozilla::ErrorResult& aRv) override;
|
||||||
void GetLineDash(nsTArray<double>& aSegments) const;
|
void GetLineDash(nsTArray<double>& aSegments) const override;
|
||||||
|
|
||||||
void SetLineDashOffset(double aOffset);
|
void SetLineDashOffset(double aOffset) override;
|
||||||
double LineDashOffset() const;
|
double LineDashOffset() const override;
|
||||||
|
|
||||||
void GetMozTextStyle(nsAString& aMozTextStyle)
|
void GetMozTextStyle(nsAString& aMozTextStyle)
|
||||||
{
|
{
|
||||||
@ -384,12 +395,12 @@ public:
|
|||||||
SetFont(aMozTextStyle, aError);
|
SetFont(aMozTextStyle, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ImageSmoothingEnabled()
|
bool ImageSmoothingEnabled() override
|
||||||
{
|
{
|
||||||
return CurrentState().imageSmoothingEnabled;
|
return CurrentState().imageSmoothingEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetImageSmoothingEnabled(bool aImageSmoothingEnabled)
|
void SetImageSmoothingEnabled(bool aImageSmoothingEnabled) override
|
||||||
{
|
{
|
||||||
if (aImageSmoothingEnabled != CurrentState().imageSmoothingEnabled) {
|
if (aImageSmoothingEnabled != CurrentState().imageSmoothingEnabled) {
|
||||||
CurrentState().imageSmoothingEnabled = aImageSmoothingEnabled;
|
CurrentState().imageSmoothingEnabled = aImageSmoothingEnabled;
|
||||||
|
@ -55,6 +55,7 @@ EXPORTS.mozilla.ipc += [
|
|||||||
]
|
]
|
||||||
|
|
||||||
EXPORTS.mozilla.dom += [
|
EXPORTS.mozilla.dom += [
|
||||||
|
'BasicRenderingContext2D.h',
|
||||||
'CanvasGradient.h',
|
'CanvasGradient.h',
|
||||||
'CanvasPath.h',
|
'CanvasPath.h',
|
||||||
'CanvasPattern.h',
|
'CanvasPattern.h',
|
||||||
|
Loading…
Reference in New Issue
Block a user