EIFFELZONE - EiffelFURY 2D Graphics and Multimedia Library



Sourceforge Project Page - http://sourceforge.net/projects/eiffelzone



Introduction

In general, EiffelFURY is a re-constitution of the WEX library written by Andreas Leitner and Robin van Ommeren.  While the WEX library has seen many additions in recent years, only the multimedia portions (MCI Devices) and splash windows were included in the new EiffelFURY library.  The idea was to combine the multimedia capabilities provided in WEX, with new support for 2D (GDI) primatives enabling anyone to make simple multimedia or graphical applications for the win32 platforms.  This is by far not a complete 2D and multimedia library, but intends to serve as an introduction to many of the principles behind game, multimedia and graphics programming for Windows. 

For a real life example of a commercial product using the EiffelFURY library please check out the Strategic Command product page found here:

http://www.battlefront.com/products/stratcom/stratcom.html

In addition, since EiffelFURY makes use of the standard winmm and gdi32 dynamically linked libraries found on all win32 platforms, all compiled programs will not require any special downloads or installations to be performed by the user.  This library is open source and all comments and additions are welcome.


New Additions

New additions to the EiffelFURY library include:

Changes

Changes from the previous WEX library include:

    * Renaming and reorganization of some classes
    * use of ISE´s new external `C´ struct calls
    * use of ISE´s new LACE option for address expressions thus requiring subsequent class changes
    * minor bug fixes including a casting issue in the old dgv_win.h file


Conventions Used

All examples use the new LACE option for address expressions, therefore this must be included in all Ace files in order to have a proper compile.  Also I have adopted the use all capital letters for CONSTANTS found throughout the library classes and examples.  This is a common convention used in other multimedia/graphics libraries and documentations such as DirectX 7.0, so this is just for consistency.


Getting Started

In order to use the EiffelFURY library you will need a copy of ISE Eiffel v5.1 or greater for Windows 95/98/NT/2000/XP and WEL.  Also, it is recommended that you use Microsoft's Visual C++ for C-complilations.  EiffelFURY has yet to be tested with any other C compiler but this should be possible with minor modifications to an EiffelFURY project´s ACE file.

When getting started with EiffelFURY, it is also a good idea to be familiar with WEL and ISE´s Resource Bench tool.  Good knowledge of these is extremely useful in building EiffelFURY applications and will also save you time during your development phases.  These can be reviewed at the following links:

Installation Guide


The best way to install EiffelFURY is to use the library folder provided with the ISE distribution of Eiffel.  In your $ISE_EIFFEL\library path, add a folder named fury.  Copy the unzipped `fury´ library files to this folder.  In this distribution of EiffelFURY there is also a fury.lib file provided, so it will not be necessary to link to winmm.lib as was the previous case with WEX.

All projects should then have the following references in thier ACE file for proper compilation:

default
    address_expression (yes)

    ...

cluster

      -- FURY
      all fury:        "$ISE_EIFFEL\library\fury"

            exclude "spec"; "examples"

      end

      -- WEL
      all wel:         "$ISE_EIFFEL\library\wel"

      ...

external

    include_path:    "$(ISE_EIFFEL)\library\fury\spec\windows\include",
                          "$(ISE_EIFFEL)\library\wel\spec\windows\include",

                          ...

    object:     "$(ISE_EIFFEL)\library\fury\spec\msc\lib\fury.lib",
                   "$(ISE_EIFFEL)\library\wel\spec\msc\lib\wel.lib",


                   ...

end


Examples

Within the EiffelFURY distribution package you will find several examples that highlight the new features of the EiffelFURY library as well as examples based upon the previous WEX library.  These examples are considered a tutorial style introduction to EiffelFURY and will change over time as EiffelFURY development progresses.  These examples can be found under the 'examples' directory of the EiffelFURY distribution package.


EiffelFURY Tutorial 1

In this example, transparent blitting is introduced.  This is a simple animation that makes use of the idle action in the windows messaging system. A frame rate counter is also provided to display the relative speed of the animation.


EiffelFURY Tutorial 2

In this example, the emobss image feature from class FURY_DC_ROUTINES is introduced producing a raised 3-D effect for text.


EiffelFURY Tutorial 3

In this example, use of the windows MCI capabilites is introduced.  This example is built upon the previous WEX library and allows you to load and play *.midi, *.wav, *.avi and cd-rom music files.


EiffelFURY Tutorial 4

In this example, enumeration of display settings is introduced.  The example shows how to safely change display modes given a list of them on the current system.



SourceForge.net Logo