 Bienvenue à cette présentation de la solution de la solution de la solution graphique de TGFX pour la famille STM32 MCU. Après un récol de la solution de ce background, nous allons réviser les principales features et la tâche centrale qui a été offert pour le design de la layout de la solution graphique de la surface de l'esprit de l'esprit de l'esprit de l'esprit de l'esprit de l'esprit de l'esprit de l'esprit de l'esprit de l'esprit. Alors nous allons focus sur les principaux principaux de TGFX ce qui est allé dans la structure de la solution vis de l' challenge graphique. Selon la tièche pour quieter la relation des ressources possibles grâce à une parade à compl doing un lelonage secretary du designing. En regardant le background, TGFX a été inventé par Mjolnir Informatics en 2009 et a été intégrée dans une structure séparée qui s'appelle Dropner Graphics en 2014. Il était en train de présenter à l'époque, et encore maintenant, un outil de création comme smartphone, mais au-delà de la plateforme smartphone. Le target était des plateformes embêtées avec des ressources constraînées en termes de CPU, de la mémoire et de la construction pour le pouvoir et essentiellement sans un unité de processage graphique. Le design de TGFX, l'éditeur, est en constant improvement depuis le premier outil officiel en 2014. C'est-à-dire que les features et les widgets ne sont pas configurables dans l'éditeur. En 2018, Dropner Graphics a été acquiré par STiMacro Electronics. Et pourquoi nous n'avons qu'une première intégration du design de TGFX? Tout d'abord, cela signifie une nouvelle location de site pour STi, dans le sein de Danmark, Arus, au nom de la ville. Il a besoin de réformer complètement l'intégration graphique dans l'écosystème STiMacro. Parce que le premier point est qu'une réforme de design de TGFX était allée à une réforme de Cubamix. Ce n'était pas possible jusqu'à une nouvelle réforme de Cubamix. Et elle a besoin de soutenir toute la kit de développement STiMacro. Donc, au moins, le niveau graphique, c'est-à-dire que l'une qui a des hardware accélérateur, comme le Chromart accélérateur, la TDC pour contrôler le TFT LCD-displacement, et d'autres GPEG codecs. Et nous avons encore de l'assurance de la continuité des outils online, lesquels nous sommes présents quand Dropner Graphics était une entité séparée, et lesquels nous sommes existés déjà avec les outils de support STi. Donc, pour toutes ces raisons, le premier TGFX release de Cubamix n'était qu'en janvier 2020. Dans le cadre de l'Institut Graphique de STiMacro, il y a plusieurs solutions qui ont un avantage de l'institut STiMacro. La solution de la solution STiMacro est un contract que les STiMacro ont fait avec la compagnie Seeger pour délivrer la charge libre à l'institut STiMacro. La solution de Seeger pour les applications graphiques. Cette solution est maintenant partie de la législation. Cela signifie que c'est toujours maintenu. Nous allons toujours donner des supports à l'institut customer qui choisit cette solution, mais ce n'est pas intégré comme le TGFX est dans le tool de Cubamix. Il n'y a que des exemples de démarches qui sont offerts dans la solution de Cubamix en supportant la solution STiMacro. La solution de l'institut STiMacro est une autre solution de la solution graphique qui supporte toutes les spécificités STiN32. Mais cette solution n'est pas libre de charge. Nous devons installer un avantage financier pour l'utiliser. Mais ce n'est toujours pas intéressant car c'est principalement l'approche de la plateforme multiplaite. Cela signifie que vous pouvez développer une fois votre interface graphique et déployer sur la solution STiMacro mais aussi sur la surface web ou sur la PC, par exemple. Et enfin, la solution de la solution TGFX qui est maintenant complètement partie de l'écosystème STiMacro. Une solution de l'interview de la solution TGFX propose de détruire des formes basiques comme des lignes, des cercles, des formes customes. Cela permet aussi d'appliquer une rotation de 3D et de 3D mais toujours de maintenir un point minimal. Et cela permet aussi de créer des contrôles customes par augmenter ou modifier l'existence de réjet ou par combiner l'existence de contrôles avec des fonctionnalités customes. Cela inclut aussi des algorithmes d'advance qui sont de deux types. La première est un algorithme qui peut déterminer exactement quelle partie de l'élément graphique est visible ou pas. Et autre chose qui peut déterminer quelle partie de l'élément doit être réjouée pour un frame rendu. Et l'envers de l'élément graphique est optimisé pour un load de minimum minimum et un footprint de mémoire. Bien sûr, cela also provides un développement d'environnement qui signifie d'un editor d'interface qui inclut un simulateur PC et le soutien de plusieurs environnements de développement intégrés. Les idées. La solution de la solution c'est que c'est un framework qui prend des avantages de l'approche orientée qui permet de minimiser l'élément et le footprint flash à l'allocation de la mémoire statique. Il peut aussi introduire un approche de design de model ViewPresenter que nous verrons en détail dans quelques slides et qui provides un split clean entre l'application state, l'interface de l'usage et le hardware. Et il y a un approche d'interface flessible sur les SDM32 MCU même les ones qui n'ont pas intégré l'accélérateur hardware pour le graphique. C'est-à-dire que, par défaut, la libraire graphique, la libraire TouchJFX utilise des interfaces génériques d'exemple pour le bloquer d'une image d'autre. Par défaut, l'implémentation est pure de l'implémentation mais si l'implémentation est remplacée par des calls pour l'application Chroma. Et l'idée est la même avec le support Arthos qui n'est pas mandatarié. Mais la libraire graphique utilise une interface spécifique qui peut être implémentée avec 3 Arthos calls pour la semaphore. Ou l'approche custom utilise une variable globale pour implémenter le bloc mécanisme. Le support TouchJFX provoque support pour plusieurs types d'interfaces de displays including DPI, DPI et DSI. Mais en fait, il n'est pas aware d'une actuale connexion de cette interface. Tout le besoin est un moyen de refraîner quelles que la connexion est derrière. On verra aussi dans l'implémentation HL. Et il supporte 1 bit par pixel, 24 bit par pixel des calls à displays. Il supporte aussi plusieurs stratégies de frambuffer. Tout d'abord le frambuffer peut être placé à l'intérieur ou à l'extérieur. Et il supporte simple, double et aussi partie de frambuffer. La stratégie de frambuffer c'est de ne pas avoir dédicé l'interfacile mémoire mais seulement quelques lignes. Et le library graphique peut utiliser seulement ces quelques lignes pour refraîner un écran en faisant plusieurs passes. Mais ceci est fait interne dans le library. L'utilisateur déclare seulement le nombre de frambuffer disponible. L'utilisateur de frambuffer est aussi un moyen de réduire le nombre de frambuffer. Parce que dans ce cas on ne store pas 16 bits de pixel mais seulement 8 bits. Ces 8 bits sont des indexes utilisés pour retirer les valeurs de la pixel dans le lookup table. Et le current à l'accélération utilise Chromart IP qui est installé dans plusieurs ST MCUs pour la opération de couleur Bitmap, la opération de bleu dans RGB, 16 bits 24 bits et même 32 bits. Et aussi le format A4 et A8 pixel que sont le lookup table utilisé pour le texte. Et les filles et les bleus sont faits sans alpha blending. Donc la solution TogGFX peut être splite dans 3 blocs principaux. Le premier bloc sera le designer TogGFX. Ce que vous voyez c'est ce qu'il y a de l'éditeur avec l'automatique C++ code generation et un embelli PC simulator. Puis le toggfx engine qui est l'actual library le toggfx engine qui processe l'endurance de chaque frame qui est composée d'un algorithme efficace pour minimiser le nombre d'pixels. Et ça fait plein de utilisation quand ils sont disponibles de l'IP graphique. Et finalement le toggfx generator qui est le nom c'est le tuggfx plugin On peut trouver plusieurs noms pour celui-ci Il peut être appelé le toggfx generator ou le toggfx plugin C'est un nombre différent pour le même bloc. Et ça fait que le toggfx est complètement compatible avec le sd ecosystem. Et ça aussi supporte le sdm32 cube IDE sdm32 C'est une idée éclipse qui vient de la fusion de Atolic et des idées dans cette présentation nous nous concentrons sur le toggfx designer et le toggfx engine Nous reviendrons le toggfx generator dans une présentation séparée sur le sdm32 ecosystem pour le toggfx mcu Le toggfx designer Le designer c'est ce qu'il y a ou ce qu'il y a c'est ce qu'il y a Vous vous portez des éléments et le code C++ est créé pour vous pour le layout dans le background Il y a aussi tout l'image et le texte conversion dans le code C parce que tout le texte chaque caractère que vous voulez utiliser dans votre démon dans votre layout sera converti dans un glyph Le glyph est une image, une représentation d'un caractère et tout cet image doit être converti dans un table C pour être utilisé et installé et même si le code C++ est automatiquement créé en regardant le layout le source code et la plupart du temps il s'agit de l'expérience et de la customisation c'est la différence entre le folder générité vers le folder graphique le folder générité est un set de files et le interface graphique est la partie de l'usage et la partie de l'usage l'utilise de la classe de la folder généritée et c'est là que vous mettez votre propre logique tous les éléments qui ne sont pas supportés dans le designer parce que tout ne peut pas être fait dans le designer vous devez externer le code qui est généré au-delà de le designer et le touch-e-fisanner peut aussi ménager un sheet Excel pour tous les textes et les textes qui sont référentes dans l'application c'est aussi là où vous pouvez trouver tout le support de l'utilisation qui peut-être importe automatiquement un nouveau langage dans un de l'automatique et c'est une seule solution standalone pour l'installation ST c'est-à-dire que presque tous les kits de développement ST c'est-à-dire que les kits de discovery et l'évaluation sont supportés par des templates d'application les templates d'application sont toutes les configurations d'un kit de développement ST pour initialiser l'application photographique tout ceci est connu pour les kits de développement ST et donc les templates d'application contiennent toute cette configuration déjà prémée pour être utilisé directement dans le designer et il y a aussi un outil embêté dans le designer qui permet de créer de l'application d'application un prototype de la layout graphique de l'interface construis-le dans le designer et même programmé par le programmer Q mais c'est transparent dès que le programmer Q est installé sur votre PC donc vous pouvez créer l'interface graphique construis-le et cela évoque une fast design iteration grâce à l'interface PC parce que l'application sur le bord peut être assez longue vous pouvez ensuite faire un débug sur l'interface PC pour voir si vous êtes satisfaits avec votre interface graphique d'interface et ensuite, quand vous avez fait l'interface de l'interface il y a aussi une application multi-screen et il y a aussi des végettes skins donc vous avez dark skins light skins donc c'est un set de végettes qui ont la même apparence et aussi supportent la définition d'interactions on verra ce que l'interaction veut dire c'est généralement un trigger donc on clique sur le bouton un action qui est un changement à l'autre écran et cette interaction peut aussi être programmée dans le design et il y a aussi un outil custom création qui est intéressant pour un set de végettes qui doit être refitté sur plusieurs screens on verra aussi la présentation en termes de l'idée l'idée de l'interaction est supportée par toutes les outils de l'application il y a aussi des outils de support et le target c'est que tous les outils de l'application sont migrés pour que l'idée soit supportée et que l'idée soit supportée par QBemix on reviendra à l'avenir le chaine de PC Simulator utilise un gnu pour Windows la chaine de GCC et elle est aussi offerte pour que vous puissiez débugir la version de PC Simulator de votre interface graphique dans le projet Visual Studio le designer d'AJF peut aussi être utilisé en command line c'est-à-dire que tous les boutons sont présents dans le designer donc le target, le code généré et le simulateur peuvent être launchés par un tool command line qui peut être utile pour faire le développement de la automation donc le canvas c'est le main screen d'un designer de TGFX donc en milieu vous avez la vraie screen édite la droite, la partie gauche de la window est la liste de tous les rejets qui sont disponibles dans l'édit le deuxième tab représente les screens qui sont déjà défis avec les rejets qui sont à l'intérieur donc ici c'est le demo qui est disponible dans le designer TGFX qui est appelé pool control il a deux screens et on peut contrôler la lumière du pool et la température du pool le dernier tab est pour le container custom on verra en suivant comment il fonctionne sur la droite de la screen on peut voir ici tous les attributes de l'élément graphique donc ici vous pouvez voir le nom, la location et l'image qui est associée donc les rejets sont assez nombreux vous avez des formes basiques les rejets pour exemple, c'est principalement utilisé pour définir le background de la screen vous pouvez avoir des simple lines des cercles, des formes aussi un set de boutons avec rejets avec ou avec un texte et complètement flexibles et cette liste de rejets évolue à chaque release TGFX donc c'est le statut de la 4.13.0 version dans la prochaine version qu'il y a de plus de rejets donc vous avez aussi des images des rejets animés des rejets progrès aussi et des containers prédefined donc vous avez plusieurs types de containers quelques pour faire des listes scrolls scrolls wheel qui est la même liste scrolls mais avec un effectu de wheel donc c'est le ici vous avez la sélection qui bouge de droite à droite ici la sélection est toujours dans le milieu n'oubliez pas que tous ces rejets sont offerts en source code dans le TGFX installation folder donc si vous voulez étudier le comportement spécifique et vous avez aussi quelques rejets clairs et un texte à l'arrière qui est nécessaire pour définir un type de texte concernant le rejet custom qu'est-ce qui pourrait être l'utilisation d'un container custom donc dans cet outil de création vous pouvez par exemple ici j'ai défendu un set de 3 boutons donc c'est la prochaine prévue qui appartient à chaque de mes screens ça peut faire sens dans l'application et je ne dirais pas à chaque screen de mes 3 boutons je vais définir un container custom que je vais inclure dans chaque de mes screens et notez que quand vous définissez un container custom ici, ce nom appartiendra dans la liste de rejets un rejet disponible vous pouvez utiliser la feature de C++ comme je l'ai dit les rejets sont tous offerts donc si vous voulez customiser un rejet vous pouvez juste impliquer dans le C++ tous vos comportements spécifiques et plus de rejets sont disponibles sur le github représentateur c'est appelé Tadjfx Open Repository ici, vous pouvez trouver plusieurs types de rejets graph, par exemple ou un rejet carousel c'est un exemple de l'implémentation spécifique de rejets custom ça peut être un base pour vous les interactions peuvent être aussi installées dans le Tadjfx et complètement installées dans le Tadjfx l'interaction est un trigger le trigger peut être un clic de bouton ou une autre interaction pour exemple une action est acte sur un rejet donc évoquer un rejet ou aller à la prochaine mais ça peut aussi être appelé ce source code, ce C code en ce cas, si vous appelez une fonction, par exemple il va créer le body de fonction mais vous devez assurer l'implémentation actuelle de la fonction pour que vous puissiez mettre votre propre behavior en ce cas, cette interaction ne sera pas complètement installée dans le design partie de cela sera faite dans votre idée external et si vous utilisez le checkbox, vous pouvez trigger une autre interaction tout ça, en fait vous avez déjà découvert, normalement si vous avez fait le premier, le très premier endzone sur le Tadjfx designer le behavior custom est ensuite édité dans le designer dans votre idée préférée le designer aussi donne l'image-management dans ce panel vous pouvez voir toutes les images qui sont importées dans votre démo dans votre layout et pour chaque color format par exemple ici vous pouvez sélectionner l'image format, par défaut c'est peut-être le même que l'application mais cela peut être réduit en utilisant un format de lookup par exemple, mais ensuite vous pouvez réduire, bien sûr aussi le nombre de couleurs qui peuvent être displays donc cela doit être utilisé dans le carenement le panel de texte management est le endroit où vous pouvez importe toutes les types de deux types de fonds ici c'est un fonds Verdana qui est importé avec des sizes et vous pouvez aussi limiter l'application du caractère par exemple, ce fonds est utilisé pour le display de température et le display de température est dépendant du sensor de température qui est seulement retiré à l'époque mais vous devez toujours dire je dois displayser ce caractère pour la température et le caractère serait seulement un caractère numérique de 0 à 9 donc c'est ici que vous vous dites ok, pour ce fonds spécifique qui est utilisé pour la température vous verrez transformer les nombres 0 à 9 de la police Verdana dans les sizes 45 et de cette façon vous n'arriverez pas l'entière police Verdana convertir, l'entière police Verdana tous les caractères mais seulement celui que vous utiliserez pour la température et pour l'older vous utilisez seulement si vous avez un texte où il y a une température vous allez seulement prendre les lettres, les caractères du monde de température et convertir-les en deux glyphes c'est fait automatiquement ici vous spécifiez la range la valeur possible de cet area de texte et vous pouvez aussi ici ajouter des langues en cliquant sur ce bouton il y aura une nouvelle colonne avec la translation de chaque zone de texte qui est définie dans le layout enfin, le designer aussi a choisi un panel de configuration de projet dans lequel vous pouvez mettre des spécifiques, je ne vais pas reviewer toutes les possibilités parce qu'ils ne sont pas tous relevantes à l'abord ici, dans la section de la build vous pouvez voir toutes les commands qui sont publiées quand vous cliquez le target run ou le simulator run qui est assez intéressant si vous voulez customiser la façon dont vous lancez le build si vous voulez utiliser d'exemple un autre mac file vous pouvez ici spécifier que lorsque l'accompagnement pour le simulator ou pour le target je veux utiliser un autre mac file peut-être pour une accélération différente et c'est aussi le place où vous définissez la configuration de la configuration si vous voulez toutes les images vous avez ajouté pour être en format local donc en 8 bits vous serrez ici le format image de l8 rgb888 mais bien sûr, comme on le voit dans le panel image il peut être installé pour toutes les images le framework le solution réalise sur le modèle view présentateur software design pattern c'est un moyen moderne d'utiliser l'interface juste comme iOS, Android etc c'est une façon structurelle de séparer le code en deux classes en faisant le code beaucoup plus efficace en termes de utilisation, maintenance et de qualité de code l'idée est de séparer l'interface graphique et le layout donc la communication avec le système hardware est séparée de la logique et les graphiques et c'est facile de développer et de tester indépendamment si vous définissez un interface commun qui dit que quand ce bouton est cliqué puis la température doit être retirée du système puis vous n'avez pas à retirer la température mais vous dites je vais appeler la fonction de la température et pour tester l'interface de l'interface cela peut être fait sans l'actualité c'est une façon de séparer l'implémentation hardware de l'interface graphique et le layout cela permet d'utiliser beaucoup de codes qu'est-ce que l'application l'interface application est un set de screens plusieurs screens chaque screens est composée d'un groupe de widgets et ce groupe sera la vue de notre modèle de vue présentateur et leur logique représente par le présentateur donc on a le groupe de widgets qui est la vue qui est visible et la logique derrière c'est que la logique est tendue par le présentateur et il n'y a que un écran actif à la fois pour l'usage de l'interface donc si vous définissez 10 screens dans votre design dans le design de l'interface l'usage de l'interface représente seulement l'horreur de vos screens donc ce n'est pas le temps la concentration de mémoire est fixée par l'écran de votre layout donc l'événement de la vue de modèle pour le présentateur si quelque chose s'occupe puis le modèle est notifié et il n'y a pas de vue direct il déjà dit le présentateur le présentateur actif et puis le présentateur en regardant le présentateur actif de la statue il notifiera le vue pour référer la partie du display pour évoquer ou pour activer donc le même l'autre façon quand quelque chose s'occupe donc une interaction d'usage par exemple il ne peut pas activer directement il va juste au présentateur qui va décider qui va procéder et apporter le modèle et le vue parce que quelque chose peut apporter le vue directement et le modèle est la seule interface avec le hardware et l'application de la back-end donc en regardant le modèle il n'y a que un modèle dans une application c'est ce qu'on appelle le single-tune donc il n'y a que un instant de le modèle et il s'occupe les états non actifs c'est-à-dire que si vous avez des données, des comptes des variables qui doivent être séparées entre toutes les screens leur valeur sera installée dans le modèle nécessairement parce que c'est la seule instance qui est disponible dans toute la vie du temps de l'application un écran et vous parliez qu'il n'y a que l'institut quand l'application est active d'ailleurs, toutes les souvenirs liées à cette paire de classes le présentateur et le vue sera libre donc c'est l'interface avec le hardware dans les événements et il a un point de vue pour le présentateur actif le vue comme nous l'avons vu l'enquête de l'enquête de l'enquête de l'application et l'interface avec le présentateur associé pour relayer les événements qui s'appliquent sur la screen et le présentateur a reçu les événements de tous les modèles et les vies et a décidé de prendre l'action en parlant de terminologie mais pas seulement c'est la même terminologie dans presque tous les supports de l'enquête un drawback est le basic UI de l'enquête donc il y a des attributes basiques comme la position, la taille est-ce visible ou pas donc ce sont les attributes qui sont shared par n'importe quel élément qui est drawn sur le display les widgets interviennent de cette classe drawback donc nous parlons de classes ici et peut-être être drawn dans le frame buffer être un drawback est le seul moyen d'être drawn sur la screen par exemple une image, une texture mais une image a plus des attributes que un simple drawback il a un lien à un table qui contient la pixel de l'image qui doit être refreshée donc en ce cas, en drawing l'image, on doit avoir cette position, sa taille mais aussi avoir tout le pixel qui doit être redrawed pour redrawer le widget et les containers ne sont pas drawbacks il y a une collection de widgets et des containers mais elles ne sont pas drawn mais les enfants sont donc vous pouvez draw un containers mais quand vous draw un containers vous allez en fait demander de draw tous les widgets que cela contient et les enfants sont ensuite positionnés dans le containers et le target est aussi introduit des features mix-ins c'est le moyen de associer des behaviors spécifiques pour les draws une image dans un image cliquable par défaut, les boutons sont cliquables mais l'image n'est pas cliquable mais vous pouvez ajouter un listener cliquant pour une image et pour un drawback il y a aussi un animator qui permet de mettre un effet pour un drawback un animator, un drawback donc tous ces mix-ins c'est juste pour introduire le terminologie d'expressif que c'est un moyen d'adverir des behaviors spécifiques puis on va rapidementламper le cap de la noyer de l'absaction hardware parce qu'on va dans le détail dans l'écosystème présentation c'est un sets de interfaces de l'interface de l'interface qui connectent les librariesiques de touch donc le library tests à quel point il est connecté, il ne sait pas comment s'occuper d'un touchepanel par exemple, mais il y a un set de fonction qui doit être donné à ça, pour que ça puisse travailler avec ça. Donc, si nous prenons l'exemple d'un touchepanel, le library de touchefx expecte d'y retirer la position de l'arrière touchée d'une fonction simple. Donc, on utilise internement cette fonction simple et cette fonction simple doit être impliquée par l'utilisateur, selon lequel l'écran est connecté à l'arrière. Donc, c'est aussi valide pour le système d'opératisation. Comme je l'ai dit précédemment, le library de touchefx a besoin d'un mécanisme logique, comme le semaphore. Donc, il réalise sur une interface générique que cette fonction logique est allée à l'utilisateur pour être impliquée et c'est la même pour la layer d'absorption de l'HAL, qui est plus complexe. Et l'une des fonctions les plus importantes de cette fonction c'est la fonction nommée Flush Frame Buffer. Et c'est la façon dont le Flush Frame Buffer va être transmetté à l'enquête. Cette fonction est spécifique à l'enquête de l'enquête de l'enquête et à l'interface de l'enquête de l'enquête de l'enquête. Donc, il y a des défauts d'implementation, qui sont généralement d'implementation éclatée. Et ensuite, on va le remplir automatiquement en utilisant un template d'application parce que nous savons quel dispositif est connecté à un kit de développement. Si vous utilisez le Qubemix, comme on le voit dans l'écosystème de l'implementation, vous avez besoin de l'implementation parce que le Qubemix ne peut pas savoir quel dispositif est connecté à votre MCU. Il y a aussi un Flush Frame Buffer, qui est utilisé pour un Flush Frame Buffer, mais je ne vais pas le mentionner, afin de vous tenir en compte que ces types d'interfaces sont défis. Mais, pour le premier coup, ce n'est pas un mandatarié pour vous. C'est le même pour le contrôleur LCD et le contrôleur touché que je vous ai mentionné. Et le contrôleur de l'emploi physical, c'est un set de fonctions élémentaires qui sont nécessaires pour le contrôleur de l'emploi physical. Et ensuite, pour vous, pour imprimer cette fonction correctement. C'est un overview général de l'implementation d'application. Donc, la partie corpore est automatiquement générée et c'est le set d'interfaces que je vous ai mentionnée. Vous pouvez voir ici le présentateur, le scénar, et chaque scénar a une visée de l'implementation d'un scénar. Et ici, vous pouvez voir le jouable sur lequel le bouton génére et sur lequel votre custom jouable va générer aussi. Et le modèle est automatiquement défini sur le côté de l'utilisateur et peut être updaté directement par l'utilisateur. Ce n'est pas updaté. Ce sont des clés basées qui ne sera pas updaté par l'utilisateur. Et enfin, nous allons rapidement entrer dans le 3rd JFX en ligne. Donc, le 3rd JFX en ligne est délivré en binary. C'est vraiment le corps de la library de 3rd JFX. Donc, c'est délivré en binary. La main raison est parce qu'il ne doit pas être modifié. Si on laisse le custom modifié, ça pourrait permettre d'avoir un résultat inutile dans la bibliothèque générale. Donc, c'est mieux de garder ça en binary. Donc, c'est responsable pour le frame rendering. Il s'agit d'un compte pour déterminer exactement quel élément doit être rejoint avec l'algorithme occlusion. Donc, l'algorithme occlusion est le moyen de déterminer quel objet est visible ou pas, selon d'autres objets. Si une partie de l'image du background est découverte par le bouton, cette partie découverte ne doit pas être reçue pour être réglée, parce que c'est élevé par un objet. Et l'algorithme d'algorithme qui définit, dépendant de la vie de l'interface de l'utilisateur, si vous avez une image animée, par exemple, seulement l'arrière qui contient cette image de mouvement sera ordinate. Elant sera rejeté dans le buffer de la frame et étend à la display. Le management de buffer de frame est aussi fait, spécialement pour le buffer de la partie de l'interface par le touch FX en Gine. C'est le touch FX en Gine qui est responsable pour couper l'arrière de la frame dans plusieurs passes si le buffer de la frame n'est pas un trompe et le touch FX en Gine est aussi structureux pour en faire du utilisé du hardware de la S1032 quand elles sont présentes. donc le Chromart, le GPEG codec, et même le point de flottage que vous avez besoin quand c'est présent. Il peut gérer avec ou sans le système d'opératage en temps réel, selon que vous avez donné les mécanismes de logement que nous devons travailler. Et comme vous pouvez le voir dans le next slide, il a une faute-prime basée, et surtout une allocation dynamique déterminée. Oui, il y a une allocation dynamique déterminée, mais c'est dans un certain rang de mémoire. Comme je l'ai dit, le TGFX générateur, le designer TGFX, génére un code et génére une consommation de mémoire, selon la faute-prime basée de tous les screens qui ont été défis. Donc, il y a un bloc de mémoire qui sera réservé pour allocation de mémoire dynamique, mais il sera fixé en temps de compétition. Il ne peut pas être plus grand en temps en temps. Donc, un overview de ce qu'il y a besoin pour l'application graphique. Donc, on a sur un côté le rang, donc il peut être interne ou extérieur. Et le flash. Donc, le flash est pour tout le data que doit être retenu. Par exemple, tout les bitmaps d'input, le code de l'abri et l'application, toute l'instruction de l'application. Sur le rang, ils sont utilisés seulement en temps de compétition, et quand le bord est terminé, il est perdu. Donc, le minimum de la taille est 20 kilobytes pour l'usage flash. C'est pour le TGFX framework. Il ne peut pas être moins, en fait, selon la taille de l'application graphique. Et sur le rang de la taille, il peut aller de 10 à 20 kilobytes, selon la taille de la taille qui a été définie en utilisant un 3R TOS, et bien sûr, selon les structures de la taille utilisées dans l'application. Régardant l'application, il peut aller de 1 à 200 kilobytes d'usage flash pour la définition de l'application graphique et pour le rang, il peut aller de 1 à 15 kilobytes pour la partie du budget qui est dynamiquement allocée. Et la grande partie, c'est pour l'application pour les maps et glisses d'input, et tout le texte qui est défini. Cela peut aller de 1 à 20 kilobytes et encore plus, selon la compétition de l'interface de l'usage. C'est pour cela que l'usage flash est un mandatorie pour la plupart de l'interface graphique. Si vous avez des très simples, vous pouvez même aller sans external flash parce que vous n'avez pas besoin d'input map, vous pouvez seulement faire des boutons de couleur. Dans ce cas, il n'y a pas de map map. Et le buffer de l'application sur le rang est aussi si vous utilisez un singul ou un buffer double, je ne parle pas du buffer partial. Il est un pour W QVGA display de 16 bits. Il signifie 480 x 272 pixels multipliés par 2 bytes. Il multiplie par 2 bytes pour le buffer double. Donc, c'est 500 kilobytes fixés sur le SD-RAM. Donc, aussi, sur le H7B que l'on utilise dans ce workshop qui a 2 megabytes internal RAM, généralement, l'external SD-RAM est nécessaire pour le frame buffer storage. Donc, toutes ces applications, les green boxes, sont très dépendantes de l'application. Si vous avez seulement 1 écran, vous serez bien sûr à la fin de la range. Mais vous pouvez aller au-dessus du maximum, qui est seulement dans l'éducation ici. Vous pouvez aller au-dessus rapidement avec plusieurs screens et beaucoup de widgets. C'est la fin de cette présentation. Merci beaucoup pour votre attention.