Home » Projects » Graphical library MGL » Cíle - Graphical library MGL

Graphical library MGL

Cíle

Při návrhu knihovny MGL jsem sledoval tyto cíle:
  • Zjednodušit vytváření aplikací používajících grafické výstupy

    Všechny standardy grafických rozhraní sice nabízejí široké možnosti, pro jejich obecnost ale bývá jejich používání složitější. Navržená grafická knihovna by měla situaci zjednodušit a umožnit tak rychle, bez studia manuálů vytvořit jednoduché grafické aplikace, například pro studijní účely a demonstraci algoritmů. Příkladem může být aplikace která počítá fraktály. Vývojář této aplikace může fraktál počítat v systémové paměti a pomocí mé knihovny MGL jej potom bez znalosti problematiky grafických rozhraní snadno a na kterékoliv platformě zobrazit.

  • Zachování přenositelnosti

    Výhodou použití OpenGL je právě přenositelnost aplikací, bez nutnosti zasahovat do zdrojových kódů aplikací pro zprovoznění na určitých platformách. Toto je možné vzhledem k tomu, že knihovna MGL vystačí s voláním OpenGL a GLUT.

  • Rozšíření možností OpenGL

    Rozšíření je primárně určeno pro nejčastěji používané oblasti 2D grafiky, kterou je

    • práce s obrazovými mapami
    • práce s fonty,
    • podpora běžných grafických formátů pro použití s OpenGL.
    Tyto možnosti OpenGL pro svou obecnost nenabízí. Přesto v mnoha aplikacích jsou tyto možnosti potřeba. Vývojáři jsou proto nuceni psát vlastní knihovny.
  • Výrazné usnadnění použití 2D grafiky oproti OpenGL

    Pomocí volání standardních knihoven jazyka C, OpenGL a jeho standardních nadstaveb GLU a GLUT, lze samozřejmě určitou konečnou sekvencí příkazů dosáhnout stejných výsledků jako při použití knihovny MGL. Toto ovšem není možné bez poměrně dobré a široké znalosti tohoto rozhraní, což není nejjednodušší záležitost. Knihovna OpenGL (bez rozšíření GLUT a extensí) totiž obsahuje přes 250 programových funkcí (!). Situaci příliš nezachraňuje ani to, že OpenGL je vzhledem k ostatním rozhraním dokumentován velmi dobře a je pro něj k dispozici mnoho ukázkových příkladů. Naproti tomu, s použitím knihovny MGL bude možné stejné výsledky dosáhnout s minimálním úsilím a počty napsaných řádek zdrojových textů, a dokonce bez samotné znalosti jediného příkazu OpenGL.

  • Podpora vývoje uživatelského rozhraní široké rodiny 3D grafických aplikací

    Velká většina těchto aplikací vyžaduje pro určitou interakci s uživatelem, především pro tvorbu uživatelského rozhraní, používat mnohé prvky z dvourozměrné graficky. Jsou to například texty, kurzory, ovládací prvky a nabídky menu (2D overlays). Pro tvorbu takovýchto aplikací je nutno obvykle vytvořit vlastní doplňující programové funkce, protože OpenGL tyto možnosti neposkytuje. Motivem mé knihovny MGL je usnadnění vývoje těchto aplikací nabídnutím programových funkcí vykreslujících tyto prvky. Navržená knihovna bude podporovat společné použití takovýchto aplikací a 2D grafických funkcí knihovny MGL. Přitom nebude nutné přizpůsobovat zdrojové kódy takovýchto aplikací knihovně MGL.

  • Vysoký výkon

    Pro vytváření obrazu nabízí OpenGL různé funkce. Tyto funkce se ovšem liší svými možnostmi a výkonem.  Různé verze OpenGL (stávající 1.0, 1.1 a 1.2) se navzájem liší svými možnostmi. Novější verze jsou zpětně plně kompatibilní se staršími. Je tedy garantováno, že všechny příkazy OpenGL z nižších verzí budou pracovat i s novějšími verzemi. Využitím možností nových verzí ovšem můžeme znatelně zvýšit výkon. Knihovna MGL bude vycházet z možností jednotlivých verzí, případně i extensí knihovny OpenGL pro zajištění co nejvyššího možného výkon. Knihovna MGL na konkrétním systému zjistí verzi, případně možnosti nabízené na použité implementaci OpenGL. Podle toho použije co možná nejefektivnější řešení.

Previous : Úvod
Next : Uživatelé