Krita Gimini, 2 fois plus agréable sur un 2 en 1

Auteur

Tim Duncan

N'hésitez pas à commenter cet article ! Commentez

- Titre : Krita Gimini, 2 fois plus agréable sur un 2 en 1

- Auteur : Tim Duncan

- Parution : 10 juin 2014

- Licence : INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an order number and are referenced in this document or other Intel literature may be obtained by calling 1-800-548-4725 or going to http://www.intel.com/design/literature.htmSoftware and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark* and MobileMark*, are measured using specific computer systems, components, software, operations, and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. Any software source code reprinted in this document is furnished under a software license and may only be used or copied in accordance with the terms of that license. Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries. Copyright ©2014 Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others.

Sommaire

- I. Pourquoi un ordinateur 2 en 1 ?

- II. Introduction

- III. Créez en Mode Tablette, raffinez en Mode Ordinateur Portable

- IV. Sommaire

- V. Liens connexes :

- VI. Articles Intel connexes

- VII. Ressources Intel additionnelles

- VIII. À propos de l'auteur

I - Pourquoi un ordinateur 2 en 1 ?

Un ordinateur 2 en 1 est un ordinateur portable qui peut être transformé en une tablette par une manipulation de l'ordinateur. Le mode ordinateur portable (également nommé mode bureau) permet à un clavier et une souris d'être utilisés comme principaux périphériques d'entrée. Le mode tablette repose sur un écran tactile, ce qui nécessite l'interaction avec un doigt ou un stylet. Un 2 en 1, comme l'Intel ® Ultrabook ™, offre une précision et un contrôle avec de multiples options d'entrée qui vous permettent de taper lorsque vous avez besoin de travailler et de toucher lorsque vous voulez jouer.

Les développeurs devraient envisager plusieurs scénarios dans la modification de leurs applications pour en tirer parti et se conformer à ce nouveau type d'ordinateur transformable. Certaines applications peuvent garder leurs menus et apparence pratiquement identiques dans les deux modes. Tandis que d'autres, comme Krita Gemini pour Windows * 8 ( Krita Gemini : General Information), peuvent soigneusement sélectionner ce qui est mis en évidence et le rendre disponible différemment dans chaque mode de l'interface utilisateur. Krita est un programme pour le dessin et la peinture qui offre une solution de bout-en-bout pour la création des fichiers numériques de peinture à partir de zéro ( Krita Gemini : Executable download). Cet article explique comment les développeurs de Krita ont ajouté la gestion du mode 2 en 1 - y compris l'implémentation du mode de commutation que ce soit automatique ou sélectionné par l'utilisateur - et certains développeurs devraient, lors de la création d'applications, prendre en compte l'expérience utilisateur 2 en 1.

II - Introduction

Au fil des années, les ordinateurs ont utilisé une variété de méthodes d'entrée à partir des cartes perforées en passant par des lignes de commande jusqu'à pointer-et-cliquer avec une souris ou d'autres périphériques. Avec l'adoption des écrans tactiles, nous pouvons maintenant pointer-et-cliquer avec une souris, un stylet ou avec les doigts. La plupart d'entre nous ne sommes pas encore prêts à effectuer toutes les interactions avec le toucher et, avec les applications comme Krita Gemini gérant ces ordinateurs, nous n'avons pas à nous en faire. Le nouveau 2 en 1, comme Intel Ultrabook ™, peut fournir le mode de l'interface utilisateur qui offre la meilleure expérience possible de l'UI, sur un seul appareil.

Il y a plusieurs façons à travers lesquelles un ordinateur 2 en 1 peut se transformer entre les deux modes, ordinateur portable et tablette (Figure 1 et Figure 2). Il existe de nombreux autres exemples d'ordinateurs 2 en 1 sur le site Web d'Intel. L'ordinateur Ultrabook peut se transformer en mode tablette à partir du mode portable en détachant l'écran du clavier ou autrement (en pliant l'écran au-dessus du clavier par exemple) pour désactiver le clavier et rendre l'écran comme périphérique d'entrée principal (comme le pliage de l'écran au-dessus du clavier). Les fabricants d'ordinateurs, actuellement, commencent à travailler sur l'introduction de cette information de transition de matériel au système d'exploitation. Par exemple, le message WM_SETTINGCHANGE des événements de l'API de Windows 8 et le paramètre texte « ConvertibleSlateMode » signalent le changement automatique du mode ordinateur-portable-à-tablette et tablette-à-ordinateur-portable. Il est également utile pour les développeurs d'insérer un bouton manuel de changement de mode pour le confort des utilisateurs.

Figure 1 : 2 en 1 ordinateur détachable

Figure 2 : 2 en 1 ordinateur de pliage

Tout comme il y a plusieurs façons à travers lesquelles le 2 en 1 peut commuter entre le mode ordinateur portable et le mode tablette, le logiciel peut être conçu de différentes façons pour répondre à la transformation. Dans certains cas, il peut être souhaitable de conserver l'UI aussi près que possible du mode portable, tandis que dans d'autres cas, vous pourriez apporter des modifications plus importantes à l'UI. Par exemple, Intel a aidé KO GmBH à combiner les fonctionnalités de leur application tactile Krita avec leur programme de peinture populaire open source Krita (application d'ordinateur portable) dans la nouvelle application Krita Gemini. Le projet Krita est une communauté de développement active, accueillant de nouvelles idées et maintenant un support de qualité. L'équipe a ajouté les mécanismes nécessaires pour assurer la transition en douceur depuis les « souris et clavier » du mode ordinateur portable vers l'interface tactile en mode tablette. Voir les transformations en action de l'interface utilisateur de Krita Gemini (UI) dans la courte vidéo sur la figure 3.

Figure 3 : Vidéo de Krita Gémeaux changement UI

Intel a travaillé avec de nombreux fournisseurs pour les aider à ajouter la gestion du mode 2 en 1 à leurs applications. Intel Developer Zone fournit d'importantes ressources afin de faciliter la création des applications aux développeurs, dont le mode 2 en 1, les capteurs tactiles, les graphiques, et plus encore. Vous pouvez vous référer aux Liens Connexes à la fin de cet article.

III - Créez en Mode Tablette, raffinez en Mode Ordinateur Portable

L'équipe Gemini s'est arrangée pour optimiser l'expérience utilisateur dans les deux modes de fonctionnement. Dans les figures 4 et 5, vous pouvez voir que les changements de l'interface utilisateur d'un mode à l'autre sont nombreux et radicaux. Cela permet à l'utilisateur de se déplacer de façon transparente depuis le dessin « dans le champ » en mode tablette vers les retouches et les détails de travail plus fins en mode portable.

Figure 4 : Interface utilisateur de la tablette Krita Gemini

Figure 5 : interface utilisateur Krita Gémini portable

Il existe trois étapes principales pour rendre une application transformable entre les deux modes de fonctionnement.

Étape 1 : l'application devrait être « sensible au toucher ». Nous avons de la chance que le mouvement de toucher a bien démarré avant l'activité courante du 2 en 1, comme cela aurait été une transition beaucoup plus difficile que la simple transition vers, ou depuis le mode tablette. Intel a publié des articles sur l'ajout d'entrées tactiles pour une application Windows 8.

Étape 2 : ajouter la gestion du mode 2 en 1. La première partie de la vidéo (figure 3) montre le changement automatique du mode grâce au capteur, une rotation dans ce cas (figure 6), suivie de la transition initiée par l'utilisateur via un bouton dans l'application (figure 7).

Figure 6: état-sensor activé 2 en 1 - transition de mode

Figure 7: Cliquer sur le bouton « Sketch transition » pour initier une action par l'utilisateur afin de passer du mode ordinateur portable au mode tablette

Le support pour les transitions automatiques nécessite la définition et la surveillance de l'état du capteur, et la prise des mesures appropriées une fois l'état connu. En outre, une transition de mode initiée par l'utilisateur [Figure 3] devrait être incluse à titre de courtoisie à ce dernier s'il souhaite être en mode tablette lorsque le code est, par défaut, en mode portable. Vous pouvez vous référer à l'article Intel « How to Write a 2 in 1 Aware Application » (Comment écrire une application sensible au 2 en 1) pour une approche exemple de l'ajout de transition à base de capteurs ( How to Write a 2 in 1 Aware Application by Stephan Rogers). Le code de Krita de gestion des transitions d'un mode à l'autre se trouve dans leur code source en cherchant le « SlateMode » ( Krita Gemini Mode Transition). Krita est publié sous une licence GNU GPL. Merci de se référer au dépôt du code source pour obtenir les informations les plus récentes ( KO GmbH Krita Gemini).

// Snip from Gemini - Define 2-in1 mode hardware states:

#ifdef Q_OS_WIN

#include <shellapi.h>

#define SM_CONVERTIBLESLATEMODE 0x2003

#define SM_SYSTEMDOCKED 0x2004

#endif

Tous les ordinateurs tactiles n'offrent pas la transition automatique, nous vous suggérons alors de faire comme l'équipe Krita Gemini et inclure un bouton dans votre application pour permettre à l'utilisateur de lancer manuellement le passage d'un mode à un autre. Le bouton de Gemini est illustré dans la figure 7. La transition de l'UI initiée avec bouton remplit les mêmes fonctions que celles initiées avec capteur mécanique. Les informations sur l'écran et les périphériques d'entrées par défaut étant des grandes icônes accessibles par toucher en mode tablette, deviennent de plus petites icônes en mode ordinateur portable et entrée des données se fait à partir des périphériques matériels : clavier et souris. Cependant, puisque le chemin de capteur n'existe plus, la méthode de l'appui sur le bouton devrait effectuer les changements de l'écran, de l'icône et des périphériques d'entrée par défaut sans se référer aux données fournies par le capteur d'état. Par conséquent, les développeurs devraient fournir un chemin à l'utilisateur pour passer d'un mode à l'autre soit avec le toucher, soit avec la souris, indépendamment de l'état de l'UI initiée avec bouton, au cas où l'utilisateur choisit un mode inapproprié.

La définition du bouton Kaction(), ainsi que ses états et actions, sont présentés dans le code ci-dessous ( Krita Gemini Mode Transition) :

// Snip from Gemini - Define 2-in1 Mode Transition Button:

toDesktop = new KAction(q);

toDesktop->setEnabled(false);

toDesktop->setText(tr("Switch to Desktop"));

SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), q,

SLOT(switchDesktopForced()));

connect(toDesktop,

SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), q, SLOT(switchToDesktop()));

sketchView->engine()->rootContext()->setContextProperty("switchToDesktop

sketchView->Action", toDesktop);

Les ingénieurs, par la suite, se chargent de gérer les événements déclenchés par le bouton. Ils assurent premièrement la vérification du dernier état connu du système, vu que le code ne peut savoir qu'il tourne sur un système 2 en 1, et deuxièmement le changement de mode ( Krita Gemini Mode Transition) :

// Snip from Gemini - Perform 2-in1 Mode Transition via Button:

//Snip de Gemini - Effectuer la transition de mode du 2 en 1 via le Bouton:

#ifdef Q_OS_WIN

bool MainWindow::winEvent( MSG * message, long * result ) {

if (message && message->message == WM_SETTINGCHANGE && message->lParam)

{

if (wcscmp(TEXT("ConvertibleSlateMode"), (TCHAR *) message->lParam) == 0)

d->notifySlateModeChange();

else if (wcscmp(TEXT("SystemDockMode"), (TCHAR *)

message->lParam) == 0)

d->notifyDockingModeChange();

*result = 0;

return true;

}

return false;

}

#endif

void MainWindow::Private::notifySlateModeChange()

{

#ifdef Q_OS_WIN

bool bSlateMode = (GetSystemMetrics(SM_CONVERTIBLESLATEMODE) == 0);

if (slateMode != bSlateMode)

{

slateMode = bSlateMode;

emit q->slateModeChanged();

if (forceSketch || (slateMode && !forceDesktop))

{

if (!toSketch || (toSketch && toSketch->isEnabled()))

q->switchToSketch();

}

else

{

q->switchToDesktop();

}

//qDebug() << "Slate mode is now" << slateMode;

}

#endif

}

void MainWindow::Private::notifyDockingModeChange()

{

#ifdef Q_OS_WIN

bool bDocked = (GetSystemMetrics(SM_SYSTEMDOCKED) != 0);

if (docked != bDocked)

{

docked = bDocked;

//qDebug() << "Docking mode is now" << docked;

}

#endif

}

Étape 3 : corriger les problèmes découverts lors du test. Tandis que l'utilisation de la palette est assez facile que ce soit en mode tactile ou en mode souris, l'espace de travail lui-même devrait tenir l'accent et le zoom cohérents avec les attentes de l'utilisateur. Par conséquent, agrandir le tout n'était pas optionnel. Les contrôles ont été agrandis pour l'interaction tactile en mode tablette, mais l'image de l'écran lui-même devrait être gérée à un niveau différent afin de maintenir une expérience utilisateur attendue. Vous remarquerez dans la vidéo ([Figure 3) que l'image dans le volet d'édition garde la même taille sur l'écran d'un mode à l'autre. C'était une zone qui exigeait des solutions créatives par les développeurs pour réserver les propriétés réelles de l'écran afin de maintenir la cohérence de l'image. Un autre problème est que les deux interfaces utilisateurs, exécutées simultanément, utilisent le même effort initial, ce qui a négativement affecté les performances en raison du partage des mêmes ressources graphiques par les deux interfaces. Des ajustements ont été faits dans les deux interfaces afin de garder les ressources nécessaires allouées aussi distinctes que possible et de prioriser l'interface utilisateur active le plus possible.

IV - Sommaire

Comme vous pouvez le voir, l'ajout de la gestion du mode d'un 2 en 1 pour votre application est un processus assez simple tant que vous considérez la façon dont vos utilisateurs vont interagir avec votre application dans un mode interactif par rapport à l'autre. Lisez l'article Intel « Write Transformational Applications for 2 in 1 Devices Based on Ultrabook™ Designs » pour plus d'informations sur la création d'une application avec une interface utilisateur transformable ( Write Transformational Applications for 2 in1 Devices Based on Ultrabook™ Designs by Meghana Rao) . Pour Krita Gemini la décision a été prise pour faciliter la création des dessins et art simple en mode tablette et ajouter les touches finales à ces créations en mode portable. Lorsque vous développez vos modes 2 en 1, tenez compte de ce que vous souhaitez mettre en évidence dans votre application lors de la présentation aux utilisateurs en mode tablette versus mode portable.

V - Liens connexes :

1.Intel.com:  Introducing the Intel Developer Zone

2.Intel.com:  2 in 1 Information

3.Intel.com:  Touch Developer Guide for Ultra Mobile Devices

4.Intel.com:  Developer's Guide for Intel® Processor Graphics for 4th Generation Intel® Core™ Processor

5.Intel.com:  Ultrabook and Tablet Windows * 8 Sensors Development Guide

6.Intel® Article:  GamePlay: Touch Controls for Your Favorite Games

7.Intel® Article:  Designing for Ultrabook Devices and Touch-Enabled Desktop Applications

8. Intel® Article:  How to Write a 2 in 1 Aware Application by Stephan Rogers

9. Intel® Article:  Mixing Stylus and Touch Input on Windows* 8 by Meghana Rao

10.Intel® Developer Forum 2013 Presentation (PDF):  Write Transformational Applications for 2 in 1 Devices Based on Ultrabook™ Designs by Meghana Rao (pdf)

11.Krita Gemini*:  General Information

12.Krita Gemini:  Executable download (scroll to Krita Gemini link)

13.Krita Gemini Mode Transition:  Source Code Download

14.KO GmbH Krita Gemini:  Source Code and License Repository

VI - Articles Intel connexes

Ultrabook Device and Tablet Windows Touch Developer Guide

All-in-One PC: What are the Developer Possibilities?

Windows 8* Store vs Desktop App Development

VII - Ressources Intel additionnelles

Intel® Developer Zone

Intel® Graphics Performance Analyzers

Developing Power-Efficient Apps for Ultrabook™ Devices

Ultrabook™ App Lab

Windows* 8.1 Preview - What's New for Developers

Ultrabook™ and Tablet Windows* 8 Sensors Development Guide

VIII - À propos de l'auteur

Tim Duncan est un ingénieur Intel décrit par ses amis comme « M. Gidget-Gadget », avec une description plus récente comme un « Evangineer » pour Intel. Actuellement il aide les développeurs à intégrer la technologie en solutions, Tim a des décennies d'expérience dans l'industrie, de la fabrication de puces à l'intégration de systèmes.

Visitez le blog de Tim au Intel ® Developer Zone à Tim Duncan (Intel), contactez-le par courriel :

timothy.c.duncan@intel.com, ou tweeter @tcduncan.