As the title says, I've finally merged my Summer of Code project - icon and pixmap cache - into kdelibs.
Buildsystem changes are not done yet, I'll do them in the next days. Until then, you might see old icons after new ones are installed. If you really need the new ones, do touch -m $KDEDIR/share/icons/hicolor/. Then the cache will notice the new icons.
The pixmap cache is meant to make disk caching of e.g. pixmaps rendered from SVGs very easy for app developers. It's API is similar to that of the QPixmapCache and I'm planning to create a TechBase tutorial soon to make it's adoption even easier.
Friday, July 20, 2007
Wednesday, July 18, 2007
My first plasmoid
Now that Zack has made it possible to create 3D plasmoids I had to try writing one myself, too.It renders a virtual Earth model on your desktop, with subtle rotate animation and a day/night cycle, using NASA's Blue Marble imagery. And it has a rather crappy atmosphere as well.
It requires a shader-capable videocard to work, so minimum requirements are GeForce FX or Radeon 9500 although you'll
want to use a bit better card than those for any smoothness.It doesn't have any useful functionality, but if you just want to waste your processing power, then it does a pretty good job ;-)
The code can be found in KDE's SVN in playground/base/plasma/applets/bluemarble/.
Wednesday, July 11, 2007
aKademy impressions
I'm one of the many KDE people who spent the last week in Glasgow, at aKademy 2007. It was a really great event and the first chance for me to meet many KDE people in real life.
The arrival went quite smoothly. I arrived late Sunday, a day after the incident at the Glasgow International. Luckily there weren't any problems there, although one could see higher security measures such as concrete blocks before the main entrance and a group of police with SMGs.
The problems started once I reached my hostel. I was supposed to be in a room with three other SoC students. But as it turned out, there were four others instead of three so my bed was already taken. After some searching they put me in another room. In the morning I was told I'd stay in that room until my departure, but to my surprise all my things had been removed when I went back in the evening. After talking to the staff again, they gave me yet another room. And after staying in two different rooms for two nights, they finally told me I should go and talk to the organizing team as they really don't have a place for me. So I went and talked to Kenny Duffus who put me into the university accommodation which was much more convenient and more importantly absolutely problem free. Big thank you to Kenny Duffus and the rest of the aKademy team for sorting that out (not to mention organizing this great event) :-)
Other than the hostel issue, everything was great. I met many KDE people, including my mentors Seli and aseigo whom I brought some chocolate for their good work (and almost made aseigo cry in the process ;-)). We also had a nice barbeque out of the city on Thursday although the end of it was somewhat ruined by the rain (yeah, it rained quite a bit in Scotland).
Tons of work also got done. There was a heap of additions to KWin which probably deserve their own blog post. Also, there were some very important additions to my icon cache. It got split into two classes: KIconCache, which is the KDE-wide icon cache, and KPixmapCache which provides application-specific cache functionality. This way e.g. applications that use SVGs so that they can cache the generated pixmaps without having to regenerate them every startup. The code is available from KDE SVN, under /branches/soc-iconcache/. It contains kdeui replacement (which I'm trying to keep mostly up-to-date with the trunk), a demo app showing how to use the app-specific caches as well as an old visualization app which was meant to list all entires in the icon cache but doesn't work anymore due to file format changes and me being too lazy to update it...
I've still got some hope to get this into 4.0 as there certainly would be apps in kdeedu and kdegames that would make use of it. And probably Plasma as well. We should know for sure in a week or two.
The arrival went quite smoothly. I arrived late Sunday, a day after the incident at the Glasgow International. Luckily there weren't any problems there, although one could see higher security measures such as concrete blocks before the main entrance and a group of police with SMGs.
The problems started once I reached my hostel. I was supposed to be in a room with three other SoC students. But as it turned out, there were four others instead of three so my bed was already taken. After some searching they put me in another room. In the morning I was told I'd stay in that room until my departure, but to my surprise all my things had been removed when I went back in the evening. After talking to the staff again, they gave me yet another room. And after staying in two different rooms for two nights, they finally told me I should go and talk to the organizing team as they really don't have a place for me. So I went and talked to Kenny Duffus who put me into the university accommodation which was much more convenient and more importantly absolutely problem free. Big thank you to Kenny Duffus and the rest of the aKademy team for sorting that out (not to mention organizing this great event) :-)
Other than the hostel issue, everything was great. I met many KDE people, including my mentors Seli and aseigo whom I brought some chocolate for their good work (and almost made aseigo cry in the process ;-)). We also had a nice barbeque out of the city on Thursday although the end of it was somewhat ruined by the rain (yeah, it rained quite a bit in Scotland).
Tons of work also got done. There was a heap of additions to KWin which probably deserve their own blog post. Also, there were some very important additions to my icon cache. It got split into two classes: KIconCache, which is the KDE-wide icon cache, and KPixmapCache which provides application-specific cache functionality. This way e.g. applications that use SVGs so that they can cache the generated pixmaps without having to regenerate them every startup. The code is available from KDE SVN, under /branches/soc-iconcache/. It contains kdeui replacement (which I'm trying to keep mostly up-to-date with the trunk), a demo app showing how to use the app-specific caches as well as an old visualization app which was meant to list all entires in the icon cache but doesn't work anymore due to file format changes and me being too lazy to update it...
I've still got some hope to get this into 4.0 as there certainly would be apps in kdeedu and kdegames that would make use of it. And probably Plasma as well. We should know for sure in a week or two.
Friday, June 15, 2007
KWin performance and shadows
After publishing my last KWin video, the biggest critique was that KWin is slow. Most of that could be attributed to the video recording which naturally makes things slower, but e.g. Beryl still felt smoother than KWin. I decided to investigate it and one thing I found out was that TFP (texture from pixmap) mode was actually slower than SHM (shared memory) mode. A lot slower even, especially when just part of a window changed. I still haven't figured out why exactly it happens (I'm using NVidia drivers, don't know if that's related) or if it's same with Compiz/Beryl, but if you want to switch to SHM mode, this command does that:
kwriteconfig --file kwinrc --group Translucency --key GLMode SHM
After executing that you can restart kwin by executing kwin --replace
Additionally, turning off vsync might also make it feel a bit better, but be warned that you might experience some tearing in this case:
kwriteconfig --file kwinrc --group Translucency --key GLVSync false
About KWin development, it has gotten some compositing fixes & improvements lately, and I have a new eyecandy screenshot to show as well. I implemented soft shadows for windows. They still suck a bit (especially at the corners), but less than before and it should be possible to improve the corners with some more work as well.
kwriteconfig --file kwinrc --group Translucency --key GLMode SHM
After executing that you can restart kwin by executing kwin --replace
Additionally, turning off vsync might also make it feel a bit better, but be warned that you might experience some tearing in this case:
kwriteconfig --file kwinrc --group Translucency --key GLVSync false
About KWin development, it has gotten some compositing fixes & improvements lately, and I have a new eyecandy screenshot to show as well. I implemented soft shadows for windows. They still suck a bit (especially at the corners), but less than before and it should be possible to improve the corners with some more work as well.
Tuesday, May 29, 2007
KWin effects config & another video
During the last days I've been working on making KWin's effects configurable from a KConfig module. Until now, if you wanted to enable/disable an effect, your only possibility was using DBus. DBus support is still there of course, but now you can alternatively use KPluginSelector widget (which got a nice makeover thanks to Rafael Fernandez Lopez aka ereslibre) which shows up among other KWin config modules when you RMB on window title and choose "Configure Window Behaviour".
Internally, KWin effects are now services, so we use ksycoca to get a list of them as well as find out in which library a given effect is. This made the code tiny bit simpler and might also result in some performance improvement.
Additionally, effects can now have their own config modules as well, so you can fine-tune them to your personal preference. ATM only two effects (shadow and presentwindows) are configurable, but more will certainly follow.
I wanted to make a video of config possibilites, but it evolved into a much longer video which briefly shows you how to enable compositing and how to choose and configure effects. It also shows some of the (IMHO) more important effects. The 6-minute video can be found at YouTube.
Update: there's also 16mb .avi with slightly better quality, but it's server could be slower than YouTube.
Finally, it looks like I've been added to Planet KDE :-)
If you're interested in more KWin stuff, you might want to check out my previous post as well.
Internally, KWin effects are now services, so we use ksycoca to get a list of them as well as find out in which library a given effect is. This made the code tiny bit simpler and might also result in some performance improvement.
Additionally, effects can now have their own config modules as well, so you can fine-tune them to your personal preference. ATM only two effects (shadow and presentwindows) are configurable, but more will certainly follow.
I wanted to make a video of config possibilites, but it evolved into a much longer video which briefly shows you how to enable compositing and how to choose and configure effects. It also shows some of the (IMHO) more important effects. The 6-minute video can be found at YouTube.
Update: there's also 16mb .avi with slightly better quality, but it's server could be slower than YouTube.
Finally, it looks like I've been added to Planet KDE :-)
If you're interested in more KWin stuff, you might want to check out my previous post as well.
Thursday, May 3, 2007
KWin videos, blur effect
Almost a week ago I added blur effect to KWin. It's purpose is to blur background of translucent windows to make text in such windows more readable. With standard translucency, if there's a window containing text below a translucent window, then the text in the translucent window is hardly readable. The effect blurs out fine details such as text, resulting in much better and usable transparency. While the background windows are blurred, they're still visible enough to see movement or changes, making transparency useful for e.g. monitoring activity of Konsole windows.
I've made two videos as well. First one (YouTube link, direct link) shows just a silly demo effect that applies some waves to your desktop. It's not physical simulation of liquid, though that would now be possible as well in case anyone's interested ;-)
The second one (YouTube, direct) shows the blur effect itself. Also note that in conjunction with the fade effect, which makes windows smoothly fade in/out when they're created/destroyed, it blurs out background of new windows when they fade in. It's subtle, but you can see it with menus in the video.
Update: added YouTube links for both videos.
I've made two videos as well. First one (YouTube link, direct link) shows just a silly demo effect that applies some waves to your desktop. It's not physical simulation of liquid, though that would now be possible as well in case anyone's interested ;-)
The second one (YouTube, direct) shows the blur effect itself. Also note that in conjunction with the fade effect, which makes windows smoothly fade in/out when they're created/destroyed, it blurs out background of new windows when they fade in. It's subtle, but you can see it with menus in the video.
Update: added YouTube links for both videos.
Introduction
Hello everyone.
Short introduction: I'm an Estonian student, soon finishing my first year in university. I've been involved in open-source development for several years, working on the Boson game in the past though unfortunately it's development has halted for now.
Since the beginning of this year I've been involved in KWin development, creating various compositing effects as well as separating effects interface into a library to support 3rd-party effects. Stay tuned for more KWin-related stuff soon.
Last but not least, I was accepted into Google's Summer of Code program and will be working on an icon cache, mentored by aseigo. The purpose of it is to make application startup faster by putting icons into cache which eliminates the need to search for them on the disk (there are many directories where the icons might be and searching through them takes time). Also it will act as SVG cache so that SVG icons can be used without having to convert them into raster format every time.
This blog will contain news about KWin, my GSoC project and anything else KDE-related that I might be working on in the future.
Short introduction: I'm an Estonian student, soon finishing my first year in university. I've been involved in open-source development for several years, working on the Boson game in the past though unfortunately it's development has halted for now.
Since the beginning of this year I've been involved in KWin development, creating various compositing effects as well as separating effects interface into a library to support 3rd-party effects. Stay tuned for more KWin-related stuff soon.
Last but not least, I was accepted into Google's Summer of Code program and will be working on an icon cache, mentored by aseigo. The purpose of it is to make application startup faster by putting icons into cache which eliminates the need to search for them on the disk (there are many directories where the icons might be and searching through them takes time). Also it will act as SVG cache so that SVG icons can be used without having to convert them into raster format every time.
This blog will contain news about KWin, my GSoC project and anything else KDE-related that I might be working on in the future.
Subscribe to:
Posts (Atom)