From 039673bc969d09b2376052a1e171d1f6a2239b6e Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Wed, 16 May 2007 01:37:32 +0000 Subject: [PATCH] [agow] (2) Define when infinities are allowed in the canvas APIs git-svn-id: http://svn.whatwg.org/webapps@819 340c8d12-0b0e-0410-8428-c7bf67bfef74 --- index | 31 ++++++++++++++++++++++++++++--- source | 33 ++++++++++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/index b/index index f31aaa77a36..d1319c69f13 100644 --- a/index +++ b/index @@ -15751,6 +15751,20 @@ interface ImageData { the identity transform. It may then be adjusted using the transformation methods. +

The transformation matrix can become infinite, at which point nothing is + drawn anymore.

+ +

The transformations must be performed in reverse order. For instance, if a scale transformation that doubles the width is applied, followed by a rotation transformation that rotates drawing operations by a quarter turn, @@ -15762,7 +15776,9 @@ interface ImageData { scaling transformation described by the arguments to the transformation matrix. The x argument represents the scale factor in the horizontal direction and the y argument represents - the scale factor in the vertical direction. The factors are multiples. + the scale factor in the vertical direction. The factors are multiples. If + either argument is Infinity the transformation matrix must be marked as + infinite instead of the method throwing an exception.

The rotate(angle) method must add the rotation @@ -15777,7 +15793,9 @@ interface ImageData { The x argument represents the translation distance in the horizontal direction and the y argument represents the translation distance in the vertical direction. The arguments are in - coordinate space units. + coordinate space units. If either argument is Infinity the transformation + matrix must be marked as infinite instead of the method throwing an + exception.

The transform(m11, @@ -15809,6 +15827,9 @@ interface ImageData { 1 +

If any of the arguments are Infinity the transformation matrix must be + marked as infinite instead of the method throwing an exception. +

The setTransform(m11, m12, m21, ImageData { title=dom-context-2d-transform>transform(m11, m12, m21, m22, dx, dy) method with the same - arguments. + arguments. If any of the arguments are Infinity the transformation matrix + must be marked as infinite instead of the method throwing an exception.

3.14.11.1.3. Compositing
@@ -16805,6 +16827,9 @@ notes on what would need to be defined for dashed lines: in the order given (or act as if they do):
    +
  1. If the current transformation matrix is infinite, then do nothing. + Abort these steps. +
  2. The coordinates are transformed by the current transformation matrix.
  3. The shape or image is rendered, creating image A, diff --git a/source b/source index d663f5f11af..e68112ba9cd 100644 --- a/source +++ b/source @@ -13322,6 +13322,20 @@ interface ImageData { initially be the identity transform. It may then be adjusted using the transformation methods.

    +

    The transformation matrix can become infinite, at which point + nothing is drawn anymore.

    + +

    The transformations must be performed in reverse order. For instance, if a scale transformation that doubles the width is applied, followed by a rotation transformation that rotates drawing @@ -13335,7 +13349,9 @@ interface ImageData { transformation matrix. The x argument represents the scale factor in the horizontal direction and the y argument represents the scale factor in the - vertical direction. The factors are multiples.

    + vertical direction. The factors are multiples. If either argument is + Infinity the transformation matrix must be marked as infinite + instead of the method throwing an exception.

    The rotate(angle) method must add the rotation @@ -13349,7 +13365,9 @@ interface ImageData { transformation matrix. The x argument represents the translation distance in the horizontal direction and the y argument represents the translation distance in the - vertical direction. The arguments are in coordinate space units.

    + vertical direction. The arguments are in coordinate space units. If + either argument is Infinity the transformation matrix must be marked + as infinite instead of the method throwing an exception.

    The transform(m11, m12, ImageData { +

    If any of the arguments are Infinity the transformation matrix + must be marked as infinite instead of the method throwing an + exception.

    +

    The setTransform(m11, m12, ImageData { title="dom-context-2d-transform">transform(m11, m12, m21, m22, dx, - dy) method with the same arguments.

    + dy)
    method with the same arguments. If + any of the arguments are Infinity the transformation matrix must be + marked as infinite instead of the method throwing an exception.

    Compositing
    @@ -14426,6 +14450,9 @@ notes on what would need to be defined for dashed lines:
      +
    1. If the current transformation matrix is infinite, then do + nothing. Abort these steps.
    2. +
    3. The coordinates are transformed by the current transformation matrix.