48
Interac Interac ţ ţ iune om iune om - - calculator calculator Dr. Dr. Sabin Sabin - - Corneliu Corneliu Buraga Buraga www.infoiasi.ro/~busaco www.infoiasi.ro/~busaco / / 1 1 Interac Interac ţ ţ iune om iune om - - calculator calculator Mediul Mediul XWindow XWindow Dr. Sabin-Corneliu Buraga Facultatea de Informatică Universitatea “A.I.Cuza” Iaşi, România http http :// :// www.infoiasi.ro www.infoiasi.ro /~ /~ busaco busaco / /

Interactiune om-calculator (Mediul XWindow)

Embed Size (px)

Citation preview

Page 1: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

11

InteracInteracţţiune omiune om--calculatorcalculator MediulMediul

XWindowXWindow

Dr. Sabin-Corneliu Buraga Facultatea de Informatică

Universitatea “A.I.Cuza”

Iaşi, România httphttp://://www.infoiasi.rowww.infoiasi.ro/~/~busacobusaco//

Page 2: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

22

“Writing software is more fun

than working.”

/usr/games/fortune

Page 3: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

33

CuprinsCuprins

Ce este XWindow?•

Caracteristici principale

Modelul client/server XWindow•

Aplicaţia de bază XWindow

Managementul interfeţei•

Dezvoltarea aplicaţiilor XWindow

De la prezent

la viitor

Page 4: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

44

CeCe esteeste

XWindowXWindow??•

XWindow

System

X11R6 (versiunea curentă), X11R7 (cea mai recentă)•

Sistem client/server de management al interfeţei grafice

Independent de hardware &

de sistemul de operare•

Dezvoltat de MIT (proiectul

Athena

’84) &

DEC (’83)

Standardizat de Consorţiul X (1988) –

www.x.org•

Standard industrial pentru dezvoltarea de aplicaţii grafice

Page 5: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

55

CeCe esteeste

XWindowXWindow??•

Evoluţie:– 1984: Consorţiul X

Disponibilitatea în regim open source a X11•

Suport pentru paradigma WIMP la nivel de reţea

Similar SunTools, Mac OS 2.x– 1991: XFree86

Suport hardware pentru PC-uri•

Similar Windows 3.1, Mac OS 4.x

– 2001: X.org

/ freedesktop.org•

Suport pentru dispozitive/periferice grafice moderne

Similar Mac OS X, Windows 2000/XP

Page 6: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

66

CaracteristiciCaracteristici principaleprincipale

Bazat pe modelul client/server:– Server – controlează dispozitivele grafice

(display, pointer

al mouse-ului,…)– Client

program (aplicaţie) independent(ă)

de server, posibil aflat la distanţă (pe altă maşină: staţii de lucru UNIX, PC-uri,…)

– Canal de comunicaţie

– realizează conexiunea dintre server şi client –

protocolul XWindow

Page 7: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

77

CaracteristiciCaracteristici principaleprincipale

• Arhitectura generală a sistemului XWindow:

Page 8: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

88

ModelulModelul client/server Xclient/server X

Clientul & serverul se găsesc pe aceeaşi maşină

Clientul & serverul se găsesc pe maşini diferite

Page 9: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

99

ModelulModelul client/server Xclient/server X

Modalitatea de execuţie a aplicaţiilor pe maşini aflate la distanţă este transparentă pentru utilizator

Page 10: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1010

ModelulModelul client/server Xclient/server X

Modelul serverului X– Mecanismul comunicării depinde de structura

client/server-ului•

Pe aceeaşi maşină (UNIX): comunicare inter-procese

Pe maşini diferite omogene (UNIX): TCP/IP•

Pe maşini diferite eterogene (UNIX şi Windows/Mac): TCP/IP

Page 11: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1111

ModelulModelul client/server Xclient/server X

Mesaje (cereri) XWindow:– Aplicaţie → server

(e.g.,

deschide fereastra, schimbă fundalul,…)

Se realizează fără confirmare

– Periodice (aplicaţie → server) (e.g.,

interogare mouse, paleta de culori)

Cerere de informaţii de la server

– Evenimente

(server → aplicaţie)

Page 12: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1212

ModelulModelul client/server Xclient/server X

Evenimente:– Fiecare fereastră răspunde la seturi

(diferite) de evenimente– Se generează în mod asincron– Evenimentele pot fi stocate

într-o coadă de evenimente (la client)– Se încearcă minimizarea traficului de reţea– Exemple:

pierderea focus-ului, apăsarea unei taste,…

Page 13: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1313

ModelulModelul client/server Xclient/server X

Serverul X– Intermediar între programe (clienţi, aplicaţii) şi resursele unui sistem (I/O)

– Activităţi:•

Acces multi-utilizator

la display

Poate manipula structuri complexe (ferestre, fonturi) care sunt referite de clienţi prin ID-uri

(numere)

– După lansare, este iniţializat de xinit– Pentru Linux: XFree86

/

X.org

Page 14: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1414

ModelulModelul client/server Xclient/server X

Serverul X– Display ≡

server

– Display ≠

screen– Screen – reprezintă hardware-ul

pe care este desenat display-ul– Un server poate controla mai multe screen-uri– Se poate găsi pe o staţie UNIX,

pe un terminal X dedicat, pe orice PC etc.•

Clientul X– Poate fi activat de la o maşină la distanţă/locală

prin intermediul rlogin, rsh,…

Page 15: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1515

AplicaAplicaţţia de bazia de bazăă XX

Trebuie să se conformeze specificaţiilor Consorţiului XWindow

protocolul X

Se poate dezvolta în orice limbaj suportat

Page 16: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1616

AplicaAplicaţţia de bazia de bazăă XX

Clientul trebuie să: –stabilească în prealabil

conexiunea cu serverul

–determine caracteristicile serverului

–realizeze acţiunile implementate de programator, exploatând resursele grafice prin intermediul serverului X

Page 17: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1717

AplicaAplicaţţia de bazia de bazăă XX1.

Conectarea

la server (XOpenDisplay)

2.

Verificarea

mediului (DisplayWidth, DisplayHeight, DefaultDepth)

3.

Crearea ferestrei

principale

(XCreateWindow) 4.

Afişarea ferestrei (XMapWindow, XMapRaised) …

5.

Execuţia aplicaţiei propriu-zise... …

6.

Distrugerea ferestrei (la ieşire) şi închiderea display-ului (XDestroyWindow, XCloseDisplay)

Page 18: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1818

Managementul interfeManagementul interfeţţeiei•

Nu există o interfaţă standard X

Componentele interfeţei sunt parte ale aplicaţiei (utilizând “apeluri”

standard)

Sistemul particular de interfaţă pe care îl utilizăm este decodificat de serverul X

Interfaţa utilizează componente –

widgets

O interfaţă X pune la dispoziţie un set de widget-uri

definind look & feel-ul acesteia

Page 19: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

1919

Managementul interfeManagementul interfeţţeiei

Page 20: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2020

Managementul interfeManagementul interfeţţeiei•

Interfaţa X

Aceeaşi aplicaţie poate avea interfeţe diferite exploatate pe maşini diferite

Componente:•

Application

interface•

Management interface

Componentele aplicaţiilor X

Page 21: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2121

Managementul interfeManagementul interfeţţeiei•

Aplicaţiile X se construiesc peste nivelurile principale ale sistemului de dezvoltare X

XLib–

Toolkits (Widgets

&

Xt

Intrinsics)

Page 22: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2222

Managementul interfeManagementul interfeţţeiei•

XLib

Set de funcţii de bibliotecă de nivel-scăzut–

Este scris în limbajul C standard

Implementează apelurile X de bază–

Se utilizează rar în mod direct

Baza

unor biblioteci de nivel mai ridicat•

Ferestrele în XLib

Structuri fundamentale de date–

Stocate pe server

Posedă identificatori unici definiţi la crearea ferestrelor

Mărimea se măsoară în pixeli–

Originea (0, 0) este

plasată în stânga-sus

Page 23: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2323

Managementul interfeManagementul interfeţţeiei•

Evenimentele în XLib

Mai multe aplicaţii grafice pot rula simultan–

Utilizatorul introduce datele folosind mai multe modalităţi (tastatura, mouse-ul,…)

Pot fi generate de utilizator (click), de managerul de ferestre (resize) sau de aplicaţii (cut & paste)

Plasate (de server) într-o singură coadă de evenimente spre a fi procesate

Evenimentele sunt structuri de date trimise de fereastra care deţine focusul

Page 24: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2424

Managementul interfeManagementul interfeţţeiei•

Evenimentele în XLib

Dacă fereastra care deţine focusul nu poate prelucra evenimentul îl va trimite ferestrei părinte, până când:

Evenimentul este acceptat de fereastră•

Evenimentul e captat de fereastra root, fiind ignorat

Aplicaţiile pot aştepta evenimente (blocking)–

Aplicaţiile pot interoga serverul asupra apariţiei evenimentelor (polling)

Un mesaj-eveniment este compus dintr-un set de ID-uri

de

ferestre, fonturi, culori etc.

Page 25: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2525

Managementul interfeManagementul interfeţţeiei•

Procesarea

evenimentelor

while(1) { event

= read (events); switch (event.type) {

case mouse_press: if (event.window

== …)

… case key_press:

… }

}

Avantaj Se

poate

realiza

automat

managementul evenimentelor

Dezavantaj necesită cunoştinţe de programare

orientată-eveniment

Page 26: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2626

Managementul interfeManagementul interfeţţeiei•

X Toolkits

X Intrinsics

(Xt)

set de widgets

Page 27: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2727

Managementul interfeManagementul interfeţţeiei•

Xt

(X Intrinsics)

Standard al Consorţiului X

Intermediar între XLib

şi aplicaţie

Utilizează OOP pentru a extinde XLib

Permite construirea de componente de interfaţă (widgets)

Utilizează o ierarhie de clase pentru a crea seturi de widgets

Suportă orice tip de interfaţă

Page 28: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2828

Managementul interfeManagementul interfeţţeiei•

Widgets

Oferite de diverşi implementatori: Athena

(MIT),

Motif

(OSF) –

în fapt e standard, OpenLook

(AT&T),…

Widget ≡

fragment de cod reutilizabil şi configurabil care operează independent de aplicaţie pentru a realiza diferite interacţiuni

Separă codul aplicaţiei propriu-zise de codul interfeţei cu utilizatorul

Page 29: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

2929

Managementul interfeManagementul interfeţţeiei•

Motif Widgets

Se alocă dinamic–

Conţin informaţii de stare

Posedă o clasă de bază (“nucleu”) conţinând resursele moştenite de celelalte widget-uri

Fiecare widget va fi configurat via resurse (manipulate de un manager de resurse

pus la dispoziţie de XLib)–

Realizează managementul aranjamentului ferestrelor

Automatizează operaţiile de redesenare, rescalare

etc.

Page 30: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3030

Managementul interfeManagementul interfeţţeiei•

Motif Widgets

Push-button–

Scrollbar

Data entry area–

Composite widgets

Shell widgets–

Popup-dialog box

Special widgets–

Page 31: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3131

Managementul interfeManagementul interfeţţeiei•

Managerul de ferestre (window manager)

Client special responsabil cu amplasarea

şi dimensionarea

ferestrelor

principale

ale aplicaţiilor

pe display-ul serverului X–

Mediază cereri referitoare la resursele fizice ale display-ului (screen, resurse color, tastatură)

Permite utilizatorului să manipuleze ferestrele şi să lanseze alte aplicaţii

Defineşte comportamentul sistemului de ferestre folosit

(e.g., suprapunerea, controlul focusului,…)

Page 32: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3232

Managementul interfeManagementul interfeţţeiei•

Managerul de ferestre

mwm (Motif)–

twm

Tab Window System (MIT)

fvwm2–

AfterStep

WindowMaker–

KDE –

The K Desktop Environment

GNOME –

The GNU Network Object Modeling Environment –

mediu pentru

manageri de ferestre: Enlightment, Sawfish

Med

iid

eskt

op

Page 33: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3333

Managementul interfeManagementul interfeţţeiei•

Mediul

desktop – context

Page 34: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3434

Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X•

Structura unui program X:

Rutina principală•

Iniţializarea toolkit-ului

Crearea widget-urilor•

Adăugarea funcţiilor de tratare a evenimentelor

Apelarea widget-urilor

(afişarea efectivă)•

Intrarea în bucla principală de procesare a evenimentelor

Rutine-eveniment•

Funcţii definite de utilizator

Apelate la apariţia unui eveniment particular•

Depind

de tipurile de evenimente

survenite

Page 35: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3535

Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X

În

afară de widget-uri, pot fi folosite şi gadget-urile

Nu au ataşată nici o fereastră X–

Nu pot să-şi trateze propriile evenimente•

Evenimentele sunt tratate de widget-ul părinte

Nu au acces la setul de resurse (e.g.,

culoare)–

Pot micşora numărul de ferestre X create

Exemple: ArrowButtonGadget, LabelGadget

Page 36: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3636

Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X•

Limbaje:

C/C++•

X Toolkit Intrinsics

Qt (Trolltech, folosit

de KDE)•

GTK (GNOME Toolkit)

Tcl/Tk–

PHP (PHP-GTK)

Perl & Python (module pentru

GTK)–

Object Pascal

Java–

C#

GTK# –

http://gtk-sharp.sourceforge.net/–

Page 37: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3737

Dezvoltarea aplicaDezvoltarea aplicaţţiilor Xiilor X•

Instrumente/platforme:

KDevelop

(KDE)–

Qt Designer

(Trolltech)

Specificarea interfeţei se realizează via XML

Glade

(GNOME)–

Kylix

(Borland)

Eclipse–

Mono (portare

open-source a .NET)

MonoDevelop

şi

(multe) altele

Page 38: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3838

Page 39: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

3939

Page 40: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4040

Page 41: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4141

De la De la prezentprezent la la viitorviitor

Instrumente de autoinstalare/autoconfigurare– Hotplug hardware

Utilizarea tehnicilor moderne de redare grafică– Fără distincţie între caracterul 2D/3D– Modularizare clară a funcţionalităţilor client/server

Componente grafice de ultimă generaţie– Transluciditate, grafică vectorială, animaţie

Page 42: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4242

De la De la prezentprezent la la viitorviitor

Noua infra- structură X (Jamey

Sharp,

2006)

Page 43: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4343

De la De la prezentprezent la la viitorviitor

Un driver video X este

compus actualmente din partea de redare 2D (DDX) &

cea de redare 3D (DRI)

Efort dublu de dezvoltare•

Soluţie mai bună: emularea operaţiilor 2D via acceleratorul 3D– Un singur driver este suficient– Performanţă superioară– Compatibilitate cu viitorul (forward compatibility)

Page 44: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4444

De la De la prezentprezent la la viitorviitor

Suport pentru redare

composite:– Ferestre translucide, cu forme nerectangulare,

anti-aliased– Manager distinct pentru fonturi– Manager distinct pentru combinarea efectelor

(compositing manager):•

Efecte de tip

post-production

Afişarea

“smooth”

(la nivel perceptual) a obiectelor grafice

Page 45: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4545

De la De la prezentprezent la la viitorviitor

Suport pentru grafica vectorială:– Cairo

Model de redare bazat pe specificaţiile PDF (Portable Document Format)

Permite aplicaţiilor/toolkit-urilor existente să deseneze judicios

pe “suprafeţe”

vizuale arbitrare

API familiar – SVG (Scalable Vector Graphics)

Model declarativ bazat pe XML•

Pentru icon-uri, slide-uri, animaţii, redare în browser

Reprezentări compacte•

API-uri

complexe în curs de dezvoltare

Page 46: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4646

De la De la prezentprezent la la viitorviitor

Suport pentru animaţii:– Accentuarea unor conţinuturi– Mutarea obiectelor de interfaţă– Pictograme, miniaturi (thumbnails),

cursoare animate– Trebuie să satisfacă aşteptările utilizatorilor

în ceea ce priveşte redarea conţinuturilor video (TV, filme, jocuri)

Page 47: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4747

RezumatRezumat

Ce este XWindow?

Caracteristici principale

Modelul client/server XWindow

Aplicaţia de baza XWindow

Managementul interfeţei

Dezvoltarea aplicaţiilor XWindow

De la prezent

la viitor

Page 48: Interactiune om-calculator (Mediul XWindow)

InteracInteracţţiune omiune om--calculatorcalculator

Dr. Dr. SabinSabin--CorneliuCorneliu BuragaBuraga –– www.infoiasi.ro/~busacowww.infoiasi.ro/~busaco//

4848

ÎÎntrebărintrebări??