abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 16:55 | Nová verze

Byla vydána verze 1.0 klienta F-Droid určeného pro instalaci aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie), alternativy k Google Play, nabízející pouze svobodný a otevřený software. Podrobnosti v přehledu změn [Hacker News].

Ladislav Hagara | Komentářů: 5
včera 00:55 | Nová verze

Po téměř 13 měsících vývoje od verze 0.11.0 byla vydána verze 0.12.0 hardwarově nenáročného desktopového prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklého sloučením projektů Razor-qt a LXDE. Přehled novinek v příspěvku na blogu.

Ladislav Hagara | Komentářů: 9
21.10. 12:33 | Zajímavý software

Článek ne Medium představuje nejnovější stabilní verzi 2.0 svobodné decentralizované mikroblogovací platformy a sociální sítě podobné Twitteru Mastodon (Wikipedie). Detailní přehled novinek na GitHubu [Hacker News].

Ladislav Hagara | Komentářů: 0
21.10. 06:00 | Komunita

V Praze na půdě Elektrotechnické fakulty ČVUT dnes probíhá RT-Summit 2017 – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt. Přednášky lze sledovat online na YouTube.

Ladislav Hagara | Komentářů: 0
20.10. 14:33 | Zajímavý projekt

Blender Animation Studio zveřejnilo první epizodu z připravovaného animovaného seriálu The Daily Dweebs o domácím mazlíčkovi jménem Dixey. Ke zhlédnutí také ve 3D s rozlišením 8K.

Ladislav Hagara | Komentářů: 0
20.10. 12:34 | Komunita

Aktualizovanou počítačovou hru Warhammer 40,000: Dawn of War III v ceně 39,99 eur běžící také na Linuxu lze o víkendu na Steamu hrát zdarma a případně ještě v pondělí koupit s 50% slevou. Do soboty 19:00 lze na Humble Bundle získat zdarma Steam klíč k počítačové hře Sid Meier's Civilization® III v ceně 4,99 eur běžící také ve Wine.

Ladislav Hagara | Komentářů: 0
20.10. 00:22 | Nasazení Linuxu

Společnost Samsung oznámila, že skrze dokovací stanici DeX a aplikaci Linux on Galaxy bude možno na Samsung Galaxy S8 a S8+ a Galaxy Note 8 provozovat Linux. Distribuce nebyly blíže upřesněny.

Phantom Alien | Komentářů: 19
19.10. 23:55 | Komunita

Společnost Purism na svém blogu oznámila, že její notebooky Librem jsou nově dodávány se zrušeným (neutralized and disabled) Intel Management Engine (ME). Aktualizací corebootu na již prodaných noteboocích lze Management Engine také zrušit. Více v podrobném článku.

Ladislav Hagara | Komentářů: 2
19.10. 21:44 | Nová verze

Organizace Apache Software Foundation (ASF) na svém blogu slaví páté výročí kancelářského balíku Apache OpenOffice jako jejího Top-Level projektu. Při této příležitosti byl vydán Apache OpenOffice 4.1.4 (AOO 4.1.4). Podrobnosti v poznámkách k vydání. Dlouhé čekání na novou verzi tak skončilo.

Ladislav Hagara | Komentářů: 8
19.10. 19:22 | Pozvánky

Již příští týden - 26. a 27. října se v Praze v hotelu Olšanka odehraje OpenWRT Summit. Na webu konference naleznete program a možnost zakoupení lístků - ty stojí 55 dolarů. Čtvrtek bude přednáškový a v pátek se budou odehrávat převážně workshopy a meetingy.

Miška | Komentářů: 1
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (10%)
 (0%)
 (0%)
 (1%)
 (75%)
 (13%)
Celkem 206 hlasů
 Komentářů: 8, poslední včera 23:02
    Rozcestník

    Nuklear 1.0 - revoluční GUI knihovna

    Micha Mettke po téměř roce a půl vývoje vydal verzi 1.0 revoluční "neknihovny" Nuklear pro precizní tvorbu GUI, a to extrémně jednoduše. Na 15000 řádcích jediného hlavičkového souboru v ANSI C pod MIT naleznete garantovaně multiplatformní Immediate-Mode GUI. Je libo plně funkční a multiplatformní GUI file browser na cca 800 řádcích C? A nebo raději pěkný node editor na cca 600 řádcích?

    20.4.2016 07:47 | dumblob | Zajímavý software


    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    20.4.2016 08:29 gsnak | skóre: 20 | blog: gsnak
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Kus kodu z dema pre xlib vyzera takto:
            XClearWindow(xw.dpy, xw.win);
            nk_xlib_render(xw.win, nk_rgb(30,30,30));
            XFlush(xw.dpy);
    
    Teda ja neviem ale mne to portabilne moc nepride, ved tam ma 4 implementacie (alegro, sdl, x11, glfw) a kazda ma iny kod dema, napr. SDL vyzera ten isty kod takto:
     {float bg[4];
            nk_color_fv(bg, background);
            SDL_GetWindowSize(win, &win_width, &win_height);
            glViewport(0, 0, win_width, win_height);
            glClear(GL_COLOR_BUFFER_BIT);
            glClearColor(bg[0], bg[1], bg[2], bg[3]);
            nk_sdl_render(NK_ANTI_ALIASING_ON, MAX_VERTEX_MEMORY, MAX_ELEMENT_MEMORY);
            SDL_GL_SwapWindow(win);}
    Dalej, demo kalkulacka - prvych 300 riadkov kodu su same opengl prikazy, potom nasleduju nk_* prikazy sem tam prelozene riadkom gl prikazov, a konci to mixom gl a nk prikazov. Neviem ale ja si malu chutnu GUI kniznicu predstavujem inak.
    DOGE: DE7q1kxqvoFek7UGWBWBt47QWJTRBqVNLL
    20.4.2016 08:59 Adam
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    To je to, čeho jsem si taky všiml. Ale zase na druhou stranu mi to nedá, abych se v tom nepohrabal. Z popisu na stránkách jsem pochopil, že portabilitu nejspíš chápou jako možnost využít tuhle knihovnu v různých frameworcích při použití různých render backendů. Čili jedna ze základních vlastností je, vůbec neřešit grafiku, ale naopak se přizpůsobit tomu, co programátor/program požaduje.
    20.4.2016 12:24 MadCatX
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Asi tak. Jde o to, že pokud si chce někdo napsat program s GUI a použít třeba jen X11, nemusí při použití Nuklearu ručně řešit, jak nakreslit zakulacené obdélníky, barevné gradienty a podobně. Moc use-cases to asi mít nebude, ale zrovna mně by se to před pár lety na jednu blbůstku celkem šiklo;)
    mirec avatar 20.4.2016 13:37 mirec | skóre: 31 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna

    Práve na nejaké embedded / minimalistické zariadenia si to viem celkom predstaviť.

    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    Rezza avatar 20.4.2016 10:16 Rezza | skóre: 25 | blog: rezza | Brno
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Opravdu me neprijde extremne jednoducha knihovna, kde pro jednoduchou kalkulacku na par radku v cemkoliv nekdo resi shadery. Naopak krasna ukazka na QML by to byla :).
    22.4.2016 00:34 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Ty ukazky ukazuji reseni, ktera jsou rychla a zaroven ukazuji co nejvice moznosti nastaveni Nuklear apod. Ten kod by sel o dost zjednodusit a abstrahovat.

    Ale diky za postreh, protoze chybi demo s kreslenim na canvas RGB pixelu, ktery by demonstroval built-in kreslici schopnosti Nuklear. Ano, Nuklear ma implementovane vsechny potrebne vykreslovaci funkce, takze neni potrebny vlastne vubec zadny backend. Bez backendu bude vsak vystupem pouze buffer RGB pixelu.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    20.4.2016 10:19 Ivan2 | skóre: 4
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Vsechno v jednom souboru? To mi pripomina OTL http://otl.sourceforge.net/. 32K radek v jednom headeru a z toho 5K radek jsou definice prepocesoru.

    Dokud to nezacne segfaultovat anebo tam clovek nepotrebuje pridat mutex tak je to moc uzitecna knihovna. Jakmile ale narazite na problemy tak radsi rychle od toho.
    22.4.2016 00:24 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Viz. komentar #24 ohledne uprav a debugovani.

    Co se mutexu tyce, tak je Nuklear pripraveny pro paralelni prostredi a pridavani mutexu primo do Nuklear by vubec nemelo byt potreba.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    20.4.2016 10:37 karelI
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Me spis pripada, ze to ma skoro 20 000 radku. Nicmene na 15 by to snadno dostal kdyby odstranil duplicity...
    22.4.2016 00:20 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Pokud by neslucoval samotny kod Nuklear s podpurnymi stb hlavickami (stb_texedit, stb_truetype, stb_rectpack), tak by vysledna hlavicka byla o dost mensi.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    20.4.2016 14:27 unicode
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Podle me to v tom jednom souboru do budoucna stejne neudrzi.
    22.4.2016 00:13 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Nejsou planovane velke zmeny. Jedina zmena, ktera by mohla nastat by bylo pridani nejakych "extremne vysoceurovnovych shaderu", ale to by stejne zrejme bylo resene jako dalsi samostatny header a mozna i samostatny projekt.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    22.4.2016 00:16 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Mimochodem, asi nejlepsi zkusenosti (velice dlouhodobe dlouhodobe a extremne seriozni - napr. letecky prumysl) se single-header pristupem maji tvurci SQLite3. Doporucuji precist par historickych blogpostu a mailu v listu pro uklidneni, ze se vlastne jedna o velice dobry koncept.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    22.4.2016 07:31 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Kdybyste odkázal na nějaký z nich, věřil bych vám více. Takhle spíše budu věřit distributorům, kteří se bundlování vyhýbají jak čert kříži. Co mám zkušenosti s SQLite, tak jediné, k čemu jim je to dobré, je, že pak bezostyšně rozbíjejí sémantiku funkcí, což jsem zažil už mnohokrát při aktualizaci SQLite v rámci stabilní major verze.
    22.4.2016 13:59 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Asi nejznámější diskuze o distribuci SQLite v jednom souboru je vevlákně maling listu o blogovém příšpěvku sqlite’s anal gamation včetně snad všech argumentů obou stran, které jsem kdy slyšel. Pro účely SQLite a Nuklear tedy vyplývá, že toto rozhodnutí je pro uživatele a samotný projekt výhodné.

    Jinak specifickým typem distributora SW (ať jako balíčkář pro distribuce a Windows, tak jako účastník na vývoji různých programů různých velikostí a nasazení) jsem již několik let a bundlování je z mé zkušenosti velká úleva v případě menších či malých programů (např. SQLite nebo Nuklear).
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    22.4.2016 19:57 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Abych předešel nedorozumění, tak k serióznímu použití SQLite i na kritických místech bych rád dodal, že distribuce SQLite v jediném souboru samozřejmě není hlavní důvod úspěchu. Hlavní důvod je vysoce nadprůměrně vysoká kvalita kódu a drsné testování mnoha způsoby testování.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    Tomáš Bžatek avatar 20.4.2016 17:29 Tomáš Bžatek | skóre: 29 | Brno
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna

    No nevypada to vubec spatne!

    Koupim litajiciho tucnaka
    oryctolagus avatar 20.4.2016 19:10 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    To Diablo-like demo je hezké, ale divil bych se, kdyby tím neporušoval nějakej copyright...
    Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
    20.4.2016 19:33 Jardík
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Takže OpenGL ... kdysi jsem koukal na jednu, bylo to ale v C++, taky immediate mode, a bylo to kupodivu rychlé ...
    21.4.2016 23:58 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Vykreslovat muzes cimkoliv, takze zadne OpenGL neni potreba. Klidne si tim kresli UI primo do PNG souboru.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    20.4.2016 21:12 BFU
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Obavam se, ze pokud se ten header naincluduje do vice souboru, dojde k duplikaci symbolu v binarce.
    Josef Kufner avatar 20.4.2016 22:29 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    A včem se to tedy odlišuje od všeho ostatního?
    Hello world ! Segmentation fault (core dumped)
    22.4.2016 00:06 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Viz. Features (zejmena: immediate mode UI, single header, tiny, extremely portable thanks to C89 and fully rendering-agnostic architecture, no hidden state).
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    20.4.2016 22:45 Odin1918 | skóre: 4 | blog: Valhalla
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Implementaci cpat do hlavickoveho souboru? 15000 radek v jednom souboru? Tak se dneska pise software, ktery je oznacen za revolucni? Ja uz jsem mimo it asi opravdu uz dlouho, ten pokrok je opravdu znat.
    21.4.2016 10:14 Adam
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Nedokážu posoudit výhody vs. nevýhody, ale v poděkování autor píše:
    ... and Sean Barret for his amazing single header libraries which restored my faith in libraries and brought me to create some of my own.
    Bližší info od nejspíše zmíněného Sean Barreta zde.
    oryctolagus avatar 21.4.2016 10:30 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Ten člověk zřejmě v životě neslyšel o statickém linkování. Jinak by si ušetřil spoustu práce...

    Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
    21.4.2016 11:59 unicode
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Staticke linkovani v linuxu je nekdy ale pekny zazitek, hlavne pokud nekdo zapomnel na "-fPIC".
    pavlix avatar 21.4.2016 12:08 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Já v tom žádný velký zážitek nevidím, dynamické linkování mi přijde dobrodružnější.
    oryctolagus avatar 21.4.2016 13:46 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Staticke linkovani v linuxu je nekdy ale pekny zazitek, hlavne pokud nekdo zapomnel na "-fPIC".
    No tomu člověku se jedná hlavně o windows, zřejmě.
    Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
    22.4.2016 00:08 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Ano, jedna se o multiplatformni reseni. A o nicem lepsim z pohledu maximalni multiplatformnosti nez single-header jsem jeste neslysel.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    oryctolagus avatar 22.4.2016 12:32 oryctolagus | skóre: 29 | blog: Untitled
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Jaký to má výhody oproti staticky nalinkované knihovně? Vidím akorát nevýhody, např. to těžce neškáluje.
    Existuje 10 druhů lidí: Ti, co nerozumí binární soustavě, ti, co ano, a ti, kteří znají i balancovanou ternární.
    22.4.2016 13:00 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Hlavní výhoda je naprostá nezávislost na kompilátoru, což pro knihovnu, která není určena pouze pro tři nejrozšířenější kompilátory (GCC, LLVM a MSVC) naprosto klíčová vlastnost.

    Se škálováním nevidím sebemenší problém (je triviální zařídit, aby ve výsledné binárce nedocházelo k duplikaci a Nuklear samozřejmě nic neduplikuje).

    Ale mohl jsem výtky špatně pochopit. Pokud jsem je však pochopil správně, tak bych uvítal, aby si všichni nejprve před psaním neopodstatněných výtek přečetli alespoň Readme, protože tyhle maličkosti jsou tam samozřejmě popsané. Ábíčko nám opravdu hodně kleslo :-(
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    pavlix avatar 22.4.2016 13:12 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Hlavní výhoda je naprostá nezávislost na kompilátoru, což pro knihovnu, která není určena pouze pro tři nejrozšířenější kompilátory (GCC, LLVM a MSVC) naprosto klíčová vlastnost.
    RLY? Ostatní kompilátory neumějí kombinovat více céčkovských souborů?
    22.4.2016 13:19 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Neřešíme co kompilátory umí a neumí. Řešíme naprostou nezávislost nuklear.h na kompilátoru. Tedy pokud nechci pro každý pidi kompilátor na světě (a že jich jsou stovky v produkčním nasazení) psát multiplatformní Makefile nebo návod jak daný kompilátor donutit staticky přilinkovat nuklear.h, pak je tohle jediné mně známé řešení.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    pavlix avatar 22.4.2016 13:37 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    K tomu nemám slov. A to jsi před chvílí kritizoval kvalitu komentářů.
    22.4.2016 14:07 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Rád bych zvýšil kvalitu, ale nevím jak jinak vysvětlit rozdíl mezi garantováním plné funkcionality Nuklear pod všemi používanými kompilátory (díky využití základní standardizované vlastnosti jazyka C89 - tedy includování hlaviček) a mezi podporováním vybraného omezeného množství kompilátorů, protože standard C89 nic neříká o standardním rozhraní pro donucení kompilátoru kompilovat tuto konkrétní knihovnu staticky.

    Poraď tedy prosím jak jinak mám tuto problematiku vysvětlovat.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    22.4.2016 11:06 Adam
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Tak jsem si to v rychlosti prošel. Pochopil jsem to takto (body píšu s otazníkem, protože si nejsem zcela jist, že to tak je, nebo že to tak je za všech okolností):
    • základem je vykreslovací smyčka, která se spouští každých x ms?
    • smyčka obsahuje řadu funkcí, kterými se pro každý frame znovu sestavuje celé GUI (buď přímo nebo z cache)?
    • u složitějších GUI s řadou stavů to znamená mít rozvětvené if/else a přidat do GUI to, co je dle stavu potřeba?
    • nutnost překreslení nebo vytažení z cache si řídí knihovna sama (pamatuje si stav proměnných z minulého framu)?
    • vstupy myši a klávesnice si řídím sám a posílám je do kontextu ve formě stisknutých kláves, tlačítek a pozice myši (může se stát, že mezi jedním a druhým framem dojde ke zpoždění během kterého bylo několikrát stisknuto tlačítko a GUI to nepozná)?
    • polohu prvků a jejich velikost je možné nastavit dynamicky (pomocí funkcí pro rozvržení - layout).
    • prvky mají svojí hierarchii, která řídí viditelnost (které prvky jsou nad kterými), (nutnost překreslení), zachytávání událostí ze vstupu?
    • výsledkem volání knihovny je buffer pixel, který si mohu vykreslit kam chci a jak chci?
    • pokud v prvku (například textové pole) uživatel stiskne klávesu a tím dojde ke změně (přidání znaku), výsledkem je změna řetězce obohaceného o nový znak, který se zobrazí až při dalším framu?
    • vzhled prvků lze měnit (vzhled prvků lze načíst z externího zdroje)?
    22.4.2016 12:24 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
  • základem je vykreslovací smyčka, která se spouští každých x ms?
  • Ano, to je jedna z variant. Lepsi reseni je vsak cekat na podnet, ktery muze potencialne zmenit zobrazovany obsah (napr. klavesnicovy/mysovy/joystick/... vstup nebo zmena zobrazovanych dat v real-time grafu, ...) a mit nejaky minimalni cas, po ktery se tyto pozadavky sbiraji a az pote se spusti rendering.
  • smyčka obsahuje řadu funkcí, kterými se pro každý frame znovu sestavuje celé GUI (buď přímo nebo z cache)?
  • Ano. Kesovani je v Nuklear naprosto minimalni, protoze dle testu je sestaveni prumerne komplexnich GUI vyrazne rychlejsi nez by bylo udrzovani cache. Predpoklada se vsak, ze kesovani probiha na strane renderovaciho kodu, ktery si muze docela jednoduse diffovat
  • u složitějších GUI s řadou stavů to znamená mít rozvětvené if/else a přidat do GUI to, co je dle stavu potřeba?
  • Ano. Samozrejme lze pouzit mnoho z vyssich abstrakci - a to ani nemluvim o modernich vyssich programovacich jazycich (skrze bindings). Oproti beznym "retained mode" UIs vsak neni nutne napsat tolik kodu a tak hodne ho abstrahovat a strukturovat.
  • nutnost překreslení nebo vytažení z cache si řídí knihovna sama (pamatuje si stav proměnných z minulého framu)?
  • Ano, od toho je struktura nk_context (pro OOP orientované lidi se jedná o Cčkovou variantu instance třídy s metodami).
  • vstupy myši a klávesnice si řídím sám a posílám je do kontextu ve formě stisknutých kláves, tlačítek a pozice myši (může se stát, že mezi jedním a druhým framem dojde ke zpoždění během kterého bylo několikrát stisknuto tlačítko a GUI to nepozná)?
  • Pokud se využívá tvrdý interval čekání (spánek procesu) a až poté se jednorázově vyčte aktuální stav vstupů, tak ano. Ale tohle dnes téměř žádná I/O knihovna nedělá (ani xlib) a všechny vstupy se bufferují a poté si je samozřejmě jeden po druhém zpracuješ z bufferu. Kromě toho je doporučené na tyhle vstupy čekat (viz. odpověď na první otázku) a nikoliv používat pevný interval čekání.
  • polohu prvků a jejich velikost je možné nastavit dynamicky (pomocí funkcí pro rozvržení - layout).
  • Ano. A s pomocí např. Cassowary algoritmu lze být zcela DPI agnostický (mimochodem Cassowary se používá v Apple SW již několik let a to velice úspěšně).
  • prvky mají svojí hierarchii, která řídí viditelnost (které prvky jsou nad kterými), (nutnost překreslení), zachytávání událostí ze vstupu?
  • Nejsem si jistý, zdali chápu dobře otázku. Programátorsky prvky nemají žádnou hierarchii, ale samozřejmě Nuklear poskytuje "widget" kontejnery (např. pro dynamické změny šířky a výšky), které do sebe pohlcují další prvky (ať již běžné či znovu kontejnery). Viditelnost je řízena pořadím kreslení prvků (co je vykresleno později překrývá předchozí). Interně se používá naprosto všude clipping, takže ve skutečnosti se při finálním renderingu nic nepřekrývá a nejedná se tedy o malířův algoritmus.
  • výsledkem volání knihovny je buffer pixel, který si mohu vykreslit kam chci a jak chci?
  • Ne. Výsledkem je správně uspořádaný seznam "high level shader-like instrukcí" (queue of commands - viz. nk_command_*; přehled všech command types je v enumeraci nk_command_type). Nuklear nabízí ještě možnost interně automaticky převést tyto instrukce do low-level podoby vertex bufferu, ale myslím, že to v žádném demu není použité. Vertex buffer se hodí např. pro embedded použití.
  • pokud v prvku (například textové pole) uživatel stiskne klávesu a tím dojde ke změně (přidání znaku), výsledkem je změna řetězce obohaceného o nový znak, který se zobrazí až při dalším framu?
  • Ano.
  • vzhled prvků lze měnit (vzhled prvků lze načíst z externího zdroje)?
  • Ano. Lze přeskinovat každý widget jakoukoliv bitmapou. Ale není to nutné - kromě bitmapového skinu lze velice detailně nastavit barvu všech možných geometrických součástí widgetů a výsledky jsou vidět v Readme.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    22.4.2016 15:02 Adam
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Díky za skvělou odpověď.

    Ještě bych se vrátil k bodu s hierarchií. Jde mi o to, jestli se bude muset ručně hlídat pořadí vykreslování a tím pádem překryv jednotlivých prvků, nebo se dá určit z-index. Napadá mě třeba vykreslení kontextového menu, nebo jiných vyskakovacích prvků.

    Případně jestli se bude muset ručně hlídat komu poslat vstupy (klávesnice, myš), tak aby interagovali jen s vybranými prvky nebo mi v tomto knihovna nějak pomůže. Například řídí, které prvky mají fokus a vstupy propustí jen do nich. Což může být ale i více prvků - většinou právě nějaký kontejner a jeho prvek. Napadá mě třeba: kolečkem lze rolovat až na konec textového pole a v případě, že je již dosažen konec, tak se začne při tom stejném vstupu kolečka, rolovat stránka (ne že bych zrovna tuhle vlastnost GUI měl rád :).
    22.4.2016 19:42 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    Díky za skvělou odpověď.

    Ještě bych se vrátil k bodu s hierarchií. Jde mi o to, jestli se bude muset ručně hlídat pořadí vykreslování a tím pádem překryv jednotlivých prvků, nebo se dá určit z-index. Napadá mě třeba vykreslení kontextového menu, nebo jiných vyskakovacích prvků.
    Z-index momentálně určit nelze, ale toto je vyřešeno abstrakcí "skupin", které jsou nezávislé na pořadí volání widget funkcí. Tyto skupiny mají poté rúzné vlastnosti a pořadí, ve kterém jsou vykresleny a díky nezávislosti na pořadí volání widget funkcí lze docílit libovolného překrytí. Přijde mi to výrazně flexibilnější než z-index.
    Případně jestli se bude muset ručně hlídat komu poslat vstupy (klávesnice, myš), tak aby interagovali jen s vybranými prvky nebo mi v tomto knihovna nějak pomůže. Například řídí, které prvky mají fokus a vstupy propustí jen do nich. Což může být ale i více prvků - většinou právě nějaký kontejner a jeho prvek. Napadá mě třeba: kolečkem lze rolovat až na konec textového pole a v případě, že je již dosažen konec, tak se začne při tom stejném vstupu kolečka, rolovat stránka (ne že bych zrovna tuhle vlastnost GUI měl rád :).
    Nuklear v kontextu udržuje informaci o stavu widgetů (viz. enumerace nk_widget_states, zejména pak stav NK_WIDGET_STATE_ACTIVE, což je "focus") a programátor se o to nemusí starat. Modelový příklad je tedy bezproblémově realizovatelný (nekontroloval jsem však nyní, zdali zrovna textový widget má funkci/metodu pro jednoduchou detekci viditelného kurzoru úplně na konci a nebo zdali si tuto informaci musí programátor vyčíst z interních struktur kontextu). Každopádně co se např. přepínání focusu mezi widgety týče, doporučím Keyboard Navigation / Gamepad.
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!
    22.4.2016 21:24 Jiří J. | skóre: 34 | blog: Poutník | Brno
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna

    Pořád čekám, až někdo udělá skutečně jednoduchou knihovnu na použití. :-D

    Kdykoli jsem se o GUI pokoušel (Xlib, Gtk, Qt, z C/C++ nebo pythonu), přišlo mi, že píšu vlastní operační systém. Vlastně ne, linux kernel kód vypadá přehledněji, než ta spousta maker, vlastních datových typů a já nevím čeho ještě. Když se pak človek rozhoduje, zda udělat jednoduché CLI rozhraní, nebo jednoduché GUI rozhraní, tak je CLI jasná volba, protože pro tvorbu GUI bych si musel vybrat zbytek dovolené. :-D

    Přitom nepotřebuji úplně generické API, nepotřebuji přistupovat k registrům GPU, chci prostě jen něco jako Zenity pro C/python. A zatím jsem všude musel nastavovat šířku okraje okna, eventy/masky, šťourat se v dokumentaci a číst po dlouhých nocích API reference, protože v těch vlastnostech každého objektu, aby se čert vyznal, ...

    Hele já se fakt raději vrátím k readline. :-D

    Víra je firma si myslela, že něco je pravdivé. LMAO -- “zlehčovat mého osla”
    22.4.2016 21:53 dumblob | skóre: 10 | blog: dumblog
    Rozbalit Rozbalit vše Re: Nuklear 1.0 - revoluční GUI knihovna
    C: http://ftp.gnome.org/pub/gnome/sources/zenity/ (Zenity samotné je totiž napsané v C) Python: https://pypi.python.org/pypi/python-zenity/0.1.2

    Jinak těmto triviálním "udělátkům" bych si určitě nedovolil říkat GUI knihovny, nýbrž bych se držel standardního označení dialogové nástroje a možná přidal ještě přívlastky "velice omezené a zjednodušené".
    Refundace za Windows 7 od Lenovo obchodníka - soud rozhodl, že je zákazník v právu!

    Založit nové vláknoNahoru


    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.