Tasks for libvob 0.1alpha1: First public release tjl: - the great buoy redesign - buoy comes too early through the new main frame when animateing. Eli poiju napsahtaa liian aikaisin esiin, tätä on tietysti vaikea korjata, koska kyse on lineaarisesta interpolaatiosta? - rename the classes of buoy view - figure out how to combine buoys with the same view! jvk: - fixes to demokeys - log slider - slider min/max - ... 0.1alpha2: Vital fixes for packages depending on this tjl: - revamp and document the data structures used in renderables.py - make extensible: easy to define new coordsys types and new renderables externally 0.1alpha3: Pending fixes tjl: - docxx Vec23, - 4-dimensional homogeneous type? - useful for projective coordinate transformations where texturing goes awry unless w is used - buoy circle -> ellipse - mipzip maker running instrs - change memorypartitioner focus scale: 0..1 is not good, should be 0..2, where 0..1 as now, 1..2 = things that are so close to focus that they should be loaded at highest res. if possible, if not, prioritize them. - the great buoy redesign - multiple instances of same cell visible as a buoy --> keys? - special matcher? or pp/VobKeyer? - really USE hierarchical keys - proper UpdateManager -- gfxapi interface PEG + CoordSys::DistordCoords::canPerformGL() returns false. Define action (=complain in stderr?) when trying to use distorted coordsys with vobs calling directly CallGL. + PEG getCS hierarchy from either coordsys or matcher - javadoc gzz.vob.Vob* interfaces TOTALLY, including semantics of coordinate systems! mudyc: - redesign liblines API to be more generic - Extension disabling altough gfx provides them. "OpenGL 1.1 emulator". - propagate expose events correctly - when a gl window is closed, call Binder.windowClosed() humppake: - make test that catches tjl's quick fix to culling coordsys in article rush + better algorithm for CullingCoordSys. Uses now parallel bounding boxes. Fast, but not very efficient. + implement Paper TexGenEmboss::setUp_explicit anybody: + move Image class (imageraster &c) out from Os-GLX. Os-GLX should only contain methods to directly load images into given memory buffers in given formats. - make demo start screen size adjustable by environment vars - matrix inversion for point-to-point interpolating cs! - vobmatcher keymapping to work in both directions - better graphics for xupdf and pp - fillets without the original object - normal direction as data - dicing only when needed - fill with fading color - implement "needInterp" - shape transformation & dicing framework + soft shadows - use ATI fragment programs + fix the way nonlinearity of coordsys is handled. Needs a slightly better approach, with also direction of nonlinearity taken into account. If we can save a lot of dicing by thinking a little more, we probably should. Need to have alternative algorithms (fast/good) though, for different cases. + glvobcoorder.test : testCulling: don't use Paper, use a different-colored filled rectangle and test clearly for both colors (not "not" tests but test that the color really is right) - irregu: - borders for paperquads Perhaps should add "ZVec CoordSys::grad(const ZPt)" or directional derivative for determining the width of a nonlinearly scaled border - need to think about how to generalize... linestyle objects for npr scaling? paragraphs, as well as libpaper backgrounds - PEG the actual view - make GLVobCoorder's all coordsys types work like affineCoordsys and setAffineParams, so that we can set the params from outside easier. - Mosaic: don't store texture in memory; storing in only the OpenGL texture object will save memory and time. - Coords.hxx: methods to transform many points at a time to avoid virtual function call overhead - implement PEG 1021 for AWT - check OpenGL maximum texture size at run time, adjust mosaic and bg + make gldemo able to use fullscreen sync_to_vblank mode so that we could get the benefits of page flipping. How does this interact with e.g. twinview? Need to turn it off? + fix text quality on plain OpenGL: on NV10+ we get good results by multiplying the alpha obtained from the mipmaps by 2. However, this is not necessarily possible in general, definitely not when magnifying (textures clamped to 1.0). Maybe rerendering each mipmap level by freetype? + redesign mosaics to save memory and allow more internal formats + at the same time, mipmapping improvements + implement getCachedTexture in gzz/gfx/gl/GLCache.java (current implementation is in gfx/libpaper/texcache.py) - cleanup: remove x, y, z from HorizText: unnecessary now. same for other coord-like things in renderables. + coordsys interpolation: clicks to interpolated coordsys + fillet implementation handling all connections from a node simultaneously. + move *DebugVar* from GL into a new class, same on JNI side. (cleanup) + proper icons and names for the windows, both AWT and GL + implement PEG 1012 + implement PEG 1015 - porting: make sure all demos etc. work with plain mesa - implement Perlin's "improving noise" paper - animation: save images directly into target format from C++. Should cut down generation time a lot. + update irregu renderable - ? + irregu - better sawnoise texture: less intermediate freqs - puzzle view - soft shadows of irregus- ?!?!?! Need algorithm... - only very approximate needed jvk: + parseCombiner -> fragment program compiler