Tango Graphics Package
From my newsgroup announcement:
Dear D community
Tango is going visual! Headless visual! With
the addition of a general purpose 2D graphics package, Tango users will
be able to generate 2D images on the fly for use in a variety of
applications, on the server or the desktop. The package supports basic
2D primitives, complex shapes, fonts, alpha-blending, transformations,
paths, styles, and other common 2D graphics operations. The design is
inspired by several existing APIs, such as Java2D and OpenVG, so
anyone who has experience with other APIs should be able to get up and
running quickly.The API is designed to support third-party implementations for
cases when the default (software) implementation does not fit the bill.
These additional implementations are free to accelerate both the
buffering and the rendering, and an OpenGL wrapper will likely be
provided for those systems with OpenGL support. All implementations
will support headless systems.Contact:
http://www.dsource.org/projects/tango/wiki/Contact Signed,
The Tango Team
http://www.dsource.org/projects/tango/wiki/Contributors ----
Tango is a cohesive runtime and library for the D programming language. A feature list can be found on
http://www.dsource.org/projects/tango/wiki/Features
Gregor will be porting the package to the Abacus, so you Luddites out there will not be forgotten.
Technorati Tags: D Programming Language, Tango, graphics, 2D
FastCGI4D 0.9 Alpha
Matthias Walter has announced the first alpha release of FastCGI4D. It is built with Tango and has not yet been tested on Windows. He's looking for people to put it to use and give him some feedback. If you need to do any server-side programming with D, give it a spin and see what you think. He has a few examples online to get you started.
Technorati Tags: D Programming Language, FastCGI, FastCGI4D, server-side programming, web development, web applications
Derelict Fixes for DMD 1.018 Compatibility
I've just made a large commit to the Derelict trunk. DerelictGL/GLU/IL/ILU/ILUT should all be working fine now with DMD 1.018. However, the fix uses string mixins, so Derelict is no longer compatible with older versions of DMD. I believe the minimum version required now will be 1.005.
If you are using one of the affected packages, you should update. Please post any problems you have in my announcement thread in the Derelict forums.
Technorati Tags: D Programming Language, Derelict
Ooops! That’s Not a Feature!
In a recent post, I described a problem with DMD 1.018 and Derelict. I assumed it was a bug with the new compiler. As it turns out, the old behavior was a bug and the compiler is now working as intended. It's not a big deal for me, as the workaround isn't too painful. I'll be able to get Derelict patched up in due course and users of the library will be able to use Derelict with 1.018 and all future versions of DMD. Though, the fix I'm considering makes use of string mixins, so it won't work with pre-CTFE versions of DMD. Though I might use template mixins instead. We'll see.
Unfortunately, this issue goes beyond Derelict. There are several OpenGL bindings out there that are affected by this. If you are using one of them and have not yet upgraded your compiler, you will be in for a bit of a shock when you do. Here's a list of the bindings I know of that use the same, no-longer-legal technique:
Bindings - both the gl and glu modules are affected
D-porting - both opengl.d and openglu.d, found in the opengl.zip file, are affected
GLFW - three modules (in support/d/imports in the directory tree) are affected: gl.d, glu.d and glfw.d
If you are using any of the above modules, you will have to update them (or ask a maintainer to) to use them with DMD 1.018 and later. The old OpenGL binding at DedicateD is not affected, as it is not cross-platform (and is actually quite outdated by now, anyway).
There may be other D modules out there, bindings to libraries other than OpenGL or perhaps OpenGL bindings I'm unaware of, that are affected. If you find yourself using one of them, the offending code looks like, or similar to, this:
version(Windows)
{
extern(Windows):
}
else
{
extern(C):
}
// function, or function pointer, declarations follow here
Walter outlines some alternative solutions in a newsgroup post. Choose an option that works for you and roll with it.
Technorati Tags: D Programming Language, DMD, Digital Mars, Derelict, OpenGL bindings