Affe update

Lately I’ve taken to hacking Affe quite a bit. Just a quick list of a few changes: Value types can now be the target of invocations. A value type will be automatically boxed when being cast to an interface that it implements. Any object type can now be unboxed. This fixes the case where a…

Late-bound invocation in Affe

I have finished removing Lua from Kaffeeklatsch and have enhanced Affe with the ability to bind field, property, and method calls at runtime. I noticed this gap when rewriting some of the key binding scripts; where I could just set a field before, my compiler threw an exception since it could not find the field…

Kaffeeklatsch teaser

I got Kaffeeklatsch back out of the toy box the other day and started integrating the Affe compiler into it. The goal is to remove Lua entirely, as it’s an unmanaged dependency and has been giving some odd errors as of late, crashing mono after a few seconds. The SuperScope effect has been completely converted…

Kaffeeklatsch in Subversion

I’ve finally put Kaffeeklatsch in a Subversion repository, and a public one at that! Simply check out from https://layla.chrishowie.com/svn/kaffeeklatsch and build… well the build process isn’t that simple, but oh well. You will need Tao, the Lua 5.0 library and development headers (check your distro’s packages), and Mono. Having MonoDevelop around will make the build…

Developer wanted

I’ve been making some small progress on Kaffeeklatsch, though most of it is behind the scenes stuff. For example, IEffect now extends IDisposable, and the frontend will dispose effects when removing them. This could be used, for example, in plugins that create OpenGL display lists and want to properly clean up after themselves when destroyed….

C#OpenGLua

It’s coming together slowly. Recently Kaffeeklatsch has been enhanced with Lua, which is used for key bindings and in several effects. For example, there is a “Custom” effect that simply runs a Lua script each frame. The script gets full access to OpenGL by default, but can access any loaded .NET classes. (This could be…

Ogres have layers!

And so does Kaffeeklatsch. Now, anyway. First, I added preset saving and loading a few days ago but never wrote about it. Since then I gave the design of this project some serious thought, and moved some classes around into strictly defined layers: Kaffeeklatsch Visualization Platform. The generic components of the platform: the effect interface,…

The next day

Just a day later and all Kaffeeklatsch needs now is key bindings, then we’re ready for “production,” whatever that is. This screenshot highlights the two biggest additions I coded today: the automatic generation of option pages for each effect (see the sources displayed!) and the gathering of scope data from XMMS. A small stub plugin…