summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2008-01-08Bump version to 0.0.3HEADv0.0.3masterBenjamin Herrenschmidt1-1/+1
Signed-off-by: Benjamin Herrenschmidt <benh@pasglop.(none)>
2007-08-27Fix up/down inversion of key eventsJeremy Kerr1-1/+1
We're currently getting TwinEventKeyDowns for key ups, and vice versa. This change fixes the problem. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-08-23twin: add Linux joystick supportJeremy Kerr5-0/+204
Add a simple event layer for joystick devices. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-09Remove dependency on libmBenjamin Herrenschmidt1-1/+1
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-09Avoid use of sqrt for mouse accel.David Woodhouse2-20/+23
Convert twin_linux_mouse_accel() to twin_fixed_t arithmetic to avoid dependency on libm. Depends on separate patch which actually fixes twin_fixed_sqrt() Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-09Fix overflow in twin_fixed_sqrt()David Woodhouse1-0/+4
Twin_fixed_sqrt() suffers from overflow. Fix it. Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-06Fix twin non-HAVE_ALTIVEC build.David Woodhouse1-1/+1
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-05Bump libtwin revisionv0.0.2Benjamin Herrenschmidt1-1/+1
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-05Add gzip support for cursorsJeremy Kerr2-10/+50
The cursors used by twin compress well, so allow twin_cursor to load a compressed cursor file when zlib is present. In both cases, uncomressed cursors still work. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-03twin_jpeg: add a query function to get image details from fileBenjamin Herrenschmidt2-0/+66
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-03twin_jpeg: don't enable DEBUG by defaultBenjamin Herrenschmidt1-2/+1
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-03png.h inclusion cleanupBenjamin Herrenschmidt2-2/+1
No need to have it in the user header Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-04-03Add simple jpeg loader based on libjpegBenjamin Herrenschmidt4-1/+223
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-03-30Fix make distv0.0.1Jeremy Kerr1-2/+2
twin_def.h wasn't defined in Makefile.am's sources list correctly, so make dist fails. This change fixes the problem, referring to twin_def.h in its proper location. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-03-30Fix glyph width for ttfBenjamin Herrenschmidt1-5/+9
As usual with glyph metrics, I only half understand what's going on there :-) From trial and error, it looks like the margin thing we apply for stroke font is no good for ttf, at least not using a margin does make things much nicer for me using ttf fonts Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-03-30Fix twin_ttf to generate useable #include directiveBenjamin Herrenschmidt1-1/+1
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-01-22Premultiply alpha channel on PNG imagesJeremy Kerr3-0/+29
libtwin expects pixmaps to be premultiplied with their alpha channel, but loaded PNGs aren't. This change adds a generic function to do alpha premulitplication, and uses it on pixmaps loaded from PNG. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2007-01-12Add missing twin_feature.cBenjamin Herrenschmidt2-0/+193
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-07Add some basic altivec supportBenjamin Herrenschmidt9-13/+254
This adds altivec versions of argb32_over_argb32 and argb32_source_argb32 operations and a bit of altivec optimisation to the fbdev put span code as well. It could probably be further optimized, and with some patience, one could implement the full set of primitives for altivec instead of just those two, but that's at least a beginning. I haven't properly measured the difference in performances yet. It is definitely faster on my powerbook though. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-07Add build system support for altivecJeremy Kerr2-1/+33
This change to the libtwin build system detects altivec support, and sets cflags and a #define HAVE_ALTIVEC if found. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-05libtwin includes are in $(includedir)/libtwinJeremy Kerr41-50/+55
This change modifies the twin sources to expect twin libraries in the libtwin/ directory. Consequently, we need to move the headers (and sources to keep things clean) into the libtwin/ directory in the source tree. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-04Remove -fno-strict-aliasing and fix aliasing issueBenjamin Herrenschmidt2-14/+13
Remove -fno-struict-aliasing as I think the code is generally safe due to the proper use of unions when an object can have multiple different types. twin_timeout.c did have some dodgy casts that I removed. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-04Stop widgets update flicker with immediate refreshBenjamin Herrenschmidt1-1/+5
This patch disables refresh around widget refresh operations (from the toplevel object) so that individual widgets get refreshed at once and thus don't flicker. This fixes the flicker with the demos Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-04Add support for immediate damage refresh to fbdevBenjamin Herrenschmidt3-3/+42
This makes the fbdev backend refresh damaged areas directly from the screen->damaged callback instead of delayed to a "work". The work is still there to handle console switches. In order to avoid flicker and artifacts, we also disable refresh around cursor updates and window content. The demos flicker a lot in this mode, so they'll have to be fixed to disable / enable refresh around some operations too (probably in the widget code), but the overall performances are better for my application as mouse cursor no longer triggers giant updates when moving while something else is updating Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-03Fix cursor image handling bugsBenjamin Herrenschmidt1-7/+6
First, don't destroy the previous cursor when relacing it as it's common for applications to store a bunch of cursor images and flipping them in, they don't want to have to re-create them each time. Then, there was a NULL-deref when setting the cursor to NULL to remove it Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-03Space some definitions in twin.hBenjamin Herrenschmidt1-0/+8
Gives me some air to breath Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-03Temporary key events with fbdevBenjamin Herrenschmidt1-4/+15
This is temporary as I need to implement a proper keyboard handling, probably via the event device, and an input method mecanism for translating unhandled raw key down events into ucs4. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-03Add a screen hook that allows to install a toplevel event filter,Benjamin Herrenschmidt2-54/+65
can be used to handle global application events, like console switch related events (once I take the primitive keyboard stuff out of twin_fbdev) Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-03Add some damage handling to windows, to be typically used by windowsBenjamin Herrenschmidt2-4/+89
who have a drawproc installed. I intend to use that for some apps that directly paint in windows rather than using the widgets mecanism Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-03Rework clip handling. The clip rectangle and the origin of drawingBenjamin Herrenschmidt6-29/+138
are now two different things, so that you can clip drawing within changing your coordinate system. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-01Fix crash in twin_composite if msk == NULLBenjamin Herrenschmidt1-2/+2
Oops, introduced by the transform changes, I wasn't testing msk for NULL before dereferencing it in one spot. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-01Install libtwin.pcJeremy Kerr3-4/+7
The existing twin.pc file was generated, but not installed. This change installs it (as libtwin.pc), and uses the more flexible TWIN_DEP variables. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-01Add png support to libtwin buildJeremy Kerr2-2/+22
This change adds twin_png to the default build of libtwin. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-01Allow features to be disabledJeremy Kerr1-5/+31
This change adds --disable options to prevent building the x11, fbdev, linux-mouse and ttf components, even if they're found by pkgconfig. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-01Only create one libtwin libraryJeremy Kerr2-28/+24
Looks like the idea of splitting up the twin libraries into componenets (eg, libtwin-x11.so for x11-specific stuff) wasn't working too well. Instead, we should stick to the one shared library, whose contents change depending on the available dependencies. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-01Move twin demo binaries to twin_demos/Jeremy Kerr4-13/+23
This change moved the twin demo binaries to the twin_demos subdirectory. Also, don't include these demos in the install - they can be run from the build directory instead. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-12-01Recursive make considered harmfulJeremy Kerr4-34/+28
Change the Makefile.am to not use recursive make - this will allow future dependencies on the twin library without too much automake pain. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-29Install libtwin headersJeremy Kerr1-5/+7
This patch installs the libtwin headers in $prefix/include/libtwin/ during make install Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-29Library version info cleanupJeremy Kerr1-2/+4
Small cleanup of libtool version arguments - only specify -version-info when building libraries. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-29Add mouse enter/leave events for pixmaps/windows.Benjamin Herrenschmidt2-32/+82
The current "target" is the one under the mouse and also receives mouse movements and button down events. However, once the button has been pressed in a window, all subsequent mouse events will be sent to that window (and no mouse leave will be generated) until the button has been released. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-29Move demo applications to twin_demos subdirectoryJeremy Kerr17-22/+24
This change moves the twin demo applications to a new subdirectory (twin_demos), and updates the auto{conf,make} setup to suit. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-29Compile twin as separate libraries.Jeremy Kerr3-59/+74
This change separates twin into a set of libraries (libtwin, libtwin-x11, libtwin-fbdev and libtwin-mouse). Also, generally improve the autoconf magic to make this all work. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-28Fix copy/paste bogon on 16 bits tranformBenjamin Herrenschmidt benh@kernel.crashing.org1-2/+2
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-28Add some basic affine transform support to compositing.Benjamin Herrenschmidt benh@kernel.crashing.org5-41/+369
The transform matrix is currently stored in the pixmap, though it is only ever used when that pixmap is a source of a composite operation (not for windows refresh, damage, etc...) thus I might move it to twin_operand_t. The implementation is totally sub-optimal but it gives a working basis. As Keith suggested, we could use a bresenham-type algorithm in the transform loop to avoiding having to transform every pixel through the matrix. That will probably significantly improve performances. There are also minor optimisations that can be done in a few corners. Also the matrix is used as a reverse transform, which can be confusing. I'll fix it one of these days to operate on an inverted matrix instead. While playing with it, I noticed several issues with the existing non-transform composite function. A bug I fixed related to masks, but also the source clipping seems to be busted. It adds the clip top/left to the src_x/y & msk_x/y which doesn't make much sense to me and doesn't clip when fetching pixels, thus forcing you to have perfectly adjusted width and height args to twin_composite() that match the source image size (which stops making sense when using transforms). I haven't fixed it yet but I will do so, possibly by merging xform and simple into one function (thus always using a temporary span buffer) or by adding a bit of clipping code to the simple function's inner loop. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-28Fix timeout handling with more than one timeoutBenjamin Herrenschmidt benh@kernel.crashing.org3-3/+24
The code would do a delete/insert pass while walking the queue which had the effect of breaking the "order" linkage (insert re-initializes pretty much everything). I fixed that by adding a new _twin_queue_reorder() which is to be called on an element that is to be re-ordered and which works at any time, even during a queue walking and using it from the timeout code. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-27Add a basic .png loader using libpngBenjamin Herrenschmidt benh@kernel.crashing.org2-0/+214
If you use that, you also need to link on libpng. Only quickly tested for now, there are some weird things with libpng that I might not have gotten right, some comments are welcome. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2006-11-26Add back support for pre-converted ttf fonts. The metrics generated byBenjamin Herrenschmidt9-209/+343
the converter might still be a bit dodgy, I'd appreciate somebody who knows that stuff better to have a look :-) Basically, I added back the type '2' operation to the glyph data parser that was used by the previous ttf parser before it got removed and fixed it up to work in the new context. I pondered using the 'c' "generic" curve operation instead and put the burden of conversion in the converter application, but that would have caused bigger converted font files, so I chose to keep the old op. Various bits & pieces of the font code are modified to cope with the non-stroke fonts (mostly there is no "pen" to account for and we don't convolve but just append the glyph path to the current path). Full support for unicode pages is back. The stroke font has only page 0 for now (the initial code seemed to have more tables I didn't feel like re-converting that so if you want stroke font with more unicode pages, it's up to you to dig the old format and convert it to detect snaps and use curves). We may want to add arguments to twin_ttf converter to only convert a subset of the pages in a font for compactness. Examples still use the built-in font but it's easy enough to change the g_twin_font global and link a generated font file in (tested with Vera.ttf). I still need to add a better way to deal with multiple fonts at once.
2006-11-25Merge branch 'master' of ssh://git.freedesktop.org/git/twinKeith Packard10-32/+1347
2006-11-25Change license on Carl's filesKeith Packard2-37/+30
2006-11-25Remove duplicate twin_cursor.cBenjamin Herrenschmidt1-2/+1