Espresso3D Version 0.3 changelog (this is not a definitive list, lots more has changed then this) New Features ============= -SkyObjects -Sky objects implemented. Sky objects stay centered around a viewport's camera. -A base class E3DSkyObject was created to allow creation of other skyobjects easily -A sky box skyobject was added (E3DSkyBox) and can be added to a world. -2D Fonts and Text -2D font support is available through the viewport.getViewportPrinter().* methods. To use fonts, a font texture is created and then symbols are registered to certain positions on that texture by defining a new E3DFont implementing class (one of E3DFixedWidthFont or E3DVariableWidthFont) which is then added to the viewportprinter. After the font is created, viewport.getViewportPrinter().printToViewport can be used to print text to a viewport. Blending is supported as well as solid rendering. If blended, alpha bits from the texture will be see through. -BitmapFontBuilder is recommended for creating font bitmaps. It also has a nice feature to export symbol widths which can be used with E3DVariableWidthFont's to create a font with variable width characters (and spacing) -2D Images -Added 2 E3DImage types that can be added to a viewport: E3DFixedSizeImage and E3DPercentageSizeImage. These two image types can be added to a viewport to be displayed on top of everything in a viewport. These are 2D images that are always looking at the camera. Blending is supported as well as solid rendering. If blended, alpha bits from the texture will be see through. -2D Images are also support animation (See Texture Animation below) -Mouse -Mouse support is enabled. 3 mouse buttons, mouse movement and scroll wheel movement are all supported via callbacks. The E3DInputCallback has been modified to reflect the new input device. -Added ability to directly query whether a key (or mouse button) is pressed (in addition to the callback being called) -Render Modes (wireframe, solid, textured: per-object or per-viewport ability) -Added ability to make any object wireframe, solid, or textured by setting its rendermode to one of RENDERMODE_* types unless overridden by a viewports rendermode. -Added ability for a viewport to override all objects rendered within it to one of the RENDERMODE_* types. If a viewport is set to RENDERMODE_DEFAULT (which is default for a viewport), then each object will be able to have its own renderMode (so some objects can be wireframe, some solid, some textured, etc). -E3DVector2I is added for 2D integer vector support -Texture Animation -Added texture animation to Sprites, Billboarding sprites, particles, and 2D Images. Instead of passing in a single textureName when constructing them, simply pass in an array of E3DTextureAnimationFrame's and animation will be automatic. Fixes/Changes (many more things than this were fixed, this is NOT a definitive list) ============================================================================ -Setting textures on objects is no longer done by looking up the glTextureID. Simply pass the textureName that was used in the textureset. This affects things like particles, loading triangle and quad geometry manually, etc. -Particles -Added ability to blend or not blend particles in particle systems using the same mechanism that is used for 2D images. -Added particle texture animation -Fixed multiple viewports -Multiple viewports were clearing the screen for each viewport which caused only the last viewport on the list to be visible. This has been resolved. -Fixed some keyboard keys having fat-fingered names