<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>15255</bug_id>
          
          <creation_ts>2011-12-17 13:25:16 +0000</creation_ts>
          <short_desc>CanvasRenderingContext2D.getTransform() would be quite awesome</short_desc>
          <delta_ts>2012-01-28 22:23:46 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>HTML WG</product>
          <component>HTML Canvas 2D Context</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Morris-Pearce">mikemp</reporter>
          <assigned_to name="Ian &apos;Hixie&apos; Hickson">ian</assigned_to>
          <cc>ian</cc>
    
    <cc>lrosenth</cc>
    
    <cc>mike</cc>
    
    <cc>public-html-admin</cc>
    
    <cc>public-html-wg-issue-tracking</cc>
          
          <qa_contact name="HTML WG Bugzilla archive list">public-html-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>61743</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Morris-Pearce">mikemp</who>
    <bug_when>2011-12-17 13:25:16 +0000</bug_when>
    <thetext>Feature request:
CanvasRenderingContext2D.getTransform() returns an Array[6] of the current transformation matrix.

This was brought up previously:
http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-July/027394.html

The previous request did not receive any public comments, and I&apos;d like to re-prompt the request for reasons not mentioned.

getTransform would allow authors to copy transformation state from one context to another as needed. This is particularly relevant in code that coordinates graphics among multiple canvases (save/restore is not applicable).

For example:

(1) Authors could save a reused canvas alongside its context2d transform, compute the bitmap&apos;s bounding geometry from the transform, and later decide whether the bitmap should be redrawn based on its geometry.

(2) Similarly, redrawing the bitmap onto a new canvas with the same transform  requires portability of the original state.

(3) getTransform allows for general purpose math operations. For example, if the author wants to know over which pixel in a canvas bitmap the cursor is hovering: simply getTransform(), invert the matrix, and multiply with the cursor to get the pixel index.

A workaround I wrote can be found here:
http://gitorious.org/meta2d/core/blobs/master/src/context.js

The same repository contains examples that give a context (no pun intended) to the utility of getTransform. It would be nice to do this without a cludge, and get back some CPU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>61746</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Morris-Pearce">mikemp</who>
    <bug_when>2011-12-17 13:45:15 +0000</bug_when>
    <thetext>Er, s/Context/Transform in summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63259</commentid>
    <comment_count>2</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-01-28 22:23:46 +0000</bug_when>
    <thetext>EDITOR&apos;S RESPONSE: This is an Editor&apos;s Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Partially Accepted
Change Description: none yet
Rationale: I&apos;m marking this LATER to consider it with other canvas-related feature requests when I get back to adding canvas features.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>