Sylvain BERTRAND wrote: > Unfortunately, the C toolkits over there are turning very bad: > GTK+ and the EFL do depend on harfbuzz for their font layout > computation which is an *really* ugly c++ object-oriented > brainfuckage (uglier that the glib SDK dependencies!). I did a C > port of harfbuzz (drop-in replacement), but for basic text layout > (roman style). Then to keep your GUI suckless, you should package > a version of a toolkit to allow trashing harfbuzz, or avoid crazy > SDK deps... This is unfortunately more work.
Hello, For a proof-of-concept, SDL (or X) is enough. The editor needs this functionality: - Draw shapes. - Change curves of existing shapes. - Change properties of existing shapes: stroke width, stroke color, and fill color - Load (paint[1] lets the user type 'rFILE' to load FILE) - Save (paint[1] lets the user type 'wFILE' to save FILE) - Nest/reference other files, like "symbols" in Adobe Flash. SVG and Asymptote both look very complicated... PostScript is a good output language but not a good source-file language. Maybe we need a new source-file format. See the attached proposal. How about a trio of programs like this? vectorrender - render a file and forbid circular dependencies. vectoredit - graphically edit a single file. fork()s to `vectorrender` vector2ps - convert a file to PostScript. [1]: http://man.cat-v.org/9front/1/paint
Start a new shape like this: $ stroke-width stroke fill For example... $ 1.0 0x000000ff 0xff0000ff Then give a list of curves in the form: x y x2 y2 x3 y3 ... where (x2, y2) and (x3, y3) are control points on the curve. To close the shape, use a period (.) on a line by itself. . So, a full shape description looks like this: $ 1 0x000000ff 0xff0000ff 0 0 0 0 0 0 100 0 100 0 100 0 100 100 100 100 100 100 0 100 0 100 0 100 . Import and transform another file like this: < filename sx rx tx ry sy ty Where sx, rx, tx, ry, sy, and ty are the first two rows in a linear transformation matrix. The file will be transformed by this matrix. sx rx tx ry sx ty 0 0 1 To import without transforming, just use these values: < filename 1 0 0 0 1 0