C:llä grafiikkaa

C-alkaja

Olen opiskelemassa itsenäisesti C:tä ja löysin vähän ristiriitaista tietoa. Yhdeltä kaveriltani kuulin, että C:ssä ei ole funktioita grafiikan tekemiseen. Toisaalta sivun http://www.gtk.org/ mukaan gtk on tehty C:llä ja sillä voi ilmeisesti tehdä graafisia ohjelmia. Eli miten C:llä saa tehtyä grafiikkaa, vai pitääkö siihen linkittää mukaan konekielistä koodia?

15

683

    Vastaukset 15

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • C:llä voi tehdä hyvin graafiikkaa kun linkittää siihen kirjastoja jotka tarjoavat tähän kutsuja. Mitään konekieltä ei ole tarvittu C:llä grafiikan tekemisessä tapauksesta riippuen vuosikymmeniin.

      Vähän riippuu sitten ohjelmistosta mitä kirjastoa kannattaa käyttää. GUI ohjelmia jos tekee C:llä niin GTK on juurikin oikea kirjasto tähän. Jossain peligrafiikassa SDL on oikea kirjasto ja grafiikkakiihdytintä käyttäessä tietysti OpenGL.

      • C-alkaja

        Tarkoitan vähän eriasiaa. Ongelmana on siis se, että jos haluan tehdä grafiikkaa, niin eräs vaihtoehto on käyttää GTK :aa. Kuitenkin GTK on tehty C:llä, joten miten GTK :lla on mahdollista tehdä grafiikkaa? Jos se on tehty pelkästään C:llä, niin kaverini on ilmeisesi väärässä ja C:llä on mahdollista tehdä grafiikkaa. Jos taas kaverini on oikeassa, niin GTK käyttää jotain muutakin kieltä kuin C:tä grafiikan piirtämiseen. Kumpi vaihtoehto on oikea.


      • weqweqweqwe
        C-alkaja kirjoitti:

        Tarkoitan vähän eriasiaa. Ongelmana on siis se, että jos haluan tehdä grafiikkaa, niin eräs vaihtoehto on käyttää GTK :aa. Kuitenkin GTK on tehty C:llä, joten miten GTK :lla on mahdollista tehdä grafiikkaa? Jos se on tehty pelkästään C:llä, niin kaverini on ilmeisesi väärässä ja C:llä on mahdollista tehdä grafiikkaa. Jos taas kaverini on oikeassa, niin GTK käyttää jotain muutakin kieltä kuin C:tä grafiikan piirtämiseen. Kumpi vaihtoehto on oikea.

        Se, että mitä siellä GTK:n sisällä oikeasti tapahtuu riippuu täysin käyttöjärjestelmästä ja jopa näytönohjaimestasi. Homma toimii niin, että GTK sisäisesti käyttää käyttöjärjestelmän grafiikka-APIa, joka taas käyttää sisäisesti näytönohjaimen ajuria, joka taas ohjaa rautatasolla näytönohjainta. Voi ihan hyvin olla, että joku pätkä siellä näytönohjaimen koodissa on jopa assembleriakin, joten tässä mielessä *pelkästään* C:llä välttämättä joissain järjestelmissä ei voi tehdä grafiikkaa, jos sitä tarkoitit. Mutta eipä voi silloin millään muullakaan kielellä, koska ne käyttävät samaa näytönohjaimen ajuria ja käyttöjärjestelmä-APIa.

        C:llä tarvitaan aina joku grafiikkakirjasto kuten GTK, Qt, XWidgets tms väliin, tai siis ainakin sellaista kannattaa käyttää. Jos haluat muistella menneitä, niin joissain järjestelmissä (kuten Linux ja Windows) voi kirjoitella suoraan myös näytönohjaimen muistiinkin ihan C:llä. Jossain DOS-simulointimoodissa tätä voi treenailla konsoli-ikkunassakin.


      • C-alkaja kirjoitti:

        Tarkoitan vähän eriasiaa. Ongelmana on siis se, että jos haluan tehdä grafiikkaa, niin eräs vaihtoehto on käyttää GTK :aa. Kuitenkin GTK on tehty C:llä, joten miten GTK :lla on mahdollista tehdä grafiikkaa? Jos se on tehty pelkästään C:llä, niin kaverini on ilmeisesi väärässä ja C:llä on mahdollista tehdä grafiikkaa. Jos taas kaverini on oikeassa, niin GTK käyttää jotain muutakin kieltä kuin C:tä grafiikan piirtämiseen. Kumpi vaihtoehto on oikea.

        GTK wrappaa alleen matalamman tason koodia ja jossain GTK :n alapuolella sitten muutetaan näyttömuistin bittejä jollain tavalla. Se miten se sitten tehdään on alustakohtaista ja siihen ei kielen syntaksi tai GTK ota mitään kantaa. Kaikki on abstraktoitu piiloon, että ohjelmoijan ei tarvisi välittää asiasta. GTK on kyllä tehty kokonaan C:llä.

        C kielen standardi ei siis sisällä mitään kutsua grafiikan piirtoon mutta GTK taas esimerkiksi löytyy sitten LSB standardista jota käytetään yleisesti kun piirrellään grafiikkaa C-kielellä. Käytännössä juuri missään kielessä itse kieli ei sisällä mitään toimintoa grafiikan piirtoon harvoja poikkeuksia lukuunottamatta vaan kaikki käyttää jotain kirjastoja jotka joko kuuluvat johonkin standardiin tai sitten eivät. Yleensä ne kirjastot ovat matalalla tasolla C kielisiä kun se on käytännössä standardi systeemiohjelmoinnissa ja siellä sitten on voitu käyttää joko kääntäjän laajennoksia, että voidaan C-kieltä käyttämällä käsitellä suoraan muistia missä näytön pikselit ovat tai sitten on voitu kutsua jotain konekielistä aliohjelmaa.

        Ja ne poikkeustapaukset missä kieli sisältää grafiikan piirtoa sitten yleensä pyörii siinä C-kielisten kirjastojen päällä. Tietokoneiden ohjelmistot ovat siis täynnä abstraktiotasoja monessa kerroksessa.


      • hardwareoverlay

        DirectX on paras Windows-ympäristöissä, mutta rakenteet ovat aika hankalia aloittelijalle.


    • qt qt

      Unohda M-Karin höpötykset.

      Hae Qt-kirjasto Nokian sivuilta ja tee grafiikkaa.

      • Qt on C :lle.


      • ihmettelijä?
        M-Kar kirjoitti:

        Qt on C :lle.

        Ihmettelen miksi pelkkä C-kieli on vielä edes olemassa? Mikä on sen tarkoitus, koska C on olemassa?

        Onko C:llä jotain vahvuuksia, mitä C ei pysty tekemään?


      • ihmettelijä? kirjoitti:

        Ihmettelen miksi pelkkä C-kieli on vielä edes olemassa? Mikä on sen tarkoitus, koska C on olemassa?

        Onko C:llä jotain vahvuuksia, mitä C ei pysty tekemään?

        -C kielisiä kirjastoja voidaan käyttää helposti suunnilleen mistä tahansa kielestä.
        -C kieli on hyvin yksinkertainen ja sillä voi tehdä ohjelmia vaatimattomille laitteille.
        -C kieli tekee vähemmän riippuvuuksia järjestelmän komponentteihin.
        -C kielen standardikirjastot ja kääntömekanismi yhdistyvät kaunistii standardin unix arkkitehtuurin järjestelmien rakenteen kanssa.

        C tulee pysymään jatkossakin käytännön standardina systeemiohjelmoinnissa helposti vuosikymmeniä vielä.


      • Kopalasapa
        ihmettelijä? kirjoitti:

        Ihmettelen miksi pelkkä C-kieli on vielä edes olemassa? Mikä on sen tarkoitus, koska C on olemassa?

        Onko C:llä jotain vahvuuksia, mitä C ei pysty tekemään?

        "Meidän oman" Linuksen mukaan on paljonkin vahvuuksia:
        http://lwn.net/Articles/249460/

        (Etsivä löytänee myös alkuperäisen keskustelun.)


      • C-alkaja
        ihmettelijä? kirjoitti:

        Ihmettelen miksi pelkkä C-kieli on vielä edes olemassa? Mikä on sen tarkoitus, koska C on olemassa?

        Onko C:llä jotain vahvuuksia, mitä C ei pysty tekemään?

        C :ssa ei voi antaa muuttujan nimeksi class. Eipä tuo ole kovinkaan merkittävä seikka.


      • dsfsdfsdfsd
        ihmettelijä? kirjoitti:

        Ihmettelen miksi pelkkä C-kieli on vielä edes olemassa? Mikä on sen tarkoitus, koska C on olemassa?

        Onko C:llä jotain vahvuuksia, mitä C ei pysty tekemään?

        C on yksinkertainen ja silti yhtä tehokas ja monesti tehokkaampi kuin C .

        C on vain epäonnistunut laajennus C:hen.


      • c++ on loistava
        dsfsdfsdfsd kirjoitti:

        C on yksinkertainen ja silti yhtä tehokas ja monesti tehokkaampi kuin C .

        C on vain epäonnistunut laajennus C:hen.

        Sanoo idiootti joka ei koskaan ole oppinut oo-paradigmaa...


      • sdfsdfsdfsdfds
        c++ on loistava kirjoitti:

        Sanoo idiootti joka ei koskaan ole oppinut oo-paradigmaa...

        Pah.

        OO on hyvä mutta esimerkiksi C :n standardikirjasto on täydellinen aivovamma.

        C :n luokat C:n kirjastot on hyvä yhdistelmä.


    • Helposti syntyy graf

      grafiikka- tai minkä tahansa kirjaston funktiota. OpenGL on eräs kirjasto, jonka valmiiksi ohjelmoidut funktiot sytyttävät ja sammuttavat näytön pikseleitä juuri niillä kohdilla, joilla niitten kutsuja haluaa.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mikä on totta mikä ei?

      Onko juoru vai ei että nimeltä mainitsematon henkilö on tehnyt naiselle/naisille jotain joka on väärin?
      Kuhmo
      21
      2104
    2. Päivän aivopieru Trumpilta

      Trump julisti sodan hyttysiä vastaan. Myös punkit ovat Trumpin sodan kohteena. Eikö vieläkään USA:n kansa tajua tuon uko
      Maailman menoa
      71
      1119
    3. Lopetetaanko tämä

      Juttu ja mennään eteenpäin? Pystytkö?
      Ikävä
      132
      928
    4. Just saying

      Mies joka antaa naiselle turvallisen olon, on seksikäs. Ei kieroja kikkoja ja haluaa olla vain sen yhden naisen mies.
      Ikävä
      138
      710
    5. Voisin antaa sulle nyt

      Halin❤️
      Ikävä
      54
      636
    6. Löytyikö syy miksi Martina on Muhiksen kanssa

      Saipa naurut Gekkosen kuvasta, missä ovat ravintola Hookissa Immu fight night ottelun jälkeen, Muhoksella pullottaa hirv
      Kotimaiset julkkisjuorut
      94
      617
    7. Jos selviäisi että kaivattusi

      Olisi savant asperger? Rakastaisitko vielä? Savant-lahjakkuus olisi kapea-alaista neroutta liittyen mekanisiin ja tilan
      Ikävä
      93
      575
    8. Janpen Thai lopettanut, miksiköhän

      Hyvää apetta teki.
      Suomussalmi
      12
      567
    9. Jorma Uotinen läväytti härskin heiton - Paljastus uudesta TTK-romanssista?

      Tuomari Jorma Uotisen linja on välillä hyvinkin rohkea TTK:ssa. Hän näpäytti Jaakko Parkkalille ja Kastanja Rauhalalle v
      Tanssii tähtien kanssa
      11
      563
    10. Tosi kiva on

      Joo. Mitä olisit menettänyt jos olisit paljastanut itsesi?
      Ikävä
      65
      551
    11. Jokin ei täsmää

      Joskus yksi vuosiluku saa katsomaan koko tarinaa uudestaan. Löysin gradun. Matematiikka ei oikein täsmää siihen, mitä mi
      Ikävä
      298
      536
    12. Toivotko vielä viestiä

      Minulta? En rohkene enää ottaa yhteyttä, kun varmasti jo uusia naisia elämässä. Nolaisin vain itseni.
      Ikävä
      44
      529
    13. Tehdään yhdessä itsestämme

      Parhaat versiot❤️ Se vaatii molemmilta hyvää itsetuntoa!
      Ikävä
      42
      525
    14. Oliko Jani Halmeen aika jo tippua TTK:sta?

      Jani Halme ja Claudia Ketonen joutuivat jättämään TTK:n. Halme ja Ketonen saivat viimeiseksi jäänestä tanssista, sambas
      Tanssii tähtien kanssa
      27
      492
    15. Kuka kaipaa T m?

      Kerro nainen kirjaimesi vaan... Haluan miettiä kuka tulee ekana mieleeni.. kuin kurkistus tunteiden meren pinnalle, jota
      Ikävä
      36
      480
    16. Olen ajellut Dieseleillä yli 50 vuotta.

      Enkä ole koskaan kaivannut sähköautoa.
      Hybridi- ja sähköautot
      116
      468
    17. Miksi jotku naiset on niin tyhmiä

      Että elättelevät turhaa toivoa toisen kustannuksella. Onko ne kaikki kaappilesboja vai mikä niitä vaivaa? Sitten itketä
      Ikävä
      51
      447
    18. Mitä tunteita

      Sulla vielä on?
      Ikävä
      71
      439
    19. Vaikea on tämän

      Jälkeen suhtautua sinuun ilman ettei muista kirjoituksiasi.
      Ikävä
      58
      437
    20. Kerro muuten miksi

      Estit somessa?
      Ikävä
      41
      434
    Aihe