Download
News
Shaders and Framebuffers
Well, HLSL is no longer supported. At least, writing your own custom HLSL shaders isn't supported. The reason is it is too difficult to create an API that can be supported by OpenGL as well as Direct3D, especially considering the miserable support for OpenGL 3 outside of nVidia and ATI on Windows and Linux. Instead, shader support has been redesigned to use built-in shaders, which may or may not be implemented with fixed functionality. This allows for OpenGL and Direct3D to have the same level of support in AgateLib, and also cleans up considerably AgateLib internals.
HLSL support and goodbye to MDX.
I have merged the branch where development on AgateSDX was occuring, which eliminates the dependency on the deprecated and annoying Managed DirectX 1.1 library. Now DirectX support is obtained through SlimDX, which is actively supported by the community. Also, this merge brings support for vertex buffers and shaders, so it's possible to do 3D drawing with AgateLib. Shaders also work with the 2D drawing capabilities with AgateLib, so you can use them to create interesting effects for your existing 2D projects.
Project management / issue tracking added to agatelib.org
I have installed Drupal 6's project module. It's a development snapshot, and still not quite ready for public consumption, so it is a little rough around the edges in places. It should be sufficient for issue tracking and feature requests, however. I have created three projects:
- AgateLib - The AgateLib.dll library and its drivers
- AgateLib.org Website - The agatelib.org website
- Ball: Buster.NET - Ball: Buster
To submit issues to any of these projects, go to the project page, and the issues block will appear on the left side. Search for issues to check and make sure your issue isn't a duplicate, and then there will be a link to create a new issue if you don't find a duplicate. You can also do this by clicking the "create content" content link in the navigation block, and then choose "issue."
New Text Layout Engine
I have merged into the trunk the fonts branch where I was developing a new text layout engine. This provides an overload to FontSurface.DrawText which takes arguments like (string formatString, params object[] args), in a manner similar to string.Format, Console.WriteLine, or Debug.Print. This adds some special AgateLib specific features like being able to do:
- Surface swordIcon;
- FontSurface font;
- font.DrawText(0,0,"You found {0}Excalibur!", swordIcon);
AgateLib 0.3.1
This version removed features deprecated in 0.3.0, and adds a ZipFileProvider class. Online documentation is available here.
New Theme
I've created a new theme for the website. There are a few issues in a few browsers but it all seems to work rather well in FireFox, Safari and Chrome. Drop down menus don't work at all in Internet Explorer (big surprise), and the highlighting of dropdown menus in Opera doesn't work right. If anyone has any suggestions on how to fix that, they are welcome. Also any other comments, positive or negative, are welcome.
AgateLib 0.3.0
The latest release of AgateLib is available on SourceForge. Get it here.
Preview of AgateLib 0.3.0
Ok, I have uploaded an SVN snapshot of the next version of AgateLib here. The API is at the point where it is mostly stable, but there is still bug testing that needs to be done and there may still be some API changes. These things will go faster and be more complete if others can help out with the testing.
Edit: 0.3.0 has been released, so the preview download has been removed.
Documentation: http://www.agatelib.org/docs/docs-0.3.0/index.html
Archive File Support
I have refactored file opening in AgateLib. Surface, Sounds, etc. can be loaded from Streams now. This has been in there for a while, but now there is a class AgateLib.AgateFileProvider which is used internally to open Streams when creating objects and passing a filename. For example, the Surface(string) constructor looks in AgateFileProvider.Images to open image files. The reason for this approach is that AgateFileProvider.Images is a list of IFileProvider objects.
AgateLib GUI
I have committed code for the next version of AgateLib's GUI. It compiles right now but it doesn't run because I don't have royalty free graphics for the controls to upload. If anyone can find or wants to contribute designs for GUI widgets that can be redistributed/reused freely in binary format without requiring anything from individuals using AgateLib (including credit). I'm happy to give credit in the AgateLib distribution but I do not want to require it of AgateLib users.