mirror of
https://github.com/darlinghq/darling-coregraphics.git
synced 2024-11-23 12:19:49 +00:00
Opal: update TODO and README
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/opal/trunk@31143 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
1648bb9a2f
commit
4c4c7c17b4
4
README
4
README
@ -16,8 +16,8 @@ in the quartz group of minerals.
|
||||
There is a homepage (which may not be updated too frequently) at
|
||||
<http://goliat.eik.bme.hu/~balaton/gnustep/opal>
|
||||
|
||||
The sources are available from the Étoile project repository at
|
||||
<http://gna.org/projects/etoile/>
|
||||
The sources are available from the GNUstep repository at
|
||||
<svn://svn.gna.org/svn/gnustep/libs/opal/trunk>
|
||||
|
||||
*** Warning! *** This version is not yet suitable for general use.
|
||||
It may be interesting for developers only, contributions are much welcome!
|
||||
|
67
TODO
67
TODO
@ -1,18 +1,63 @@
|
||||
There's a lot to do, really.
|
||||
TODO:
|
||||
=====
|
||||
|
||||
- Add proper build system
|
||||
- Port to other platforms (Windows anyone?)
|
||||
- Try different Cairo surfaces (ps, pdf, png, OpenGL, etc.)
|
||||
CGContext:
|
||||
- Have a CGColorSpaceRef attached to the context (currently assumed to be
|
||||
sRGB). This will enable things like:
|
||||
- Creating a CGBitmapContext in a given color space, then drawing in it
|
||||
to convert colors to that color space
|
||||
- For people with wide-gamut monitors, we would want to set the appropriate
|
||||
color space on the window CGContext.
|
||||
- Shadow support is not finished.
|
||||
- Image masks are not supported.
|
||||
- Need to write a OPGState class that encapsulates the graphics state,
|
||||
like CairoGState in -back.
|
||||
- Could follow the example of GNUstep back, and factor
|
||||
out Cairo specific code in CGContext to a OPCairoContext subclass.
|
||||
|
||||
- Implement TextMatrix in CGContext (may need to use internal Cairo APIs)
|
||||
- Implement missing glyph drawing functions and finish ShowText
|
||||
- Implement Image drawing
|
||||
- Implement Patterns and Shading
|
||||
- Implement Path handling functions
|
||||
- Implement color management (could use lcms?)
|
||||
PostScript/PDF parsing classes are unimplemented.
|
||||
|
||||
- Fix device transform in Cairo and get rid of CTM patching hacks
|
||||
CGPattern and CGShading unimplemented
|
||||
|
||||
Image framework:
|
||||
- Need to add TIFF writing
|
||||
- The decoders/encoders could be polished:
|
||||
- They should read colorspace info, now that Opal can take advantage of it
|
||||
- They use the decoding libs to convert to RGBA32, but should pass though
|
||||
higher bit-depth images in to Opal and let Opal convert.
|
||||
- Could add a plugin which uses ImageMagick for more format support
|
||||
|
||||
Build system:
|
||||
- Set up so that image plugins, and LCMS classes are only compiled if the
|
||||
libraries are available.
|
||||
|
||||
CGFont:
|
||||
- Need to refactor to share implementation with OpalText
|
||||
|
||||
CGGradient:
|
||||
- Should clip the gradient to match Quartz output
|
||||
|
||||
Color space and image conversion:
|
||||
- Add a placeholder color space conversion class which does non-color managed
|
||||
conversions so that LCMS isn't a necessary dependency
|
||||
|
||||
OpalText:
|
||||
- Still in very early stages. Here is a sketch of what needs to be done:
|
||||
- Finish CTFont/CTFontDescriptor/CTFontCollection/CTFontManager with
|
||||
both Fontconfig/Freetype and Windows GDI backends.
|
||||
(The basics of CTFontDescriptor currently with Fontconfig)
|
||||
- Implement CTTypesetter, the core part, which requies:
|
||||
- Identifying permissible places to break a string with the Unicode
|
||||
linebreaking algorithm
|
||||
- Run GNU fribidi on the string if needed
|
||||
- Deciding what font to use for each range in the string, doing fallback
|
||||
where necessary
|
||||
- Itemizing the attributed string using
|
||||
-attributesAtIndex:longestEffectiveRange:inRange
|
||||
to get the character runs
|
||||
- Calling harfbuzz to do OpenType layout, yielding glyph runs and advances
|
||||
(+ other simpler layout routines for non-OpenType fonts?)
|
||||
- Finish CTFramesetter
|
||||
|
||||
Design principles to follow:
|
||||
============================
|
||||
|
Loading…
Reference in New Issue
Block a user