From: John B. <jb...@ac...> - 2005-09-02 06:28:31
|
From: Greg Roelofs >Well, traditionally, that's where libraries come in--they're the middle >ground between platform and app. One of my hopefully-near-future mini- >projects will be to add lcms support to libpng, which would then be a >handy way to spread the love across lots of apps. That's a good thing in itself, but it has limited application. With libpng the caller has to chose an intermediate representation, and typical intermediate representations (e.g. sRGB) have a limited gamut, so the CMS smashes the colours to the intermediate form (say sRGB) then the OS rendering layer attempts to render to something with a different gamut (anything other than a CRT in the case of sRGB). Wide gamut intermediates avoid this, however the support for wide gamut intermediates (e.g. 16 bit RGB with the potential to store values >1.0 and <0.0) is even more limited than support for CMS in the OS rendering. So what I'm saying is that the middle layer doesn't help - the support must be in the rendering layer, either OS or window system (or both). >there's a monster mess >of 2D/3D/hardware/software/OpenGL/etc. trouble brewing in X land, but that's >not necessarily a cross-platform problem (yet, anyway). Inevitable because problem specific solutions were implemented in the absence of a good overall design. My theory was that SVG might provide a set of common capabilities which can then be bound into a single coherent functional interface. Since SVG and GDI+ are pretty much just a combination of PostScript style vector drawing (linear paths only - no paths where more than two lines join at a single point) and sampled image rendering a functional API can probably be readily translated from one to the other. Maybe it's a non-issue. Most applications seem to have a whole lot of GUI and very little content - very little rendered graphics outside the GUI elements. Consequently app developers are prepared to spend quite a lot of time and code on the content, even to the extent of reinventing stuff which could be shared in a library or the OS. (Think about the task of rendering even a simple diagram - say a simple Venn diagram - I would certainly be prepared to spend a lot of time looking for a library to do this and, if I couldn't find one, would consider generating, say, PostScript and displaying that.) John Bowler <jb...@ac...> |