21-25 May 2012
New York City, NY, USA
US/Eastern timezone

Native ROOT graphics support on Apple devices (OSX and iOS)

24 May 2012, 13:30
4h 45m
Rosenthal Pavilion (10th floor) (Kimmel Center)

Rosenthal Pavilion (10th floor)

Kimmel Center

Poster Software Engineering, Data Stores and Databases (track 5) Poster Session


Timur Pocheptsov (Joint Inst. for Nuclear Research (RU))


ROOT's graphics works mainly via the TVirtualX class (this includes both GUI and non-GUI graphics). Currently, TVirtualX has two native implementations based on the X11 and Win32 low-level APIs. To make the X11 version work on OS X we have to install the X11 server (an additional application), but unfortunately, there is no X11 for iOS and so no graphics for mobile devices from Apple - iPhone, iPad, iPod touch. Apple provides developers with a very rich set of APIs and frameworks, and in the area of GUI and 2D graphics these APIs are superior to the X11 API (e.g. we can easily add transparency, anti-aliasing, complex polygons and paths, blending, etc. etc.). Using these APIs (mainly Quartz 2D) we have a new implementation of TVirtualX, which works both on OSX and iOS. The window management part for OSX is implemented using the Cocoa API. However, iOS has a completely different GUI model, which does not fit ROOT's GUI classes. In this case we provide our users with several classes, in (Objective-)C++, that allow the development of ROOT-based graphical applications for iOS. Concerning 3D graphics, iOS does only support OpenGLES. OpenGLES is a sibling of OpenGL for mobile devices and browsers. We are porting the ROOT OpenGL based 3D graphics code to OpenGLES to bring ROOT's 3D graphics (event display, different math plots, etc.) to iOS.

Primary author

Timur Pocheptsov (Joint Inst. for Nuclear Research (RU))

Presentation Materials

There are no materials yet.