Android | Arcade | Atari 2600 | Atari 5200 | Atari 7800 | Atari Jaguar | Atari Lynx | Caanoo | Coleco Vision | Cybiko | Dingoo | Dingoo Linux (Dingux) | Dreamcast | Gameboy | Gameboy Advance | GameCube | Game Gear | Gemei X760+ | Genesis | GP2x | GP32 | IntelliVision | iPhone | J2ME | Master System | Mattel HyperScan | Meggy Jr RGB | Neo Geo Pocket | Nintendo Entertainment System | Nintendo 64 | Nintendo DS | Nintendo DSi | Odyssey2 | Openmoko | Pandora | PC Engine | Playstation | Playstation 2 | Playstation 3 | Playstation Portable | PocketStation | Pokemon Mini | Pocket PC | Sega 32x | Sega Saturn | Super Nintendo Entertainment System | Symbian OS | Vectrex | Virtual Boy | Wii | Wiz | Wonderswan | XBOX 360 | Zodiac
Login Register
Posted by on 2009-11-15 23:45:54
Woopsi is a Nintendo DS GUI library for rapidly creating user interfaces for homebrew software. Modelled after the AmigaOS windowing system.

Release notes:
Version 0.40 is now out.

This release is the first alpha version. At this point I'm mainly concerned with bugfixing and tidying up than adding significant new features.

Big changes this time around include the removal of PALib support and a directory restructure. This is the first release of Woopsi that ships as a proper library. Installation instructions are included in the zip file, but it's essentially a matter of just copying the libwoopsi folder to the devkitpro folder.

Additionally, there are a lot of improvements to the graphics API, are a few new example and test projects, and a sizeable number of bugfixes.

Download from SourceForge as usual:

http://www.sourceforce.net/projects/woopsi

Fixes:
- PALib support removed.
- Pointer to selected day button in calendar resets to NULL when new month selected; prevents day button incorrectly popping up if same button is clicked in new month.
- Calendar::getPreferredSize() returns valid values.
- Label text is greyed out when disabled.
- Huge speed increase in Calendar::resize().
- Calendar's child controls correctly fill entire available space.
- Calendar correctly selects date if new day is the same as old day but in a different month.
- Gadget drag event only raised if stylus is actually moved whilst dragging mode active.
- ScrollingPanel drag and scroll events only raised if stylus is actually moved whilst dragging mode active.
- MultiLineTextBox greys out text when disabled.
- MultiLineTextBox::removeText() correctly repositions cursor.
- TextBox greys out text when disabled.
- Scrolltest compiles correctly.
- SimpleScreen and SimpleWindow helper gadgets removed.
- Renamed LinkedList to WoopsiLinkedList and LinkedListIterator to WoopsiLinkedListIterator to avoid type clashing with LinkedList in devkit.
- Tidied up woopsifuncs.h.
- SuperBitmap::getBitmap() returns a pointer to the Bitmap object instead of the Bitmap object's raw pixel data.
- Moved skinned gadgets out of main library and into bonus folder.
- Removed fatInitDefault() stub method for SDL out of individual .cpp files and into nds.h.
- dimmedscreen.h includes woopsi.h.
- Graphics::drawBitmap() clips correctly if bitmap destination co-ords are greater than the size of the destination bitmap.
- GraphicsPort::drawPixel() clips correctly.
- GraphicsPort::drawXORPixel() clips correctly.
- Replaced DMA_Force and DMA_Copy with woopsiDmaForce() and woopsiDmaCopy() to fix ancient problems with DMA not seeing latest RAM state.

New Features:
- Calendar test added.
- MultiLineTextBox test added.
- TextBox test added.
- Added an overload to GraphicsPort to print a length of a string in a specific colour.
- Restructured directories into traditional library layout.
- Upgraded main project to VC++ 2008.
- Added libwoopsi.a to SVN.
- Added template example that uses libwoopsi.
- Reorganised demo code into new demo directory.
- BitmapIO class can load 16-bit BMP images with any pixel encoding.
- BitmapIO class can load V3, V4 and V5 DIB headers.
- BitmapLoader example illustrates loading of most supported BMP types.
- Added skinned gadget example.
- Added SkinIO class to bonus folder - loads skins from disk.
- Added BitmapBase class to define basic interface for a bitmap.
- Added BitmapWrapper to enable included (not loaded) bitmap data to be used as a read-only Bitmap object.
- Moved drawing code out of Bitmap class into new Graphics class.
- Added MutableBitmapBase class to define basic interface for an editable bitmap.
- Added FrameBuffer class to wrap framebuffer inside a bitmap class.
- All references to DrawBg array now work with frameBuffer array.
- Added GraphicsUnclipped to perform raw unclipped bitmap drawing.
- GraphicsPort inherits from GraphicsUnclipped in order to reduce code repetition.
- Font system uses new Bitmap object hierarchy.
- System fonts available as global objects.
- Rewritten clipping routine in Font and MonoFont.
- Reorganised VC++ project with more filters.
- Rect struct moved out of Gadget class and into separate header.
- SuperBitmap no longer includes drawing functions; instead it exposes a non-const pointer to its bitmap and a non-const pointer to a Graphics object that can draw to the bitmap.
- Added bitmapdrawing example.
- Added gadgetdrawing example.
- Added blit() and blitFill() methods to Bitmap and FrameBuffer, and signatures to MutableBitmapBase.
- Added getData(x, y) method to all bitmap classes.
PDR Light News | News Sitemap | Files Sitemap | Disclaimer
PDRoms (C) 1998-2009 by Kojote - Framework (C) 2006-2009 by Celeth. All Programs offered here are legalized for free use by their authors. If there should be a mistake, write an email to get the wanted item removed - we will act as fast as we can. Placing direct links to any pictures or files is not appreciated - if you need content from PDRoms, copy it on your own webspace and give credits where due.