[whatwg] Canvas and imageData
Maciej Stachowiak
mjs at apple.com
Tue May 15 20:37:27 PDT 2007
On May 15, 2007, at 5:29 PM, Ian Hickson wrote:
> On Sun, 13 May 2007, Maciej Stachowiak wrote:
>>>
>>> (Given that you can create them yourself I'm not sure why ImageData
>>> has readonly attributes, but maybe that would save some additional
>>> checking...)
>>
>> Ironically, due to the readonly attributes you couldn't just use a
>> vanilla JS object as the implementation, even though you have to
>> accept
>> is as a value.
>
> I can make them non-readonly if people want.
I don't think it matters very much.
>> Also, if it's meant to be required for implementations to allow that,
>> the spec should say so - it's not normally assumed that any JS object
>> with the right properties can be used anywhere that an interface
>> can be
>> used.
>
> Isn't it?
I wouldn't expect something like the following to work, and indeed it
does not in any browser I tried. I would not a JS object with all the
attributes and methods of the core DOM Text interface could be
inserted into the DOM and render either.
It is typical for browsers to only accept objects that have the right
custom internal implementation, or in JS terms, the right value of
the [[Class]] internal property, as paramaters to DOM methods
requiring a DOM interface, except in special cases.
<div id="container">
<div id="test">test div</div>
</div>
<script>
var myEvent = { type: "custom", target: document.getElementById
("test"), currentTarget: document
, eventPhase: 0, bubbles: true, cancelable: false,
timeStamp: Date()
, stopPropagation: function() { }, preventDefault:
function() { }
, initEvent: function(eventTypeArg, canBubbleArg,
cancelableArg)
{ this.type = eventTypeArg; this.bubbles =
canBubbleArg; this.cancelable = cancelableArg; } };
document.getElementById("container").addEventListener("custom",
function(event) { alert("event"); }, true);
document.getElementById("test").dispatchEvent(myEvent);
</script>
> On Mon, 14 May 2007, Anne van Kesteren wrote:
>>
>> Just to keep this list in sync with #whatwg. It was suggested to give
>> both putImageData and getImageData a "high resolution" boolean
>> parameter
>> which would indicate what type of ImageData object you would get
>> back.
>> This would be fine by me. I'm not sure if that's needed right away
>> though.
>
> That's another option, indeed. We could address this when someone
> implements a high-res <canvas>.
Done. The WebKit <canvas> implementation scales the backing store by
the Mac OS X system-wide UI scale factor. The code to create the
scaled backing store starts on line 186 of WebCore/html/
HTMLCanvasElement.cpp. See http://nightly.webkit.org for a
downloadable copy. You can use Quartz Debug.app to set the UI scale
factor to something other than the default value of 1.0. (Apple does
not currently ship any systems with the scale factor pre-set to
anything but 1.0.)
Regards,
Maciej
More information about the whatwg
mailing list