ROOT’s graphics on iOS. ROOT’s graphics (general scheme):

Slides:



Advertisements
Similar presentations
Test Automation on Mobile environnents Eder Figueroa 4/29/203.
Advertisements

FireMonkey Deep Dive The Next Generation of Business Application Development.
FalconView In Linux (FalconViewLX)
A graphical user interface (GUI) is a pictorial interface to a program. A good GUI can make programs easier to use by providing them with a consistent.
Aims 1 Introduction 2 FireMonkey in Details 3 Demo 4 Summary 5 Overview.
Friday, August 29, 2014 CSCI 351 – Mobile Applications Development.
Unity 3D game IDE 1.  Unity is a multi-platform, integrated IDE for scripting games, and working with 3D virtual worlds  Including:  Game engine ▪
Section 508 and NASA Section 508 and NASA Session 4: Software Applications and Operating Systems Presentation to Ames Research Center November 2011 Antonio.
By Ms.A.C.Sumathi AP(SG)/ Dept of CSE SNS College of Engineering, CBE.
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
 jQuery Mobile An Introduction. What is jQuery Mobile  A framework built on top of jQuery, used for creating mobile web applications  Designed to make.
Introduction to Java Swing “We are the sultans of swing” – Mark Knopfler.
Written by Liron Blecher
Moving ROOT Forward Balancing between stability and innovation Fons Rademakers CERN ACAT’11, 8-Sept, 2011, Brunel Univ., U.K..
Mobile Web Applications
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
-Problem with the Fill Color/Style on PS: 2 problems pending. Need to be fixed soon. Working on it. -Make some “session capture”: To show some “Typical.
ROOT Tutorials - Session 51 ROOT Tutorials – Session 8 GUI, Signal/Slots, Image Processing, Carrot Fons Rademakers.
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
6-2 2D Graphics CSNB544 Mobile Application Development Thanks to Utexas Austin.
Image processing Gladys Nzita-Mak. Input devices A mouse is used to interact with your computer, the user is able to move the mouse, click and select.
Introduction to Mobile Programming. Slide 2 Overview Fundamentally, it all works the same way You get the SDK for the device (Droid, Windows, Apple) You.
Development of the iPad Application “Sound Reading” Ryan DuToit, Bennett Hansen, Dr. Timothy Urness *Department of Mathematics and Computer Science, College.
A Jumpstart to WPF by Kevin Grossnicklaus ArchitectNow.
Progress with ROOT on iPad.. iOS from programmers POV: iOS is Unix, but... No X11 (no gVirtualX, no ROOT's GUI). No custom shared libraries (only system.
The Very Basics of Alice: A Simple Overview 6 th & 7 th Grade Tech Apps.
Object Oriented Software Development 9. Creating Graphical User Interfaces.
Folio3 IPhone Training Session 1 Presenter: Imam Raza.
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
PVSSProxy The first piece of the MACS procedure framework (ProShell) Angela Brett.
Embedded Software SKKU 14 1 Sungkyunkwan University Tizen v2.3 Application Profiling & Debugging.
Using Xcode A Beginner’s Tutorial Erin Green. This tutorial will walk you through Xcode, a software development tool for Apple’s iOS applications – We.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
Exploring the Macromedia Flash Workspace – Lesson 2 1 Exploring the Macromedia Flash Workspace Lesson 2.
Go4 v3 - J.Adamczewski, H.G.Essel, S.Linev IT/EE Palaver Go4 version 3.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Graphics Concepts CS 2302, Fall /17/20142 Drawing in Android.
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
Monday, August 31, 2012 CSCI 333 – Systems Programming.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
WIRED for LCD Analysis Mark Dönszelmann Linear Collider Simulation Workshop May 19-22, 2003, SLAC.
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
LCG AA Meeting 30 June 2004 Ilka Antcheva Graphics User Interface in ROOT.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
10 Mobile Application Framework Must Know to Launch New App.
Guidelines, Suggestions February Rene Brun.
PhoneGap Cross-Platform Development Company India
Testing Native Mobile Apps
Views in iOS Mobile apps for iPhone & iPad Telerik Software Academy
GUI plans of work Revisit (reimplement) a new TreeViewer, possibly based on something like Viewpoints (see next slide) (
Chapter 2: Operating-System Structures
Computer presentation
Immediate Mode GUI – Theory and Example
Distributed object monitoring for ROOT analyses with Go4 v.3
Prototyping.
CSCI 351 – Mobile Applications Development
Objectives To review concepts covered in the Windows Operating Systems units.
IOS App Development.
EE 422C Java FX.
.NET and .NET Core 7. XAML Pan Wuming 2017.
CSC 581: Mobile App Development
Week 8 Swing NetBeans GUI Builder
Direct2D Karolis Jodikaitis.
05 | Desktop Applications
Chapter by Loco Power Week 10: High-Fidelity Prototype (Milestone)
Graphical User Interfaces
Presentation transcript:

ROOT’s graphics on iOS

ROOT’s graphics (general scheme):

iOS features: Typical application has one window (takes the full device’s screen), uses views (views are not windows) to arrange its contents. No X11, so no full TVirtualX implementation possible, no ROOT’s GUI. Rich set of libraries and frameworks: CoreGraphics, CoreFoundations, CoreText, CoreAnimation, UIKit, GLES, etc. Very specific GUI, different from Windows/X11/MacOS X. Touches instead of mouse event (this affects how user can interact with ROOT’s objects). Objective-C/Objective-C++ to create native GUI.

1. Non-gui graphics’ port Non-GUI graphics is mainly based on TVirtualPad interface (works via gPad). TPad/TCanvas internally calls TVirtualPadPainter methods (which has X11/Win32 GDI/OpenGL implementations). Implemented:  IOSPad (I had to add iOS-specific extentions to standard TPad).  IOSPainter to do actual painting.

Non-GUI graphics: implementation details  2D graphics (lines, polygons, fill patterns, etc.) – done by CoreGraphics (Quartz 2D API): rich 2D API (paths, strokes, blending, gradients, etc.) advanced text rendering anti-aliasing the same code can draw to a window, to a bitmap, to a PDF file. Etc.  Text is done by CoreText framework (ROOT needs font metrics, and Quartz 2D does not support them).  CoreFoundation (different data structures used both by Quartz and CoreText).

ROOT’s graphics on iPad (screenshots from device):

GUI on iOS 1. ROOT’s GUI classes can not be ported on iOS – no X11 or similar window management system. 2. To develop GUI for iOS you have to use UIKit - object oriented framework, written in Objective-C, which can be used from Objective-C or Objective-C++. UIKit strongly relies on MVC pattern. 3. You can use InterfaceBuilder to create user interface (Apple's analogue for QT-builder or ROOT's GUI builder) or create UI programmatically.

Native iOS application consists of: Run loop (done by UIKit) Main window One or more controller objects Views, managed by controllers (views are rectangular areas, roughly speaking similar to TPad, but they contain not TObjects, but other views - widgets or sub-views).

2. ROOT’s apps for iOS:  “Tutorials” – small application, demonstrates how to use IOSPad and UIKit, simplified version of $ROOTSYS/tutorials/demos.C  “RootBrowser” – mixture of simplified TBrowser and TCanvas, to browser ROOT files’ content and visualize objects like histograms (similar to Photos application, but works with ROOT’s objects, not pictures).

ROOT’s applications for iOS - “Tutorals” app:

"Tutorials": Split-view based application. Has several demos. Supports zooming and scrolling (pinch gesture, taps, pan) Supports picking (initial version). Has TCanvas editor prototype - in a popover window. 3D objects can be rotated with a pan gesture. Has different animations. Mainly was a testbed for different features.

“RootBrowser” application: Based on navigation controller and view hierarchy: top view to open/close/select ROOT files (using TFile and TWebFile) view with file contents (with thumbnails for objects, contained in a file) detailed object view with IOSPad to draw object, selected from file; editor (“object inspector”) to modify object’s properties.

Top level view:

File contents:

Detailed view with editor:

3. OpenGL to OpenGLES (plans)  Port GL-based 3D plots (TGLHistPainter)  Simplified version of EVE (“EVE for iPad”).