March 21st, 2011
· Port to Xbox (thanks Michael J. Wood!).
· Widget code can now use the AG_Redraw() interfaces to trigger rendering. The generic event loop uses this information to avoid unnecessary video updates -- custom event loops should be modified to test for the window "dirty" flag to take advantage of this feature.
· Fixed compilation with --disable-legacy option.
· Implemented AG_SurfaceFromPNG() and AG_SurfaceFromJPEG().
· Fixed crash bug in AG_SurfaceFromSDL(); thanks trapdoor!
· Added AG_SetJPEGQuality(), to set quality used by AG_SurfaceExportJPEG().
· Merge --enable-foodebug into --enable-objdebug; remove lockdebug.
· Upgrade build system to BSDBuild 2.8. Note that stale ./agar-config/ and ./agar-foo-config/ directories may break the build and should be removed before ./configure is executed.
· Fix deadlock condition with the AG_Timeout(3) interface when timers are scheduled in reverse order; thanks to Jakob Reschke for the fix!
· Fixed UTF8 conversion bug with 3-byte sequences; thanks Jerry Huang!
· Fixed coordinates offset for popup menus under single-window drivers.
· Numerous improvements to the API reference. Added AG_DriverGLX(3), AG_DriverWGL(3), AG_DriverSDLFB(3), AG_DriverSDLGL(3), AG_DriverMw(3) and AG_DriverSw(3), AG_InitGraphics() manual pages.
· Fixed crash bug with AG_TEXTBOX_STATIC and AG_EDITABLE_STATIC.
· Added "STRUCTURE DATA" section to AG_Window(3).
· Added missing SDL_LockSurface() calls in sdlfb/sdlgl drivers.
· AG_InitGraphics() can now accept driver initialization arguments.
· Avoid use of gettimeofday() on cygwin platform.
· MATH: Fix type conversion warnings.
· Implemented AG_DirDlg(3) directory selection widget.
· Implemented AG_Anim(3) interface.
· WGL: Terminate application by exiting the event loop instead of using exit().
· In AG_Scrollbar(3), implement AG_SCROLLBAR_AUTOHIDE option.
· Fix compilation issues under MinGW / MSYS (thanks Joergen!)
· WGL: Post a "window-gainfocus" event when a window is focused for the first time on creation.
April 17th, 2010Added support for multiple "native" windows; rework of the low-level graphics and input device interfaces. As of this release, the available drivers are:
· o glx (OpenGL rendering via X Window System; multiple windows)
· o wgl (OpenGL rendering under Windows; multiple windows)
· o sdlfb (framebuffer rendering via SDL; internal WM)
· o sdlgl (GL rendering via SDL; internal WM).
· New drivers can also be implemented as part of an application, the driver API is documented in AG_Driver(3).
· Applications should now use AG_InitGraphics()to initialize the graphical interface. Backward compatibility is preserved, but AG_InitVideo()will only select among single-window graphics drivers.
· Agar can now be built without the SDL library, where the SDL graphics driver is not needed.
· Many improvements to the AG_Surface(3) interface, no longer rely on SDL.
· Implement generic AG_Keyboard and AG_Mouse interfaces; allow for multiple input devices.
· Implement widget "actions" as a generic method of handling mouse and keyboard actions per user preferences (see AG_Widget(WIDGET_ACTIONS) ).
· Agar windows are now attached and detached using AG_ObjectAttach()and AG_ObjectDetach()against a parent AG_Driver(3); the AG_ViewDetach()function is now deprecated.
· Added AG_Tbl(3), AG_Tree(3) interfaces to ag_core.
· Fix handling of dynamically-allocated strings in AG_CopyVariable().
· Implement AG_TlistUniq(), AG_TlistAddHead().
· Important optimizations to AG_LookupClass().
· Consistently provide plain string variants for every function accepting format string arguments. This allows for more efficient code, and avoids complications with language bindings.
· As the window-* prefixes in events such as window-mousemotion is no longer relevant, mark them deprecated in favor of mouse-* and key-*.
· The integer typedefs Uint8, Sint8, Uint16, Sint16, etc. are no longer made public unless _USE_AGAR_TYPES is explicitely defined.
· Widgets such as AG_Textbox(3) now embed AG_Label(3) widgets to display their associated text labels.
· Added AG_TextboxSetFont(), AG_EditableSetFont(), AG_ConsoleSetFont().
· Various additions to AG_Console(3).
· It is now possible to have the AG_Scrollbar(3) control size scaled automatically from the "visible" binding, by enabling AG_SCROLLBAR_AUTOSIZE.
· Consistently represent color values using AG_Color(3) throughout the API.
· Many additions and updates to the API reference.
· Added various size hint routines: AG_ProgressBarSetLength(), AG_ScrollbarSizeHint().
· Fixed a few memory leaks on AG_Destroy(); added demos/reinit/ test case.
· Cursor changes are no longer performed directly from widget code. Instead, widgets now register "cursor change areas" via the AG_Cursor(3) interface.
· Introduce AG_EventQ structure,
· Added AG_ObjectSetAttachFn(), AG_ObjectSetDetachFn(), AG_ObjectMoveToHead()and AG_ObjectMoveToTail()functions, allowing the order of child objects to be controlled. This is used by AG_Window(3) where order is important.
· Implemented AG_ShortFilename()utility routine.
· VG: Implemented VG_Status(), VG_TextString(). VG_View(3) now uses widget actions.
· The default theme now allows transparency in the color scheme.
August 31st, 2009
· Improvements, bugfixes, and new features.
November 3rd, 2008
· Bindings for Ada were added.
· A math library was added. Portability and compilation fixes were made.
· Many improvements were made to the AG_Object system; object classes are now dynamically loadable.
· Error handling has been improved.
· The VG library was mostly reimplemented and is now documented officially.
· Important sizing, clipping/culling, and rendering-related fixes were made in the GUI library.
· New widgets include Slider and Scrollview.