Scenic Graphics Library for Java

Main page

Screenshots

Demos

Downloads

Introduction

Scenic is a scene-based 2D graphics library. Its purpose is to enable the development of graphics intensive applications using the capabilities of modern graphics cards. It aims to be fast and offer high-quality graphics. One possibility that Scenic offers is the development of resolution independent interfaces.

Scenic consists of two parts: the scene graph code, which is written in java and the rendering code which is written in c++ and is accessed using JNI. The rendering code uses either DirectX or OpenGL to access the graphics hardware.

Features

Features include:

  • Affine transformations
  • Polygons
  • Lines
  • Text
  • Images
  • Clipping to any shape
  • Gradients
  • Patterns
  • Graphics Primitives (OpenGL like triangles)
  • Video (Using DirectShow - only works on Windows)
  • Quadratic (2nd order) Bezier curves
  • Cubic (3rd order) Bezier curves
  • Elliptic arcs
  • Alpha transparency
  • High-quality antialiasing
  • Antialiasing is done for lines, polygons and text. Lines and polygons are antialiased in hardware, which should enable fast performance. Polygons are antialiased using a high-quality analytical algorithm. All the used algorithms should work on a wide variety of hardware.

    Supported Platforms

    Scenic is available for Windows and Linux. The Windows version uses DirectX for rendering, while the Linux version uses OpenGL. The Linux version is currently more experimental, partly because good OpenGL drivers are not available for all graphics cards.

    The library has been tested and works with the following hardware:

    Card Windows (DirectX) Linux (OpenGL)
    Radeon 9500 works works (driver: fglrx 8.18.8)
    GeForce 2 works not tested
    GeForce 4 MX-440 works not tested
    GeForce FX 5200 works works
    GeForce 6600 works not tested
    GeForce 7800 works works
    Intel(R) 82945G Express works not tested

    Participation

    Using hardware acceleration means that the library can (and will) work differently with different graphics cards and operating systems. People who want to contribute to the project can test the library on their system and fix problems that may occur. Working with the rendering code requires knowledge of c++ and DirectX or OpenGL.

    The project is maintained by Jouni Tulkki. If you want to participate in this project or if you have any questions send e-mail to Jouni.Tulkki@gmail.com You can also use the discussion forums to report problems or to discuss about the library or related subjects.

    Releases

    See the change log for a list of releases.

    History

    Originally Scenic was a c++ library that run on Linux. The old library is still available at the old homepage. Scenic PDF Viewer is a PDF viewer based on Xpdf and the c++ Scenic library. The rendering code for the java project was written from scratch and does not share any code with the old library (with the exception of some small snippets). In the future the c++ library can be updated to use the same renderer as the Java library.

    An even older version of the c++ library used client-server design to implement a vector based window system. You can read a work report about the window system that was written as part of an individual course at Helsinki University of Technology.