- From: Cameron McCormack <cam@mcc.id.au>
- Date: Fri, 08 Feb 2013 16:49:15 +1100
- To: "www-svg@w3.org" <www-svg@w3.org>
http://www.w3.org/2013/02/07-svg-minutes.html And as text below: [1]W3C [1] http://www.w3.org/ - DRAFT - SVG Working Group Teleconference 07 Feb 2013 See also: [2]IRC log [2] http://www.w3.org/2013/02/07-svg-irc Attendees Present +1.408.536.aaaa, +61.2.937.4.aabb, GoogleMeetingRoom, +1.781.970.aacc, Vlad Regrets Chair Cameron Scribe Cyril Contents * [3]Topics 1. [4]SVG in OpenType spec proposals 2. [5]next f2f 3. [6]Proposed combined Matrix interface 4. [7]Matrix continued 5. [8]Multiple strokes 6. [9]SVG requirements list culling continued * [10]Summary of Action Items __________________________________________________________ <trackbot> Date: 07 February 2013 <scribe> scribe: Cyril SVG in OpenType spec proposals <ed> scribeNick: Cyril <heycam> Zakim: who is on the call? heycam: as a bit of background, we met with Sairus a year ago at Microsoft and we discussed in persons ... some issues regarding the SVG in OpenType proposal ... I recently started looking at it ... in the meantime Sairus has suggested some spec text ... and I thought a good way to engage and resolve differences was to write down what we have in our implementation ... and start to converge both proposals ... I'm not looking for any decision today ... I don't want to publish ... now ... edwin who worked on the implementation as an intern ... wrote down the behavior that we have ... last week I turned the description more like a spec ... and sent it to the list last week <heycam> [11]http://dev.w3.org/SVG/modules/fonts/SVG-OpenType.html [11] http://dev.w3.org/SVG/modules/fonts/SVG-OpenType.html <heycam> That's Edwin's and my write up. <heycam> [12]http://lists.w3.org/Archives/Public/public-svgopentype/2012 Aug/att-0000/SVG_in_OpenType_WD_2012-08-07.pdf [12] http://lists.w3.org/Archives/Public/public-svgopentype/2012Aug/att-0000/SVG_in_OpenType_WD_2012-08-07.pdf <heycam> That's Sairus' write up. heycam: I think they are not terribly different ... there are a few main differences ... I've not listed them ... do you want to discuss them? krit: the number of SVG documents is a good start heycam: I think Robert said on the ML and gave some reasons to support multiple documents ... in our proposal you have an index of byte ranges that correspond to each document ... and you indicate which range of glyphs are in the document <sairus> nick: sairus heycam: I believe in Sairus' proposal there is a single offset/length pair to indicate where the single compressed document is sairus: I sent a report ... the pros and cons of the multiple svg documents ... has been discussed ... and a new pro was subsetting glyphs ... I think the multiple svg documents approach has multiple pros (multiple dictionnaries ...) ... emoji in one document ... latin in another document ... the issue of timeline has been brought against, not to go ... I don't know how you feel about the timeline stuff in the proposal from last Friday ... If we go with multiple documents it is fine with me heycam: the main advantage I can think of ... splitting avoids the overhead of having one document running ... for all of the glyphs in the document ... you probably want to split the document to reduce the number of glyphs active sairus: I can imagine big fonts and relate problems AlexD: you can also cache easily ... caching part of a document is different cabanier: the proposal is not to have one document per glyph? heycam: not explicitely, it would be good to have guidelines to explain how to structure documents cabanier: yes because resource sharing is a problem heycam: resource sharing is not adressed in my document ... there would be no way to share across documents, we could define extra tables with URI (blob or multi part) ... I'm not sure it's worth at this point AlexD: there is no problem with the one document approach, but it's more work to use existing font cache krit: I'm not sure the font engine would be used for SVG AlexD: I would hope they are used, because of performances ... we should be thinking of speed and performances heycam: there is a difference between reusing existing font cache mechanism and designing a new one sairus: by subsettability I meant that you can create a font with just 5 glyphs ... for embedding in another document heycam: I remember us dicussing that last time, in one document, subsetting changes the document order and so style might be affected ... it's not trivial cabanier: what kind of style would be affected ? AlexD: nth child cabanier: I thnk the font should be independent of the number of child heycam: the styling of any element shouldn't change if you remove any element cabanier: yes, maybe ... if you use the 5th letter, it's not going to be the 5th child heycam: but presumably you are writing styles because they make sense with the document AlexD: that should be strongly discouraged heycam: the work to be done wouldn't be too bad sairus: subsetting complexity is already there in truetype ... a subsetter has to follow dependencies in truetype ... guidelines for SVG may be needed, but you have to take TrueType complexity into account cabanier: I don't think there is an issue with the order heycam: I would be happy with a warning to authors to avoid styling documents that change with order ... and also warn them to do subsetting properly cabanier: what happens if you open that svg file heycam: you could set the viewport to view something ... you could structure your document to view the svg in some way cabanier: or use style= display none heycam: display none on an ancestor of the glyph definition ... I woud want to behave just like use ... use elements are displayed even if display none is set on the referenced ancestor ... one of the big differences btw the 2 proposals, is that you have it compressed, we don't ... what happens when you serve a document, it may be compressed AlexD: WOFF is compressed sairus: any place fonts can be embedded there are ways to compress with more than WOFF or HTTP compression AlexD: we should mandate compression if we allow it, it shouldn't be optional heycam: agree ... It might make it difficult to pass to the XML parser ... you have to allocate the uncompressed version in memory AlexD: no you decompress it and stream it to your parser heycam: I don't have any fundamental objections with having the tables compressed ... I assumed it was simpler not to nikos: one of the other differences is the SVG glpyh class ... this is a nice thing heycam: yes this is the other major difference nikos: it allows you to know if the glyph is present without loading the file sairus: it is a cache ... I defined it to know which glyphs were defined with SVG in this font ... you could imagine clients that don't support animation would appreciate to know it upfront heycam: our table has index entries to say which documents cover which glyphs ... it doesn't say if the glyph is there, if it is, it has to be in this document ... so you'd have to open it ... the glyph range could be more than the glyphs in the document ... there might be holes in the range the table doesn't define the holes scribe: say a single document, range 1 to 64000 but with only one glyph in it sairus: the issue is that it involves calling the svg renderer ... we should make it simple for clients to take the first step ... really making it easy, no parsing unless they have to heycam: I feel the distinction animated/static and determining if a glyph is there at all are two different things ... right now, you have to search the glyph id ... I can see the benefit of having the right range in the table ... I think the sharing is a separate thing as well sairus: we want to be precise in the index table entry heycam: I think ti would be better with your proposal ed: when you define you SVG glyph can you reference data coming from the CFF or glyph tables sairus: go across glyph technologies ? ... so far they've been seen as mutually exclusive heycam: no proposal have this feature sairus: I can see it would be useful, for instance style with CSS normal glyphs ed: I could see use cases were you want multi colored glyphs without duplicating the glyph data heycam: it would require special adressing Cyril: fragment identifiers ? sairus: it is probably not worth adding the complexity heycam: I'm sure it would be possible to make it work <Vlad> Would SVG renderer allow importing binary outline descriptions into XML-based SVG document? IF not, I don't <yet> see a use case for this references <Cyril_> cabanier: is it written that you can't write reference to external resources? <Cyril_> heycam: yes <Cyril_> sairus: could be an extension in the future, not required for v1.0 <Cyril_> heycam: (reading vlad's comment) <Cyril_> Vlad: you would need to import them ? <Cyril_> Vlad: without being able to enforce it, I don't see the use of the reference <Cyril_> heycam: the advantages I could see, is avoiding to duplicate <Cyril_> ... it's basically an optimization <Cyril_> ... you'd have to define how path animations would work <Cyril_> cabanier: hinting is another thing ed: I don't think all browsers apply hinting if the outlines are fetched for rendering (depending on scale) heycam: I feel like it is a reasonnable way to support animated and non animated with the same definition ... you render the document without the animation element ... I might have written a tiny example, how you could animate a circle radius to 10 and back ... for the non animated version, you ignore the animation and render the r attribute base value cabanier: you limit yourself to the non animated case as a snapshot birtles: you could have a set that turns the glyph to something different at the beginning sairus: I think both main proposals have converged to having a single glyph definitions and you render the animation or not ... just like when you print an animated svg document heycam: people design graphics in this way for viewing animated content in IE ... there is a way to switch on to some different graphics Cyril: I don't know what we have decided with the snapshotTime birtles: this requires to apply the animation AlexD: yes, you need more than a static engine ... I don't think snapshotTime is a very good tool for that heycam: if an app using the font wants to say render the font statically with a snapshot time ... they'd be able to do that <heycam> ScribeNick: heycam shepazu: when I was reading the font spec what file are the fonts defined in? are they defined in the file that is the font file? or can they be external? AlexD: they would be in the font file shepazu: it seems almost arbitrary that they need to be in the font file, rather than the document that is being rendered what's the limitation that says we can't reference them internally? in which case how does this save us anything from SVG Fonts as they are defined? cabanier: it's backward compatible; the user doesn't know it's SVG the font just renders shepazu: but isn't that also the case with what I said? cabanier: this is not just for HTML, but everywhere shepazu: one of the use cases I get mailed off list, is that people like to be able to define the SVG font in the file itself <Cyril> heycam: the advantage of not having them in the document is to not be able to modify them at runtime <Cyril> shepazu: it should be explicit in the spec <Cyril> AlexD: the big reason is to support complex scripts <Cyril> ... there is no advantage for latin <Cyril> ... svg fonts can be external documents <Cyril> scribenick: Cyril heycam: if there are particular reasons why we are choosing this model, it should be clarified Vlad: this is not really going to be part of the SVG spec ... this is going to be in the OpenTYpe spec AlexD: it opens up the possibility of HTML to use SVG for text ed: but you can already use SVG fonts with HTML sairus: next point, I'd like to discuss is ... so far the Adobe proposal doesn't change the SVG spec ... we want to ease the burden of implementations ... there are some aspects of the SVG spec that need to be changed in the Mozilla proposal ... the glyph id is it absolutely needed ? ... and the color by number schemes ? heycam: we've started to add the new paint values inSVG because they are useful in other context (markers) ... we have new keywords: context-fill and context-stroke ... you reference the text element that is using the glyph ... you can use them in the fill or stroke of the glyph sairus: in the proposal there is a single fill or stroke heycam: yes, no passing of arrays sairus: I can have the base of a lower case i be rendered with a color and the dot with another color heycam: you could define a gplyh with some parts filled in context fill and some other parts to be always red for instance <shepazu> (what about passing in "parameters"?) heycam: you can override with colors specified in the font document AlexD: what about gradients ? heycam: context-fill uses the same gradient AlexD: a gradient right now can be applied to a chunk of text ... I don't see how you could do that with the glyph based gradient heycam: we've made it work ... the rendering of the glyph is not passed to a font engine ... normal glyphs only ... svg glyphs we paint them ourselves <heycam> [13]http://dev.w3.org/SVG/modules/fonts/SVG-OpenType.html#value -context-fill-stroke [13] http://dev.w3.org/SVG/modules/fonts/SVG-OpenType.html#value-context-fill-stroke heycam: so the gradient is smoothly applied to the run of text ... have a look at example 3 cabanier: that's when the gradient is in the referencing document, and it would be different when the gradient is in the svg glyph document sairus: we'd like fonts to come with various swatches of predefined colors (extended to opacity ...) that go together well ... and the tool would offer these color options ... each of them would have a name id ... so that the user interface could show them ... what would it take to do that? heycam: without having thought about it too hard, using CSS variables could be the way to do it ... how do you pass them in ... same thing as parameters sairus: are you saying the CSS thing could coexist with the context-fill and context-stroke ? heycam: when you have text in the outer SVG document (SVG text) you can fill and sttroke it. In HTML you can only fill, but there are discussion to have stroking ... I feel that those 2 operations are special ... separate parameterized palette entries Vlad: I support the use case that sairus presented ... we should make it stronger ... designers with specific colors in mind, wouldn't want these colors to be modified by the outside ... just like they don't want the outlines to be modified heycam: it is totally fine ... if you specify a fixed color value, that's it, can't be overriden ... same thing for patterns sairus: stroking can alter the look of the glyph ... OpenType doesn't mention stroking ... OpenType gives an alpha mask and you're free to color it ... I'm not particularly convinced that context-stroke is useful heycam: for me, filling and stroking are the basic primitives that you can do to shapes cabanier: but you won't be able to stroke an svg glyph heycam: you will ... you will not stroke the outline ... you need to construct the document with stroke in it, if you want it sairus: I'd like to have a place for palette in the font spec ... I don't think it'll be implemented right now ... but it needs to be speced ... what would eb the values heycam: that's what Leonard asked ... what we have is very web specifi ... we need to define what the context is outside of a web context sairus: you said SVG has color spaces ? heycam: CMYK, spot colors .. ... in SVG 2, there is a new color syntax to refer to ICC colors, LAB, ... ... I'm not sure all of that will be implemented in browsers ... you can have a fallback sRGB cabanier: the browser would not have to render the spot color, but a printer would sairus: how would it look like Cyril: you can use solidColor to make palettes <heycam> [14]https://svgwg.org/svg2-draft/color.html [14] https://svgwg.org/svg2-draft/color.html <heycam> [15]https://svgwg.org/svg2-draft/pservers.html [15] https://svgwg.org/svg2-draft/pservers.html heycam: you can reference colors by name (gradient, patterns or solid colors) ... I'm not sure that would be the best way to do it: defining set of names controlled by the outside ... there is a proposal for parameters ... that could be better or some information in the table header sairus: that is one way SVG would be extended ... but not only for fonts, right? heycam: we've added taht to the main SVG spec, because they are useful in other situations ... markers to be style the same way as the objects they are put on sairus: what about glyph id <heycam> ScribeNick: heycam shepazu: I'm wondering about non-Web contexts do we expect SVG glyphs to be used widely in non-Web contexts? and what does it mean for these context-* values in non-Web content there's a lot of stuff to implement SVG, even with the amount that's specified in the SVG-in-OpenType proposal are we going to cut that down? <Cyril> heycam: we haven't really talked about what subset of SVG is required <Cyril> ... should we annotate glyphs with versions of the svg spec <Cyril> ... on the web we add new features and old browser do some thing, maybe in font, it could be different handling, I don't knonw <Cyril> ScribeNick: Cyril AlexD: are you expecting different engines than web engines ? heycam: it doens't seem to make sense to not use some existing libraries Cyril: performances ? heycam: you can still write your own ? ... Adobe is using webkit ? cabanier: not decided yet ... it would be silly because SVG would be a lot of work sairus: so far the only restriction of the type of SVG content is secure animated mode ... I have a feeling it is best to stick to that ... not have a subset of svg defined heycam: I would be similarly concerned with other groups subsetting SVG shepazu: ePub, and ODF really butchered SVG ... I wouldn't claim it to be really SVG ... if we do things right, we will be talking to hardware manufacturers ... we should be open to extra characterization ... saying this element is not suitable for fonts heycam: I'm not so concerned ... for instance foreignObject with HTML is this allowed in fonts ? AlexD: no sairus: the SVG integration document should define that heycam: we should look at the features in SVG and see if they make sense in fonts sairus: glyph id is the only remaining extension to the SVG spec heycam: in the Adobe proposal you propose to use the id attribute in a particular format ... I think it's a bad idea ... another attribute would be better ... glyph id does not have effect on how things render ... it's only used to locate ... it could be added to the main SVG spec if it is a concern sairus: OpenType and SVG processing should be separated AlexD: using straight id, is you can use "use" elements ... composite glyphs could use use ... if you use glyph id you need to put both id and glyph id sairus: the font tool will insure that hte ids are well formed heycam: we can continue that one on the mailing list Vlad: agree ... having both glyph char and glyph id is confusing heycam: that is a separate issue Vlad: all processing is based on glyph id, definition additional things will be confusing heycam: glyph char is unnecessary, only added as a convenience, to avoid looking at the cmap ... I don't mind one way or the other sairus: we can discuss color on the list too heycam: final question, we don't want to continue with 2 documents sairus: I do see 3 specs: defining the OpenType table (in OFF spec), SVG extensions (in SVG 2 or separate document as a 1.1 extension), Mozilla recording what they implement heycam: in our spec, there is a description of how to process the SVG ... where should it go ? ... requirements on implementations behavior in case of error sairus: if they are not only relevant to SVG in OpenType, they should be in the SVG spec ... but if they are specific, they should be in OpenType ... glyph id should be mentionned in the OpenType spec but defined in the SVG spec heycam: maybe some wording from my spec should go into the OpenType spec maybe ------ break ------- <birtles> scribenick: birtles next f2f heycam: csswg have settled on 5-7 June 2013 ... in Tokyo ... so we want to be there 3-4, and make 5th the day for joint topics ... so that was our plan, but it was contingent on CSSWG firming up their dates Cyril: if we need an extra day we could schedule things that are not of interest to CSSWG members on Thurs krit: everything is of interest to me heycam: are 2.5 days enough? krit: should be ok Cyril: will there be a Web Animations f2f? birtles: we could have one shanestephens_: we could have one before then RESOLUTION: The next SVG F2F will be in Tokyo from 3-5 June 2013 with 5 June being a combined day with the CSSWG birtles: Mozilla Japan will host, but the day of the 5 June may be at a different location krit: what about the following f2f? AlexD: you often get less done at TPAC stakagi: note that the AC meeting is in Tokyo from 9-11 June 2013 AlexD: the graphical web conference may be in the Bay Area in September birtles: where is TPAC? AlexD: Shenzhen, China heycam: do people think that June, Sept and Nov is too much? ... I feel like it is krit: what about a shared/split F2F? AlexD: I think a lot of people here will be going to the graphical web ... as opposed to TPAC heycam: I think I'd prefer to go to TPAC ... for the interaction with other groups AlexD: so maybe the graphical web should be decoupled from the wg ... and just make it more of a web conference: focussed on designers/developers ... so it might make sense to just to tpac krit: some of us will have conflicts since we need to attend css etc. cabanier: I think we can find time heycam: so is everyone ok to meet at tpac instead of the graphical web? all: yes RESOLUTION: The F2F after Tokyo will be at TPAC in Shenzhen, China TPAC is 18-22 November Proposed combined Matrix interface <krit> [16]http://www.w3.org/Graphics/SVG/WG/wiki/Proposals/Matrix [16] http://www.w3.org/Graphics/SVG/WG/wiki/Proposals/Matrix krit: this is a shrunken version of the proposal from Dean ... my questions are: rotate is not correct ... Dean proposed to have rotateX, rotateY, rotateZ <krit> [17]https://svgwg.org/svg2-draft/coords.html#InterfaceSVGMatrix [17] https://svgwg.org/svg2-draft/coords.html#InterfaceSVGMatrix krit: as separate arguments ... but I would prefer if they were not separate methods ... the current SVG matrix rotates just around the Z matrix ... because it's only 2D ... so it just have one argument ... Dean's proposal has three arguments ... the problem is how is this compatible with the current SVG matrix? <krit> rotate(x,y,z) dino: SVGMatrix has just one argument (around the Z axis) ... but in this proposal has a function of the same name that takes three arguments heycam: you could overload it dino: but normally with overloading you remove arguments from the end, not add them at the beginning Cyril: can you reorder them? heycam: you don't really want z, x, y ... SVG uses just z ... in the three argument version you have x, y, z dino: the other option is to use rotateAxisAngle ... instead of rotate(0, angle, 0) ... rotateAxisAngle(0, 1, 0, angle) shanestephens_: if you have rotate with three arguments it's x, y, z dino: I much prefer the four-argument form krit: then there's rotateFromVector(x, y) heycam: which is already on SVGMatrix krit: and it's 2d ... and it transforms the matrix from the centre into the direction of the vector heycam: it's like apply a rotation from this vector Cyril: in some 3d languages you give a vector and then you give an angle and rotate around the vector krit: so in this case you give it a point, and it rotates it there dino: I call that look-at krit: but the problem is we need to keep the SVG name cabanier: does it need to be in the merged matrix too? krit: we can make rotateFromVector work with 3D ... by adding an optional 3rd argument ... it should work ... but we can't rename it heycam: the name makes it sound like you're doing something *from* the vector Cyril: and you also want rotate around vector krit: it' not in SVG only in CSS ... I'd like to have it but it's not used a lot ... Dean's proposal is rotateAxisAngle ... maybe rotateAroundVector would make more sense? ... is that ok? instead of rotateAxisAngle? dino: that's fine with me birtles: why can't we rename again? krit: because SVGMatrix would be an alias for this heycam: not sure if it's exactly aliasing but yes, you might use this in places where an SVGMatrix is expected krit: rotate with 3 arguments is hard to use (for authors) ... so it might not make sense to have it at all ... and just keep rotate around the z axis shanestephens_: I agree the three argument version is hard to use krit: but CSS transforms supports x and y (with just one argument) ... we might want to have that as well to be compatible dino: but not on this matrix interface ... if you're diving into matrix, you're doing something complicated krit: I added skewY and skewX from SVGMatrix ... but do we want them? ... I'd rather not add them to the interface dmitry: I'd like to have rotate around a point ... like in SVG transform syntax krit: we could add that ... but then do we do the same for scale? ... scale already has 3 arguments heycam: so add another 3? dmitry: make them optional and 0 by default krit: then you have 6 arguments dmitry: it's a technical toolset ... as a developer I would really like this heycam: if we have rotate from vector, then that's another shortcut dmitry: if we have rotate from vector I really want rotate from point cabanier: maybe a new attribute on the matrix interface? transformPoint? krit: that's not what dmitry was asking for ... that's a global transform origin ... dmitry was asking for a per-operation transform origin cabanier: but maybe that's what you want? to use the same transform point? heycam: it's like how transform origin is not as useful as it could be already ... once you have a transform chain it's no longer useful ... in this case you'd have to reset the transform point ... I think it's pretty common to rotate/scale around a point dmitry: I don't mind math but not excessive math krit: do we want rotate with three additional arguments? ... scale is more complex, because you have 6 arguments birtles: is it worth considering a 3DPoint interface for the sake of code readability? krit: I don't mind adding the three arguments heycam: we already have scaleUniform and scaleNonUniform ... I think scaleUniform is more common ... for the common-case where you want to scale uniformly around a point ... we can leave scaleUniform with a single scale factor and add optional x/y/z arguments krit: I don't think that's useful to scale by the same amount in each dimension heycam: I think it's common when you want to, e.g. zoom in, but not deform the world ... when dmitry is doing a uniform scale he doesn't have to put a zero in ... or 1 in the case of scale ... does it make sense to separate uniform and non-uniform cabanier: yes dmitry: I think it makes simple stuff simple and complicated stuff possible cabanier: I prefer have a transform point on the matrix, it seems more natural birtles: what about a point dictionary that you re-use ... then you can see { x: 0, etc. heycam: we can make these take different arguments ... the numbers, a dictionary, a native point etc. ... it's possible, but not necessarily what we want to do ... just the float arguments would be fine krit: the proposal from dean has radians for angles ... SVG doesn't say degrees or radians but it's assumed to be degrees ... so for backwards-compatibility I suggest degrees birtles: I agree krit: next, the SVGMatrix interface uses floats ... Dean's proposal uses doubles heycam: we should use doubles AlexD: floats are for wimps heycam: each time you return a float you have to extend it out to a double all: let's use doubles krit: next, I added flipZ next to flipX and flipY ... just to be consistent ... not sure if it's really used ... inverse(), inverts the matrix but throws an exception if it's not invertible ... and determinant() is the same ... there are mutable and immutable functions ... mutable operations need to reproduce the functionality but with different names ... the current proposal does that by adding "By" for the mutable versions heycam: it's unfortunate that SVG uses a mix of nouns and verbs when all of them are immutable ... some of the names sound like they are modifying the object ... why is there no mutable flipX, flipY etc.? krit: because they're not important, what would you call them? ... I didn't find a better name but you might want to know if a matrix is 2D or not so I added is2dMatrix() heycam: what about is2D() ? ... since you're calling it in the context of a matrix dmitry: can you also add a method to split a matrix into translations etc. krit: that was proposed ... but the problem is rotation ... how do you describe the rotation? ... you could use Euler ... but then you could lose information ... so an alternative is gimbal lock ... in CSS transforms we used quarternions ... but I don't think that's really useful for authors dino: Euler angles still allow you to specify any angle in 3d space ... the reason you use quarternions is for animating between two points ... it takes the best path dmitry: is it impossible to do the decomposition of the matrix ... could we add that method to the matrix? krit: the Euler function? dino: yes we could do that heycam: is the problem that it's just one possible decomposition amongst others ... why do we use this one dino: because it's the most common one heycam: what would be return value of decompose() krit: quarternions would be four values to describe one angle heycam: if I call decompose() I would expect to get <scale amount>, <rotate amount>, <translate amount> etc., not "here is a quarternion" ... how would we return those values? ... a dictionary? ... an array of numbers where position in the array determines the meaning krit: what do we want to return? not a quarternion? ... a quarternion just represents the rotation dmitry: I want to get "the rotation is 45 degrees" etc. [discussion about quarternions, matrices, quarternions, matrices, Euler, mass confusion] dino: why are we adding this function? krit: I think you don't need to get these components heycam: I think the point of this is there are things where you do need these components shanestephens_: I just implemented CSS decomposition in javascript because it wasn't available ... to say decomposing gives you quarternions complicates the issue ... it gives you the scale etc. ... so, do we want this function? ... and what format do we want it in? ... I want this function dmitry: I and at least three others want it shanestephens_: is anyone opposed to it except for on the basis that it is a lot of work? dino: I think if we do it, it should do exactly what CSS transforms too shanestephens_: I agree dino: it's really only use for animations ... and in most cases when you write a tool to do the animations, typically the user wants to change the scale ... the only time you want to decompose the matrix ... is when you don't know the steps that built up the matrix ... typically you want to know the steps that built up the matrix and know where to apply the transformation shanestephens_: I agree, but sometimes you're forced to work with the matrix you're given ... I don't think it's a lot of work to do what CSS transforms do since it's already implemented dmitry: but often you want to work with content from another author ... for example, a clock where you know which element the hand is ... and you want to animate it, or measure the time etc. dino: the only problem there is that the decomposition will work most of the time but not all of the time ... if the matrix is unusual enough you might get an unexpected result ... you want to go back 90 degrees but you might not go the right way ... it might not solve all your problems shanestephens_: but generally you can decompose and control the decomposed result dino: I think dmitry's case where you're just changing one angle should be fine ... but once you're doing more than one thing ... you're more likely to run into something you didn't expect ... but I don't oppose putting it in ... but I want to be clear that it might not solve all cases shanestephens_: it feels like when we have these algorithms that are part of the web platform we should be exposing them to js krit: I'm ok with it ... the question is how to represent the result ... a dictionary? heycam: another option would be an array of numbers ... where the order of numbers determines the meaning ... e.g. position 0 means scaleX ... but that's a bit harder to use krit: I expect this will be used by people who know matrices <scribe> ACTION: Dirk to work together with Cameron on a representation of the decomposed values of a matrix [recorded in [18]http://www.w3.org/2013/02/07-svg-minutes.html#action01] <trackbot> Created ACTION-3456 - Work together with Cameron on a representation of the decomposed values of a matrix [on Dirk Schulze - due 2013-02-15]. <heycam> -- lunch break -- <heycam> ScribeNick: heycam Matrix continued krit: Dmitry pointed out that we also have SVGPoint in the SVG DOM the question is, this seems to be useful in general we've used it on some CSS properties, to convert events from one user space to another do we want to provide a Point to other languages? So Point instead of SVGPoint? which can also be transformed... if yes, what are the pros? Point is interesting when you want to transform it if you want to transform it with this 4x4 Matrix, so the point should have 4 components heycam: 3 components? with a 1 on the end krit: if you transform a 4-valued Point with an arbitrary 4x4 matrix, all 4 of these coordinates could change heycam: I would say we don't need the fourth component for a 3D point krit: we need the fourth component for intermediate calculations beside that, why would you need it? can we just drop it? birtles: could you have a dictionary that has x, y, z plus whatever you call the last one? krit: w? birtles: the z defaults to 0, the w to 1; as a dictionary it wouldn't have methods, but something on the Matrix class could take a dictionary and return a dictionary so no need to define a new Point interface when you've got a method that takes a point in, you pass in { x: 1, y: 2 } and in 2D space you don't specify any more krit: once you set this point, can you still read back the fourth component? birtles: yes the method could stick the "w" property on there and authors could ignore it krit: I'm not in favour of a dictionary birtles: Matrix.transformPoint() could take a dictionary and return a dictionary ... it's convenient to use that syntax and you can still get ".x" from the return value <birtles> e.g. var ret = matrix.transformPoint({ x: 23, y: 24 }) <birtles> console.log(ret.x) dmitry: I like this; I don't like `new Point(23, 24)` dino: I kind of like the idea of not needing a defined type krit: SVGPoint has a transform method what would we do with that? ed: could just leave SVGPoint around it's used for SVGAnimatedPoints and it's live there birtles: currentTranslate is also an SVGPoint heycam: and that's live too so we'll add a new transform method on Matrix? taking a point? krit: yes I think we're deciding to use a dictionary birtles: then you could also use that in some of the other methods on that interface scale() etc., instead of taking x, y, z you could take a point then with 2D transforms you wouldn't need to specify the last few arguments also when you read the code it's clearer which is x, y, z krit: ok dmitry: I like it [again] krit: do we also want to have a flatten function, that converts a 3D transform to a 2D transform? birtles: what's the use case for that? krit: to use it in canvas for example you might want a 2d version of a canvas krit: what would you do in canvas if you give a 3d matrix as the ctm for canvas? cabanier: I think canvas should ignore it silently fail cabanier: will you be able to set a CSS Transform with this Matrix? krit: yes in CSS OM, in the future dmitry: I like it heycam: where is this Matrix living? krit: in its own spec I'd like to work on that spec heycam: so what about Rect? krit: I don't care about Rect dmitry: Don't forget vectors <scribe> ACTION: Cameron to investigate HTML global attributes. [recorded in [19]http://www.w3.org/2013/02/07-svg-minutes.html#action02] <trackbot> Created ACTION-3457 - Investigate HTML global attributes. [on Cameron McCormack - due 2013-02-15]. Multiple strokes [some freeform whiteboarding about possibilities for multiple strokes specified in properties] stroke="red, white blue" stroke-position="-50%, 0, 50%" could make toothpaste like in ed's example from SVG Open heycam: sometimes I think that 'stroke' should be a shorthand for stroke-width, stroke-opacity, stroke-paint, etc. <ed> my example from svgopen: [20]http://xn--dahlstrm-t4a.net/svg/presentations/svgopen2012/p resentation/ [20] http://xn--dahlstrm-t4a.net/svg/presentations/svgopen2012/presentation/ SVG requirements list culling continued [21]http://www.w3.org/Graphics/SVG/WG/wiki/SVG2_Requirements_Co mmitments [21] http://www.w3.org/Graphics/SVG/WG/wiki/SVG2_Requirements_Commitments [$1\47] Clarify that svgz should be as usable everywhere svg files can heycam: might mean registering a new mime type for svgz ed: not all browsers support opening svgz from the local file system heycam: is it enough to add a sentence saying svgz can be opened from the file system? ed: yes <scribe> ACTION: Erik to do the "Clarify that svgz should be as usable everywhere svg files can" SVG 2 requirement. [recorded in [22]http://www.w3.org/2013/02/07-svg-minutes.html#action03] <trackbot> Created ACTION-3458 - Do the "Clarify that svgz should be as usable everywhere svg files can" SVG 2 requirement. [on Erik Dahlstrφm - due 2013-02-15]. RESOLUTION: We will keep the SVG 2 "Clarify that svgz should be as usable everywhere svg files can" requirement. [$1\47] Have a DOM method to convert a <text> element to outline path data heycam: it sounded like we went a bit off this idea of direct access to the glyph data and instead to use the Path object to do some operations on glyph data cabanier: it's too bad there are not platform apis to consistently get outlines RESOLUTION: We will defer the "Have a DOM method to convert a <text> element to outline path data" SVG 2 requirement to the Path object spec, but just allowing operations on glyph data and not direct access to the data. [$1\47] Have simpler interpolation between two paths birtles: not having the same number of segments I reckon it's really good to do, maybe not part of SVG 2? we could look at that as part of Web Animations and decide when to address that <scribe> ACTION: Shane to investigate easier path animations. [recorded in [23]http://www.w3.org/2013/02/07-svg-minutes.html#action04] <trackbot> Created ACTION-3459 - Investigate easier path animations. [on Shane Stephens - due 2013-02-15]. RESOLUTION: We will defer the "Have simpler interpolation between two paths" SVG 2 requirement to Web Animations, possibly later. [$1\47] Explicitly support Web Open Font Format (WOFF) heycam: done [$1\47] Add snapshot time for animated documents and may specify how to get at the rendered image heycam: seems like two separate things birtles: it doesn't help for UAs that don't do animation ... better to define the document in such a way that it looks the way it should without animations Cyril: are there cases where you can't create content where if the animation is not processed it wouldn't produce the same output AlexD: a cartoon.. frame 0 might be different/empty from what you want dino: maybe you don't want to show any frame of the cartoon, maybe you want something different people embed single frames into youtube videos, it gets used as the poster RESOLUTION: We will not do the "Add snapshot time for animated documents and may specify how to get at the rendered image" SVG 2 requirement. [$1\47] Adopt the requiredFonts attribute heycam: I don't think this is good; you need to know that specific glyphs are available RESOLUTION: We will not do the "Adopt the requiredFonts attribute" SVG 2 requirement. [$1\47] Add the solidColor element and its properties heycam: done [$1\47] Follow what HTML does for RDFa and microdata heycam: I'll think about that as part of global attributes [$1\47] Add buffered-rendering ed: that is done I think [$1\47] Have the vector-effect property ed: that is done too [$1\47] Have the viewport-fill and viewport-fill-opacity for zoom now should be background-color etc. Cyril: I remember we discussed that background-color is not the same thing as viewport-fill heycam: nobody is excited about doing it RESOLUTION: We will defer the "Have the viewport-fill and viewport-fill-opacity for zoom now should be background-color etc. " SVG 2 requirement. [$1\47] Have constrained transformations based on SVG 1.2 Tiny AlexD: I think they're useful doesn't mean we should have them though shanestephens_: we're going to look into having some form of constrained transformation based on some of the other requirements I had an action to look into it based on the results of that we can decide in June [$1\47] Improve the bounding box text based on SVG Tiny 1.2 heycam: keep it, leave it to Doug [$1\47] Include the improved text from SVG Tiny 1.2 on characters and glyphs, text layout, text selection, text search heycam: I will redo the whole chapter, will do it as part of that [$1\47] Have the HTML content editable feature heycam: don't know if it's worth doing at this point AlexD: think it's too big for SVG 2 Cyril: defer it RESOLUTION: We will defer the "Have the HTML content editable feature" SVG 2 requirement. [$1\47] Have the transformBehavior feature in its spec or as part of the merged transform spec Cyril: we talked about this the other day I think Shane will look at that too [$1\47] Add the features of the SVG Tiny 1.2 animation element but not the element itself heycam: we've got iframe element Cyril: but there's the timing too birtles: time containers Cyril: that's also related to the video element <scribe> ACTION: Cyril to do the "Add the features of the SVG Tiny 1.2 animation element but not the element itself" SVG 2 requirement. [recorded in [24]http://www.w3.org/2013/02/07-svg-minutes.html#action05] <trackbot> Created ACTION-3460 - Do the "Add the features of the SVG Tiny 1.2 animation element but not the element itself" SVG 2 requirement. [on Cyril Concolato - due 2013-02-15]. RESOLUTION: We will keep the "Add the features of the SVG Tiny 1.2 animation element but not the element itself" SVG 2 requirement. [$1\47] Have synchronization support from somewhere in the web platform Cyril: this is Web Animations RESOLUTION: We will defer the "Have synchronization support from somewhere in the web platform" SVG 2 requirement to Web Animations. [$1\47] Have a solution for specifying focusability and navigation order, and be consistent with HTML heycam: Rich is looking into tabindex RESOLUTION: We will keep the "Have a solution for specifying focusability and navigation order, and be consistent with HTML" SVG 2 requirement. [$1\47] Have a mechanism for controlling focus indication, consistent with CSS and HTML Cyril: this was focusHighlight attribute from Tiny ed: I don't think we even require any behaviour in Tiny Cyril: we can leave it to Rich RESOLUTION: We will keep the "Have a mechanism for controlling focus indication, consistent with CSS and HTML " SVG 2 requirement. [$1\47] Support an API to control focus consistent with HTML krit: is this also Rich heycam: yes RESOLUTION: We will keep the "Support an API to control focus consistent with HTML " SVG 2 requirement. [$1\47] Have support for key events from DOM Level 3 Events heycam: I don't think we need to do anything more than reference this spec so, keep it RESOLUTION: We will keep the "Have support for key events from DOM Level 3 Events " SVG 2 requirement. [$1\47] Have the SVGRotate event from SVG Tiny 1.2 ed: I don't think it's very important RESOLUTION: We will defer the "Have the SVGRotate event from SVG Tiny 1.2 " SVG 2 requirement. [$1\47] Support progress events using the HTML 5 method heycam: this could apply to <image> we'll already have this on <video> by using HTML's <video> <scribe> ACTION: Cyril to look into whether Progress Events should fire on <image>. [recorded in [25]http://www.w3.org/2013/02/07-svg-minutes.html#action06] <trackbot> Created ACTION-3461 - Look into whether Progress Events should fire on <image>. [on Cyril Concolato - due 2013-02-15]. [$1\47] Adopt improved SVG Tiny 1.2 text on hit testing and event processing krit: I think we discussed this heycam: I think that was isPointInFill ... if there is better wording about hit testing in Tiny we should copy it over RESOLUTION: We will keep the "Adopt improved SVG Tiny 1.2 text on hit testing and event processing" SVG 2 requirement. <scribe> ACTION: Erik to do the "Adopt improved SVG Tiny 1.2 text on hit testing and event processing" SVG 2 requirement. [recorded in [26]http://www.w3.org/2013/02/07-svg-minutes.html#action07] <trackbot> Created ACTION-3462 - Do the "Adopt improved SVG Tiny 1.2 text on hit testing and event processing" SVG 2 requirement. [on Erik Dahlstrφm - due 2013-02-15]. The next four are basically copying over better text from Tiny. [$1\47] Adopt the improved wording on Reference Restrictions [$1\47] Adopt the improved wording on Processing External References [$1\47] Adopt the text from SVG Tiny 1.2 on Indicating links [$1\47] Merge the SVG 1.1 SE text and the SVG Tiny 1.2 text on fragment identifiers link traversal and add media fragments <scribe> ACTION: Erik to do the 104, 105, 106, 107 SVG 2 requirements. [recorded in [27]http://www.w3.org/2013/02/07-svg-minutes.html#action08] <trackbot> Created ACTION-3463 - Do the 104, 105, 106, 107 SVG 2 requirements. [on Erik Dahlstrφm - due 2013-02-15]. ACTION-3463: Not 107, Cyril will do that as part of ACTION-3442. <trackbot> Notes added to ACTION-3463 Do the 104, 105, 106, 107 SVG 2 requirements.. [$1\47] Define how inline scriptable content will be processed, in compatible way to HTML5 heycam: I'll still do this [$1\47] Merge SVG Tiny 1.2 improved text on the script element heycam: same thing [$1\47] Use the relevant parts from SVG Tiny 1.2 and align with the HTML script element heycam: also the same thing [$1\47] Apply the changes from SVG Tiny 1.2 Animations chapter birtles: yet to do, will do ... it's basically handling bad values in animations [$1\47] Support xlink:href on the foreignObject element after security verification heycam: no, this will be iframe's job ed: foreignObject is the defined extension point for SVG so will <iframe> be that in the future? heycam: do you need href on <foreignObject>? Cyril: if you want to include some HTML in your SVG, you have to use foreignObject if you want to reference it you use <iframe> ed: it's not just HTML though it's a custom plugin we don't know anything about krit: you can use foreignObject for MathML too ed: I'm fine with deferring it RESOLUTION: We will defer the "Support xlink:href on the foreignObject element after security verification " SVG 2 requirement. [$1\47] Use the MicroDOM as input into the DOM improvement designs heycam: we've already got some DOM improvements in line like px, etc. ed: I think you can go quite far with the suggested improvements we have so far easy typed access is what I want to see, and that's what we have now krit: and then CSS OM will also improve this ed: basically shorter/nicer than SVG 1.1 DOM RESOLUTION: Nothing more to do for the " [$1\47] Use the MicroDOM as input into the DOM improvement designs " SVG 2 requirement. [$1\47] Have relaxed document error handling (with lacuna values etc.) as defined in Tiny 1.2 heycam: I can take this one <scribe> ACTION: Cameron to add relaxed document error handling to SVG 2. [recorded in [28]http://www.w3.org/2013/02/07-svg-minutes.html#action09] <trackbot> Created ACTION-3464 - Add relaxed document error handling to SVG 2. [on Cameron McCormack - due 2013-02-15]. RESOLUTION: We will keep the " [$1\47] Have relaxed document error handling (with lacuna values etc.) as defined in Tiny 1.2 " SVG 2 requirement. [$1\47] Add new paint values currentFillPaint, currentStrokePaint heycam: I think these are slightly different from context-fill, context-stroke these are instead like currentColor Cyril: we can leave it with Chris I remember seeing good examples RESOLUTION: Deferred " [$1\47] Add new paint values currentFillPaint, currentStrokePaint " depending on Chris' action. [$1\47] Clarify radial gradients with focal point on the circle Cyril: this is already in the spec [$1\47] Add an fr attribute to <radialGradient> Cyril: also done [$1\47] Use CSS3 definitions for text layout (whitespacing, bidi, etc) that is not specific to SVG heycam: I will stil do that [$1\47] Use updated CSS3 specifications heycam: I will help help do those [$1\47] Provide a way to get glyph path data via some API AlexD: this is a dupe [$1\47] Move all events to Element, in accordance with the similar move in HTML heycam: I will still do this [$1\47] Add a path rotation command RESOLUTION: Defer the " [$1\47] Add a path rotation command " requirement unless Cameron gets time. [$1\47] Introduce evt as an alias to event in event handlers heycam: I'll do that as part of the script reworking [$1\47] Require object-fit and object-position heycam: this is a dupe of 71 trackbot, close ACTION-3001 <trackbot> Closed ACTION-3001 Gather up issues regarding object-fit and it's applied to SVG and email CSS Working Group. [$1\47] Add text-overflow heycam: done, Erik did it [$1\47] Mandate support for SVG Tiny fonts heycam: we can come back to it at a more useful time [$1\47] Mandate the support for external style sheets, style element and style attributes all with CSS syntax RESOLUTION: We will keep the " [$1\47] Mandate the support for external style sheets, style element and style attributes all with CSS syntax " SVG 2 requirement. [$1\47] Define how border and background apply to SVG krit: to the <svg> root element maybe inside SVG, I don't think there's a lot to define RESOLUTION: We will keep the " [$1\47] Define how border and background apply to SVG " SVG 2 requirement. [$1\47] Define the outline property for use on SVG elements heycam: Rich can look at this as part of the focus work [$1\47] Clarify how pointer-events can hit the root svg or not krit: this just needs some clarifications RESOLUTION: We will keep the " [$1\47] Clarify how pointer-events can hit the root svg or not " SVG 2 requirement. [$1\47] Drop xlink prefix for href AlexD: yes heycam: Chris has the action, I can pick up the rest if need be RESOLUTION: We will keep the " [$1\47] Drop xlink prefix for href " SVG 2 requirement. [$1\47] Remove the restriction of tref pointing to only an SVG document fragment heycam: I did that the other day [$1\47] Support the feature of SMIL time containers RESOLUTION: Defer " [$1\47] Support the feature of SMIL time containers " to Web Animations. [$1\47] Support animation triggers based on keyboard input, pending a proposal on security issues RESOLUTION: Defer " [$1\47] Support animation triggers based on keyboard input, pending a proposal on security issues " to Web Animations. [$1\47] Support a means for having SMIL animations start before their time container has fully loaded birtles: that's in Web Animations too Cyril: I think that's already integrated into the spec [$1\47] have <discard> element to declaratively discard elements from the document tree <scribe> ACTION: Brian to add IDL for discard element. [recorded in [29]http://www.w3.org/2013/02/07-svg-minutes.html#action10] <trackbot> Created ACTION-3465 - Add IDL for discard element. [on Brian Birtles - due 2013-02-15]. [$1\47] Support the playbackOrder attribute to inform UA to not display controls to seek backwards Cyril: it's already in there too Brian had a comment on it birtles: what's this one? Cyril: this tells you there are no forward references birtles: I don't like it Cyril: if noone implements it we'll remove it [$1\47] Allow masks to use either alpha or luminance or both birtles: I've done that in CSS Masking anyway [$1\47] Support <canvas> element in SVG 2 birtles: that's part of Takagi-san's action [$1\47] Relax restriction on masks pointing to mask element only birtles: I thought we fixed that ed: if you point to a <circle> directly from the mask property krit: yes this is fixed <scribe> [NEW] Control the order of painting and filling and markers heycam: that one is done -- 15 minute break -- Summary of Action Items [NEW] ACTION: Brian to add IDL for discard element. [recorded in [30]http://www.w3.org/2013/02/07-svg-minutes.html#action10] [NEW] ACTION: Cameron to add relaxed document error handling to SVG 2. [recorded in [31]http://www.w3.org/2013/02/07-svg-minutes.html#action09] [NEW] ACTION: Cameron to investigate HTML global attributes. [recorded in [32]http://www.w3.org/2013/02/07-svg-minutes.html#action02] [NEW] ACTION: Cyril to do the "Add the features of the SVG Tiny 1.2 animation element but not the element itself" SVG 2 requirement. [recorded in [33]http://www.w3.org/2013/02/07-svg-minutes.html#action05] [NEW] ACTION: Cyril to look into whether Progress Events should fire on <image>. [recorded in [34]http://www.w3.org/2013/02/07-svg-minutes.html#action06] [NEW] ACTION: Dirk to work together with Cameron on a representation of the decomposed values of a matrix [recorded in [35]http://www.w3.org/2013/02/07-svg-minutes.html#action01] [NEW] ACTION: Erik to do the "Adopt improved SVG Tiny 1.2 text on hit testing and event processing" SVG 2 requirement. [recorded in [36]http://www.w3.org/2013/02/07-svg-minutes.html#action07] [NEW] ACTION: Erik to do the "Clarify that svgz should be as usable everywhere svg files can" SVG 2 requirement. [recorded in [37]http://www.w3.org/2013/02/07-svg-minutes.html#action03] [NEW] ACTION: Erik to do the 104, 105, 106, 107 SVG 2 requirements. [recorded in [38]http://www.w3.org/2013/02/07-svg-minutes.html#action08] [NEW] ACTION: Shane to investigate easier path animations. [recorded in [39]http://www.w3.org/2013/02/07-svg-minutes.html#action04] [End of minutes] __________________________________________________________
Received on Friday, 8 February 2013 05:49:59 UTC