Työskentely API:en ja SDK:ien kanssa

Koko: px
Aloita esitys sivulta:

Download "Työskentely API:en ja SDK:ien kanssa"

Transkriptio

1 OSA VII 679 LUKU LUKU Työskentely API:en ja SDK:ien kanssa Opi, kuinka käytetään Visual C++-ohjelmoijille tarkoitettuja eri API-rajapintoja ja SDK-kehitysympäristöjä Tosi nopeiden ääni- ja grafiikkasovellusten luominen DirectX:llä Sähköpostin lähettäminen ja vastaanottaminen MAPI-arkkitehtuuria käyttäen Media Control rajapinnan käyttö multimediaäänen ja videon esittämiseen

2 680 Mistä API- ja SDKkehityspaketit saa? Kaikkia API- ja SDK-paketteja ei toimiteta Visual C++:n mukana, mutta useimmat voidaan ladata Microsoftin sivustosta (msdn.microsoft.com) ilmaiseksi. Vaikka käyttämäsi API tai SDK olisikin toimitettu Visual C++:n mukana, kannattaa tarkistaa Webistä uusin versio. Kehittyneet tekniikat Mitä ovat API:t ja SDK:t APIt (Application programming interface) ovat funktiokokoelmia, jotka on yleensä tallennettu dynaamisiin linkkikirjastoihin (.dll) tai staattisiin kirjastoihin (.lib). Näiden avulla voidaan toteuttaa helpommin erityyppisten sovellusten toimintoja, kuten grafiikan, äänen, tietokannan käsittelyn tai tiedonsiirron toimittamalla koodikerroksen sovelluksesi ja laitteiston väliin. Eri API-kirjastoja on lukuisia ja ne helpottavat sovellusten rakentamista sekä yhtenäistävät alan toiminnot standardiksi funktiokutsujoukoksi. COMin ja OLEn kehitys on saanut aikaan sen, että useimmat näistä API-kirjastoista on toteutettu COM-objekteina, mikä helpottaa merkittävästi eri.dll-versioista johtuneita versionhallintaongelmia. SDK:t (Software development kit) ovat API-kirjastoja, joiden mukana toimitetaan dokumentointi sekä esimerkkiohjelmia. Nämä auttavat eri tyyppisten sovellusten kehittämistä, kuten Game SDK pelien ja OLE DB SDK OLE-pohjaisten tietokantasovellusten. Yleensä API-funktiot eivät sisälly projektisi oletuksena linkitettäviin kirjastoihin ja joudut sitä varten linkittämään projektiisi erityiseen kirjastoon. Voit yleensä lisätä kaikkien tarvitsemiesi API-funktioiden prototyypit ja makromäärittelyt sovellustiedostoosi lisäämällä APIkohtaisen.h header-tiedoston käännökseen #include-lauseella. KATSO MYÖS OLEn ja COMin perusteet luvusta 25. Nopean äänen ja näytön toteuttaminen DirectX:llä DirectX APIt luotiin ratkaisemaan näyttö- ja äänilaitteisiin liittyvät suorituskykyongelmat. Vaikka Windows tarjoaakin kehittyneen vakiografiikan ja äänitoimintojen tuen, nämä eivät olleet riittävän nopeita tai joustavia nopeiden toimintapelien ja esitysohjelmistojen kirjoittajille. Pitkän aikaa ainoa ratkaisu oli kirjoittaa ohjelmisto DOSsovelluksena ja menettää näin Windowsin laitteistoriippumattomuus, konfigurointitiedot ja muut palvelut. Microsoft on täyttänyt tämän puutteen joukolla laiteriippumattomia API-rajapintoja, jotka tarjoavat nopeamman ja suoremman pääsyn

3 OSA VII LUKU näyttö-, ääni- ja syöttölaitteisiin. Nämä APIt ovat DirectSound, DirectDraw, Direct3D, DirectPlay, DirectMusic, DirectAnimation, DirectInput ja DirectSetup; yhdessä ne muodostavat Game SDK:n (peli-sdk), joka on ollut hyvin suosittu pelintekijöiden ja esitysgrafiikkateollisuuden joukossa. Kaikki nämä APIt on toteutettu komponenttiobjektimallia (COM) käyttäen ja siksi funktiokutsut on ryhmitelty ne toteuttavan COMobjektin tiettyyn COM-liittymään. Windows 95 ei asenna näiden APIen vaatimia dll-kirjastoja, mutta ne ovat vapaasti jaeltavissa ja toimitetaan yleensä niitä käyttävien pelien mukana. Nämä voidaan myös ladata Microsoftin webbipalvelusta osoitteesta KATSO MYÖS OLEn ja COMin perusteet luvusta 25. DirectSoundin käyttö DirectSound APIn avulla pääset käsiksi suoraan äänikorttisi laitteistoon tehdäksesi ääntä aaltomuotopuskurin (waveform buffer) sisällön perusteella. Puskuri tarkoittaa vain suoraa muistialuetta, jota äänikortin laitteisto lukee ja muuttaa arvot äänitasoiksi. Yksinkertaisin koodaustekniikka on antaa jokaisen puskurin tavun edustaa 256 äänenvoimakkuustasoa, mikä vastaa suoraan kaiuttimen kartion asemaa äänikorttiisi kytketyssä kaiuttimessa. Kun puskurin arvot asetetaan vastaamaan haluttua aaltomuotoa, voi määrätä suoraan äänen korkeuden. Kun muutat tämän aaltomuodon amplitudia puskurin eri kohdissa, saat eri efektejä aaltomuotoa moduloimalla. Tätä aaltomuotopuskuria kutsutaan DirectSoundin ensisijaiseksi puskuriksi. Ensisijaista puskuria ei yleensä suoraan luoda, vaan tavallisesti luodaan toissijaisia puskureita ja näitä puskureita toistettaessa ne sekoittuvat automaattisesti ja tuottavat ensisijaisen puskurin. Useaa toissijaista puskuria ja sekoittamista käyttäen voidaan helposti saada aikaan hyvinkin mutkikkaita äänitehosteita. Kuva 28.1 esittää kahden hyvin erilaisen toissijaisen puskurin sekoittavan esimerkkiohjelman tulostusta. Ylempi puskuri on puhdas vaimeneva siniaalto ja keskimmäinen esittää amplitudiltaan (voimakkuudeltaan) kasvavaa satunnaiskohinaa. Alimmainen aaltomuoto on ensisijaisen puskurin sisältö eli kahden edellisen esittämisen aikaansaama sekoitus. Tuloksena Nopean grafiikan ongelmat Graafisten animaatioiden kirjoittamisen keskeisin ongelma on puhdas suorituskyky. Ihminen näkee peräkkäin esitetyt kuvat liikkeenä, kun kuvia näytetään noin 24 kertaa sekunnissa värin 800x600 näytöllä on kuvapistettä ja jos jokaisen kuvapisteen arvo vaihdetaan, tarvitaan sekunnissa operaatiota. Kuvapisteen asettaminen vie noin 12 kellojaksoa, joten pelkkä näytön päivittäminen vaatisi kellojaksoa. 500 MHz prosessorilla tuo olisi neljännes koko CPU ajasta, 266 MHz prosessorilla jo puolet. Silti toinen puoli ajasta menisi vielä mutkikkaaseen ja raskaaseen kolmiulotteiseen laskentaan, pintakuvioinnin tekemiseen, bittikarttojen skaalaamiseen ja käyttäjän toimiin.

4 682 DirectSoundCreate()- funktion käyttö Jos käytät DirectSoundCreate()- funktiota, joudut linkittämään projektiisi myös dsound.libkirjaston Project Settingsvalintaikkunan Link-välilehden Object/Library Modules -ruutuun. CoCreateInstance()-tapaa käyttämällä tätä kirjastoa ei tarvita, mutta luokan ja liittymän tunnukset tarvitaan (CLSID ja IID). Kehittyneet tekniikat saadaan aikaan puhdas ääni, joka nopeasti muuttuu esitettäessä kohinaksi. Voit sekoittaa haluamiasi ääniä toisten kanssa, esimerkiksi sakara-aaltoa, kolmioaaltoa tai muuta puskurin sisältöä (myös äänitettyä) tuottaaksesi haluamasi äänen. Ensimmäinen tehtävä DirectSound APIa käytettäessä on IDirectSound-liittymän luominen joko kutsumalla suoraan CoCreateInstance()-funktiota (kts. luku 25) tai käyttämällä pikavalintafunktiota DirectSoundCreate(). DirectSoundCreate() käyttää kolmea parametriä: ensimmäinen on osoitin GUID-tunnukseen, joka määrittää käytettävän äänilaitteen. Nämä äänilaitteen GUID-tunnukset saadaan selville asettamalla DirectSoundEnumerate()-funktiolla callback-funktio. Vaihtoehtoisesti parametrinä voidaan antaa NULL, jolloin käytetään oletusäänilaitetta. Toinen parametri on osoitin DirectSound-liittymäobjektin osoittimeen, jonka avulla asetetaan sovelluksesi osoitin uuteen objektiin. Kolmas parametri asetetaan yleensä arvoon NULL, ellet joudu käyttämään COM-aggregaatio tekniikkaa. Jos tämä funktio onnistuu, palautettu osoitin osoittaa IDirectSoundliittymään, joka voidaan vapauttaa muiden COM-liittymien tapaan liittymän Release()-funktiolla. Kun IDirectSound-liittymä on saatu, sen yhteiskäyttötaso (cooperative level) tulee säätää välittömästi. Useilla DirectX API kirjastoilla käytetään tällaisia tasoja, jotka määrittävät, kuinka niiden käyttämää laitteistoa pitäisi jakaa eri sovellusten kesken. Voit asettaa tämän tason IDirectSound-liittymän SetCooperativeLevel()- funktiolla syöttämällä sille oman sovelluksesi Windows-kahvan. Joudut myös syöttämään lipputietona halutun yhteiskäyttötason. Tavallisesti käytettävä DSSCL_NORMAL-arvo sallii täyden yhteiskäytön muiden sovellusten kanssa. Tämän jälkeen voit luoda toissijaiset äänipuskurit IDirectSoundliittymän CreateSoundBuffer()-funktiolla. Funktio käyttää kolmea parametriä. Ensimmäinen näistä on DSBUFFERDESC-tietorakenne, joka kertoo luotavaksi halutun puskurin tyypin. Toinen parametri on uutta puskuria varten oleva sovelluksesi IDirectSoundBuffer -liittymäosoitin. Kolmas parametri asetetaan yleensä arvoon NULL, ellet joudu käyttämään COM-aggregaatio tekniikkaa.

5 DSBUFFERDESC-tietorakenne määritellään typedef struct _DSBUFFERDESC{ DWORD dwsize; DWORD dwflags; DWORD dwbufferbytes; DWORD dwreserved; LPWAVEFORMATEX lpwfxformat; } DSBUFFERDESC, *LP DSBUFFERDESC; DSBUFFERDESC-tietorakenteen jäsenet edustavat seuraavaa: dwsize on tietorakenteen koko (joka saadaan sizeof()- operaattorilla). dwflags-lippuina voidaan määritellä useita ohjausasetuksia, kuten stereoääni ja äänenvoimakkuus. Hyvät oletusarvot saadaan lipulla DSBCAPS_CTRLDEFAULT. dwbufferbytes kertoo, kuinka monta tavua uuteen puskuriin tulee mahtua. Pitkille ääninäytteille ja mutkikkaille äänille tarvitaan suurempia puskureita; pienempi puskuri käy lyhyisiin tai toistuviin ääniin. Puskureita voidaan toistaa silmukassa, jolloin puskurin sisältö käytetään ääntä tuotettaessa uudelleen ja uudelleen ja näin saadaan aikaan pitkiä toistuvia ääniä. lpwfxformat osoittaa WAVEFORMATEX-tietorakenteeseen, jossa on tiedot äänikortille siitä, kuinka äänitehoste esitetään. OSA VII LUKU WAVEFORMATEX-tietorakenteessa on tietoa muun muassa puskurin esitysnopeudesta sekä siitä, kuinka monta puskurin tavua tarvitaan yhden ääniarvon esittämiseen. Siinä on myös kerrottu laitteistosta riippuva äänen esittämistekniikka, mutta useimmat äänikortit tukevat aiemmin esiteltyä yksinkertaista WAVE_FORMAT_PCM-tekniikkaa. Kun toissijainen puskuri on käytettävissä, voit asettaa sen arvot joko lataamalla ne.wav-tiedostosta tai määrittämällä ne ohjelmassa. Saatiinpa puskurin tiedot kummalla tavalla tahansa, puskurin käsittelyä ohjaa IDirectSoundBuffer-liittymän Lock()-funktio, joka palauttaa puskurin osoitteen ja koon. Tämän funktion kutsumisen jälkeen voit kirjoittaa puskuriin haluttua aaltomuotoa vastaavat arvot ja kutsua lopuksi puskurin vapauttamiseksi Unlock()-funktiota. Kun puskurin arvot on asetettu, voit esittää sen IDirectSoundBuffer-liittymän Play()-funktiolla. Play()-funktio tarvitsee kolme parametriä, joista kaksi ensimmästä ovat varattuja ja ne Puskurin lukitseminen ja avaaminen Äänipuskuria ei kannata lukita pitkäksi aikaa, muuten lukittua puskurin osaa tarvitseva toistettava ääni aletaan esittää kohinana. Joillakin äänikorteilla on puskuri, jota ei pääse suoraan käyttämään prosessorin osoiteavaruudesta. Tällaisessa tapauksessa Lock()- ja Unlock()- funktiot myös siirtävät tiedon kortilta keskusmuistiin, jossa ohjelmasi voi sitä päivittää ja siirtää sitten takaisin toistettavaksi kortille.

6 684 Kehittyneet tekniikat tulee asettaa nollaksi. Kolmas parametri voi olla DSBPLAY_LOOPING puskurin sisällön toistamiseksi tai nolla, jolloin puskurin sisältö esitetään ainoastaan kerran. Esittäminen voidaan lopettaa kutsumalla Stop()-funktiota. Listauksessa 28.1 esitetään, kuinka DirectSoundia voidaan käyttää yksinkertaisen, mutta vaikuttavan näppäimistöltä käytettävän syntetisaattoriäänen tuottamiseen yksinkertaisen SDI-sovelluksen näkymäluokasta. Ohjelma luo ja näyttää kahden toissijaisen äänipuskurin sisällön punaisena ja vihreänä viivana, jotka asetetaan vaimenevaksi siniaalloksi ja voimakkuudeltaan kasvavaksi kohinaksi (kuva 28.1). KUVA 28.1 SoundView-esimerkki esittää kaksi puskuria ja tuloksena saadun niistä sekoitetun aaltomuodon. Tämän jälkeen sovellus esittää molemmat puskurit yhtä aikaa käyttäjän painaessa näppäintä, jolloin saadaan aikaan kohinan katoava siniaalto ensisijaisesta puskurista (yhdistetty aaltomuoto on alin sininen viiva). Siniaallon tuottama äänen korkeus määräytyy painetun näppäimen ASCII-koodin perusteella, joten aakkosten loppupään merkit saavat aikaan korkeampia ääniä. Luonnollisesti tämä esimerkki vaatii äänikortin. LISTAUS 28.1 LST28_1.CPP Yksinkertainen näppäimistöltä soitettava, kahta äänipuskuria sekoittava syntetisaattoriohjelma 1 CSoundView::CSoundView() 2 { 3 m_pdsobject = NULL;

7 OSA VII LUKU m_pdsbuffer = NULL; 5 m_pdsmix = NULL; 6 } 7 CSoundView::~CSoundView() 8 { 9 if (m_pdsmix) m_pdsmix->release(); 1 10 if (m_pdsbuffer) m_pdsbuffer->release(); 11 if (m_pdsobject) m_pdsobject->release(); 12 } 1 DirectSound COM-objektit tulee vapauttaa hallitusti Release()-funktiolla. 13 void CSoundView::PlayFreq(double dfreq) 14 { 15 if (!m_pdsobject) 16 { 17 // ** Create the Direct Sound Object 18 if(ds_ok == DirectSoundCreate(NULL, &m_pdsobject, NULL)) 19 { 20 // ** Set the Co-Operation level 21 m_pdsobject->setcooperativelevel(m_hwnd, DSSCL_NORMAL); 22 // ** Clear the direct sound buffer 23 memset(&m_dsbufferdesc,0,sizeof(dsbufferdesc)); 24 // ** Setup a secondary buffer 25 m_dsbufferdesc.dwsize = sizeof(dsbufferdesc); 26 m_dsbufferdesc.dwflags = DSBCAPS_CTRLDEFAULT; 27 m_dsbufferdesc.dwbufferbytes = 4096; 28 // ** Set a wave format for 22.0Khz, 1 byte DtoA 29 static WAVEFORMATEX swave = { 30 WAVE_FORMAT_PCM,1,22000,22000,1,8,0 }; 31 m_dsbufferdesc.lpwfxformat = &swave; // ** Create the First Secondary buffer 34 m_pdsobject->createsoundbuffer( &m_dsbufferdesc,&m_pdsbuffer,null); 35 // ** Create the Second Secondary buffer 36 m_pdsobject->createsoundbuffer( &m_dsbufferdesc,&m_pdsmix,null); 37 } 38 } 39 // ** if the DirectSound object is valid if (m_pdsobject) 41 { 42 // ** Declare buffer pointers 43 LPBYTE pbuffer1,pbuffer2; 44 LPBYTE penv1,penv2; 45 DWORD dwsize1,dwsize2; 46 // ** Erase the background 47 CClientDC dcclient(this);

8 686 Kehittyneet tekniikat 48 CRect rcclient; 49 GetClientRect(&rcClient); 50 int yoff = (rcclient.height()-24)/3; 51 dcclient.fillsolidrect(rcclient,rgb(255,255,255)); 2 Lock()-funktio lukitsee muistin ja palauttaa ohjelmasi käyttämien puskureiden osoitteet. 52 // Lock the sound buffer 53 m_pdsbuffer->lock(0,m_dsbufferdesc.dwbufferbytes, &pbuffer1,&dwsize1,&pbuffer2, &dwsize2,0); 2 54 m_pdsmix->lock(0,m_dsbufferdesc.dwbufferbytes, &penv1,&dwsize1,&penv2,&dwsize2,0); 55 // ** Set the two buffers 56 double drange = / (double)dwsize1; 57 double dxrange = (double)rcclient.width() / (double)dwsize1; 58 for(int i=0;i<(int)dwsize1;i++) 59 { 60 double damplitude = drange * (double)i; 61 BYTE b1 = (BYTE)(127 + ( damplitude) 62 * sin((double)i / (0.147 * dfreq))); 63 BYTE b2 = (BYTE)(rand()%(int)dAmplitude)>>1; 64 *(pbuffer1+i) = b1; 65 *(penv1+i) = b2; 66 BYTE b3 = b1 + b2; 3 Aaltomuodon arvot myös piirretään, jotta näkisit puskurin sisällön. 4 Puskurit asetetaan avaamisen jälkeen esittämään sisältönsä. 67 // ** Draw the waveform 3 68 int x = (int)(dxrange * (double)i); 69 dcclient.setpixelv(x,(b1>>1),rgb(255,0,0)); 70 dcclient.setpixelv(x,yoff+64 + b2>>1), RGB(0,255,0)); 71 dcclient.setpixelv(x,yoff*2 + (b3>>1), RGB(0,0,255)); 72 } 73 // ** Unlock the buffers and play the sound 4 74 m_pdsbuffer->unlock(pbuffer1, dwsize1,pbuffer2,dwsize2); 75 m_pdsmix->unlock(penv1,dwsize1,penv2,dwsize2); 76 m_pdsbuffer->play(0,0,0); 77 m_pdsmix->play(0,0,0); 78 } 79 } 80 void CSoundView::OnKeyDown(UINT nchar, UINT nrepcnt, UINT nflags) 81 { 82 CView::OnKeyDown(nChar, nrepcnt, nflags); 83 // ** Play the note with a freqency of the key value 84 if (nrepcnt==1) PlayFreq((double)nChar); 85 }

9 Listauksessa 28.1 esitetty koodi tulee sijoittaa tavallisen AppWizardin tekemän SDI-sovellusrungon (nimeltään Sound) näkymäluokkaan. Koska tässä on lisätty koodia näkymäluokkaan (SoundView.cpptiedostoon), joudut myös lisäämään uusia jäsenmuuttujia varten seuraavat rivit luokan määrittelyn header-tiedostoon (SoundView.h): IDirectSound* m_pdsobject; IDirectSoundBuffer* m_pdsbuffer; IDirectSoundBuffer* m_pdsmix; DSBUFFERDESC m_dsbufferdesc; void PlayFreq(double dfreq); Nämä rivit määrittelevät DirectSound-liittymää varten tarvittavan liittymäosoitinjäsenmuuttujan, kaksi äänipuskuria ja puskurinkuvaustietorakenteen. Myös äänitehosteen toteutuksessa tarvittava PlayFreq()-funktio määritellään. Lisää ClassWizardilla OnKeyDown()-käsittelijä WM_KEYDOWN-sanoman käsittelemistä varten. ClassWizard huolehtii myös vaadittujen headertiedostojen tekemisestä sekä sanomakartan alkion lisäämisestä. Jotta kääntäjä saisi vaadittavat tiedot liittymäosoittimesta, aaltomuototietorakenteesta toteutuksessa ja käytetystä sinifunktiosta, joudut lisäämään seuraavat #include-lauseet näkymäluokan määrittelytiedoston alkuun (soundview.h): OSA VII LUKU #include mmsystem.h #include DSOUND.H #include math.h Listauksessa 28.1 riveillä 1 6 esitetty näkymäluokan muodostin alustaa osoittimet DirectSound-objektiin m_pdsobject ja kaksi osoitinta puskureihin, m_pdsbuffer ja m_pdsmix, arvoon NULL. Vastaava tuhoajafunktio riveillä 7 12 tuhoaa nämä COM-objektit kutsumalla niiden liittymän Release()-funktiota ja vapauttaen niiden viittausluvut (reference count). Pääfunktion PlayFreq() riveillä alustetaan funktion ensimmäisellä kutsukerralla vaadittu DirectSound-objekti ja puskurit. Alustus täytyy suorittaa tässä vaiheessa, koska rivillä 21 kutsuttava SetCooperativeLevel()-funktio tarvitsee voimassa olevan ikkunakahvan, m_hwnd, joka ei ole vielä olemassa muodostinta suoritettaessa. Jos DirectSound-objektin alustaminen onnistuu rivillä 18, luodaan kaksi toissijaista puskuria kutsumalla funktiota CreateSoundBuffer() vaadittujen puskurin tietojen Yhteiskäyttötasot (cooperative levels) DirectSound-objektilla on käytettävissä neljä eri yhteiskäyttötasoa. DSSCL_EXCLUSIVE antaa sovelluksellesi (jos se ehtii ensin) äänikortit käyttöön kokonaan ja muut sovellukset eivät saa ääntä esitettyä. DSSCL_NORMAL-tasolla äänikorttia käytetään moniajon mukaan joustavasti sovellusten välillä. DSSCL_PRIORITY antaa sovelluksellesi etusijan äänikortin käyttöön muihin sovelluksiin nähden. DSSCL_WRITEPRIMARY on korkein etuoikeustaso, jolloin sovelluksesi pääsee käsiksi ensisijaiseen äänipuskuriin ja voi estää (muiden sovellusten) toissijaisten puskureiden esittämisen.

10 688 Äänipuskureiden sekoittaminen Kahta yhtäaikaa esitettävää toissijaista puskuria sekoittamalla aaltomuodolla saadaan moduloitua toista. Tällä tekniikalla voidaan esimerkiksi korkeataajuista ensimmäistä puskuria moduloida matalataajuisella toisella puskurilla, mikä tekee esitettävästä äänestä värisevän tai karkeamman. Kehittyneet tekniikat m_dsbufferdesc-jäseneen ja WAVEFORMATEX-tyyppiseen swavetietorakenteeseen asettamisen jälkeen. PlayFreq()-funktion jälkimmäinen puolisko asettaa äänipuskurit, piirtää aaltomuodot ja esittää äänen dfreq-parametrin mukaan. Riveillä alustetaan ikkunapiirtopinta, tyhjennetään näkymä ja alustetaan koko näkymän työalue. Riveillä suoritetaan kahdelle toissijaiselle puskurille Lock()-toiminto, joka palauttaa osoittimet niihin. Riveillä on toteutettu silmukka, jossa näihin kahteen puskuriin generoidaan arvot ja ne myös piirretään näkymään. Rivillä 61 lasketaan siniaallon arvo b1, joka perustuu taajuuteen, silmukkamuuttujan i edustamaan paikkaan puskurissa ja pienenevään damplitude-voimakkuusarvoon. Tämä arvo tallennetaan kahdesta puskurista ensimmäiseen rivillä 64 ja sen perusteella piirretään rivillä 69 kolmas aalto punaisena SetPixelV()-funktiolla. Toisen puskurin kohinasignaalin arvo, b2, saadaan puolittamalla satunnaislukufunktiolla rand() saadun arvon ja äänisignaalin voimakkuuden jakojäännös (rivi 63). Tämä arvo kirjoitetaan puskuriin rivillä 65 ja näytetään vihreänä kuvapisteenä rivillä 70. Kolmas arvo, b3, joka vastaa esitettäessä ensisijaisen puskurin arvoa, lasketaan rivillä 66 yksinkertaisesti sekoittamalla (laskemalla yhteen) b1 + b2. Tämä arvo näytetään sekoitettuna aaltomuotona sinisellä kuvapisteellä rivillä 71. Riveillä suoritetaan kahdelle puskurille Unlock()-toiminto niiden sisällön esittämiseksi Play()-funktiolla riveillä 76 ja 77. Kun ensimmäistä Play()-funktiota kutsutaan, muodostetaan ensisijainen puskuri automaattisesti tämän toissijaisen puskurin vaatimusten mukaisesti ja siitä kirjoitetaan äänisignaali suoraan toistavalle laitteistolle. Seuraava Play()-funktiokutsu saa aikaan toisen toissijaisen puskurin sisällön sekoittamisen ensisijaiseen puskuriin, jolloin haluttu äänitehoste saadaan aikaan. Lopuksi voidaan vielä lisätä OnKeyDown()-käsittelijä New Windows Message/Event valintaikkunan avulla näppäinpainallusten käsittelemiseksi ja PlayFreq()-funktion kutsumiseksi. Kunkin näppäimen ASCII-koodi vastaa esitettyä taajuutta, jolla saadaan aikaan vaikutelma yksinkertaisesta, näppäimistöltä ohjattavasta syntetisaattorista. Ennen tämän sovelluksen kääntämistä joudut ottamaan linkitykseen mukaan dsound.lib-kirjaston Project Settings valintaikkunan Link välilehdeltä lisäämällä sen Object/Library Modules-riville. Saat tämän valintaikkunan esiin näppäilemällä Alt+F7 tai valitsemalla Projectvalikosta Settings.

11 Kun käännät ja ajat sovelluksesi, saat aaltomuodot esiin käyttämällä näppäimistön eri kirjaimia. Kuulet samalla myös ASCII-koodia vastaavan äänen tehosteineen. OSA VII LUKU KATSO MYÖS OLEn ja COMin perusteet luvusta 25. DirectDraw:n käyttö DirectDraw API:lla voidaan kirjoittaa hyvin nopeita, välkkymättömiä grafiikkasovelluksia. Toimintapeleille ja animaatio-ohjelmille DirectDraw:n synkronoitu kaksoispuskurointitekniikka on välttämätöntä. DirectDraw:lla saadaan käyttöön koko Windowsin näyttö ja eri näyttötilat (myös vähemmän tunnettu ModeX, jota Doom2-pelin väitetään käyttäneen). Ohjelmat piirtävät näytettävän kuvan piilossa olevalle taustanäytölle, joka kuvan valmistuttua vaihdetaan esillä olevan tilalle. Tämä vaihto voidaan tahdistaa tehtäväksi näytön elektronisuihkun palatessa viimeisestä pisteestä alkuun, jolloin animaatio saadaan välkkymättömäksi. Voit myös jättää Windows-näytön ennalleen ja käyttää tavallisen ikkunan sisällä nopeampaa piirtotekniikkaa. DirectDraw:lla saadaan piirto- ja lohkon kopiointitoiminnot nopeammiksi kahta ohjelmistokerrosta, HAL (Hardware Abstraction Layer, laitteiston piilotus) ja HEL (Hardware Emulation Layer, laitteiston mallinnus), käyttäen. DirectDraw-pinnan piirto- ja kopiointitoiminnot käyttävät näistä HALia. Näin saadaan aikaan laiteriippumaton toiminta, jolloin samalla ohjelmakoodilla voidaan käyttää erilaisia näyttökortteja. Mikäli näyttökortti osaa suoraan jonkin piirtotoiminnon, tämä laitteistokiihdytys nopeuttaa piirtoa huomattavasti; ellei osaa, HEL-kerros mallintaa kortin toimintoja ohjelmallisesti ja tällöinkään näyttökortin ominaisuudet eivät rajoita piirtotoiminnon käyttöä. DirectDraw APIssa on COM-liittymien kautta käytettävissä ainoastaan neljä COM-objektia, jotka on esitetty taulukossa Taulukosta muutamien liittymien nimen lopussa oleva numero 2 kertoo, että kyseessä on uudempi versio COM-liittymästä, jonka alkuperäinen versio on vielä käytettävissä vanhemmille sovelluksille. Taulukosta ilmenee myös, että tärkein objekti on DirectDrawSurface. DirectDraw-pääobjekti luo näitä pintoja (surface), joita voidaan rajata DirectDrawClipper-objekteilla ja maalata DirectDrawPaletteobjektin väreillä. ModeX ModeX on dokumentoimaton VGA-näyttötila. Useimmat pelintekijät joutuivat valitsemaan nopeussyistä monivärisen heikkoresoluutiotilan animaatioiden esittämiseen. Tuloksena paras VGA-tila oli 0x13 (heksadesimaalisena), jolla saadaan erottelutarkkuudeksi 320x200 kuvapistettä. Erikoinen ModeX antaa kuitenkin pystysuunnassa hieman paremman arvon, 320x240.

12 690 Kehittyneet tekniikat TAULUKKO 28.1 DirectDraw-objektit ja niiden toiminnot DirectDraw-objekti COM-liittymä Toiminto DirectDraw IDirectDraw2 Käsittelee näyttötilat ja laitteiston ominaisuudet ja luo muut objektit. DirectDrawSurface IDirectDrawSurface2 Käsittelee ensisijaiset ja toissijaiset bittikartat, kaksoispuskuroinnin ja piirto- ja kopiointifunktiot. Tätä pintaa voidaan rajata DirectDrawClipperobjekteilla ja maalata DirectDrawPaletteobjektin väreillä. DirectDrawClipper IDirectDrawClipper Käsittelee pintojen rajaamisen tiedot. DirectDrawPalette IDirectDrawPalette Käsittelee väripaletin alkiot ja pinnalla käytettävien värien tiedot. COM-aggregaatio Aggregaatio on COM-tekniikka, jolla komponentteja sisältävä toinen komponentti voi hyödyntää sisältämänsä komponentin toimintoja. Ulompi komponentti tarjoaa asiakasohjelmilleen liittymän, joka on itse asiassa sen sisältämän komponentin liittymä. Asiakkaan pyytäessä osoitinta tuohon littymään ulompi komponentti palauttaa suoran osoittimen sisemmän komponentin liittymään. Tämän kolmannen parametrin tarjoamalla DirectDraw-objekti antaa muiden komponenttien upottaa sen sisälleen. DirectX-kirjaston vanhemmissa versioissa tätä ominaisuutta ei välttämättä tueta, jolloin DirectDrawCreate()- palauttaa virhekoodin. Saat luotua DirectDraw pääobjektin ddraw.lib-kirjaston funktiolla DirectDrawCreate() tai kutsumalla suoraan CoCreateInstance()- funktiota. DirectDrawCreate()-funktio tarvitsee kolme parametriä. Ensimmäinen on käytettävän näyttöajurin GUID-tunnus. Näyttöajurin tunnuksena annetaan yleensä NULL, jolloin valitaan käytettäväksi sillä hetkellä aktiivisena oleva ajuri. Muiden ajurien tunnukset löytyvät vastaavalla enumerate-funktiolla. Toinen parametri on osoitin uuden objektin IDirectDraw-liittymäosoittimeen. Jos käytät tätä metodia, joudut hankkimaan tämän jälkeen osoittimen uudempaan IDirectDraw2- liittymään COMin QueryInterface()-funktiolla. Kolmas parametri asetetaan tavallisesti arvoon NULL. Muita arvoja käytetään ainoastaan COM aggregaatio tekniikkaa käytettäessä. COM-objekti on mahdollisesti helpompi luoda CoCreateInstance()- funktiolla, koska tällöin päästään suoraan käsiksi IDirectDraw2- liittymään eikä linkittämistä ddraw.lib-kirjastoon tarvita. Funktiota käytetään välittämällä sille luokkatunnuksena CLSID_DirectDraw ja

13 OSA VII LUKU liittymäviittauksena IID_IDirectDraw2; nämä tunnukset löytyvät header-tiedostosta DrawDlg.h. Tämän jälkeen joudut kutsumaan Initialize()-funktiota näyttöajurin määrittävällä GUID-tunnuksella (tavallisesti NULL). Kun käytössä on DirectDraw-objekti, sen yhteiskäyttötaso joudutaan asettamaan IDirectDraw::SetCooperativeLevel()-funktiolla. Tälle funktiolle syötetään ensimmäisenä parametrinä omistajasovelluksen tunnuksena toimiva ikkunakahva ja toisena lippumääreet. Voit käyttää DirectDraw-objektia yhdessä muiden sovellusten kanssa tavallista Windows-näyttöä käytettäessä (lippu DDSCL_NORMAL), mutta halutessasi koko näytön käyttöön, on yhdistettävä liput DDSCL_EXCLUSIVE ja DDSCL_FULLSCREEN. Tahdistettua kaksoispuskurointia varten on koko näyttö otettava käyttöön. Pintoja piirtämistä ja kopioimista varten luodaan DirectDraw-objektin CreateSurface()-funktiolla välittämällä sille DDSURFACEDESCtietorakenne pinnan määreenä. Tässä tietorakenteessa määritellään monenlaisia pintoja. Tavallisesti luodaan yksi ensisijainen pinta DDSCAPS_PRIMARYSURFACE-lipulla ja mahdollisesti useita taustapintoja kopiointia ja kaksoispuskurointia varten. Kaksoispuskuroinnin sivun vaihtamista varten taustapuskurit voidaan luoda ja linkittää samalla CreateSurface()-kutsulla kuin ensisijainenkin puskuri. Tällöin puskureiden lukumäärä annetaan tietorakenteen dwbackbuffercountjäsenessä ja määritellään DDSD_BACKBUFFERCOUNT-lippu. Voit myös luoda useita clipper-objekteja rajausluetteloiden luomiseksi. Tämä ovat hyödyllisiä käytettäessä DirectDraw:lle tavallista Windowsin näyttöä, koska isäikkunaa rajaamalla estetään oman ikkunan alueen ulkopuolelle piirtäminen. Näitä objekteja voidaan luoda DirectDraw-objektista CreateClipper()-funktiolla, minkä jälkeen ne valitaan pinnalla käytettäviksi pinnan SetClipper()- funktiolla. Värien kierrättämistä tukevia värivalikoimia (paletteja) voidaan luoda DirectDraw-pääobjektista CreatePalette()-funktiolla. Värien arvot voidaan alustaa valikoimaan joukolla COLORREF-arvoja, minkä jälkeen ne voidaan valita pinnalle pinnan SetPalette()-funktiolla. DirectDraw-pinnalle voidaan piirtää tavallisilla GDI-funktioilla. Aluksi pinta lukitaan omaan käyttöön ja vastaava piirtopinta haetaan GetDC()-funktiolla. Piirtämisen jäljeen tämä vapautetaan ReleaseDC()-funktiolla. Käytettävissä on myös joukko nopeita bit Animointi värejä kierrättämällä Värejä kierrättämällä saadaan liikkuvaa kuvaa ilman raskasta laskentaa. Animointi ilman ylimääräistä piirtämistä on aina kannattavaa. Ottamalla käyttöön värivalikoimasta muutamia värejä värien kierrätykseen saadaan jollekin näytön alueelle toistuvaa liikettä ilman uudelleenpiirtämistä. Jos esimerkiksi tarvitaan samaan pisteeseen neljä kooltaan kasvavaa ympyrää, voitaisiin kolme väriä määrittää mustaksi ja yksi valkoiseksi. Valkoinen väri voitaisiin sitten muuttaa värivalikoimassa toiseen näistä neljästä paikasta, jolloin jokaisella mustalla piirretty ympyrä pääsisi vuorollaan esiin.

14 692 Bit blit- ja GDI-funktioiden käyttö Ole tarkkana, ettet kutsu bit blit - funktiota (lohkon kopiointi), kun käytät GetDC():llä saatua piirtopintaa. GetDC() lukitsee piirtopinnan ja bit blit -toiminto ei onnistu - joudut kutsumaan ReleaseDC()-funktiota ennen muiden bit blit -funktioiden käyttöä. 1 CoInitialize alustaa COMkirjastot. Kehittyneet tekniikat blitting kopiointifunktioita (kuten Blt), joilla pintoja voidaan kopioida ja värittää erilaisin tekniikoin, esimerkiksi kokoa muuttaen (stretch) tai pintakuviointia käyttäen (texture mapping). Ensisijainen puskuri voidaan vaihtaa taustapuskurin kanssa ensisijaisen pinnan Flip()-funktiolla, joka osaa odottaa seuraavaa juovanpaluujaksoa. Voit joko syöttää sille lipun päivityksen odottamiseksi tai käyttää DirectDraw-objektin WaitForVerticalBlank()-funktiota. Hyödyllisiä näyttöön liittyviä funktioita ovat myös GetMonitorFrequency() sekä GetScanLine(). Listauksessa 28.2 esitetään DirectDraw-esimerkkisovellus, joka esittää Windowsin näytön haltuun ottamisen jälkeen nopean, kaksoispuskurointia käyttävän, pyörivää kierrettä esittävän animaation. Sovellukseen ei jouduta linkittämään ddraw.lib-kirjastoa, koska siinä luodaan DirectDraw-objekti CoCreateInstance()-funktiolla ja palautetaan Windowsin näyttö ennalleen Esc-näppäintä painettaessa. Tämä esimerkki pohjautuu valintaikkunasovellukseen Draw, jonka OnInitDialog()-funktiossa alustetaan näyttö ja kuva piirretään taustapuskuriin Widowsin ajastimenkäsittelijässä OnTimer(). Kun tämä nopea ja mutkikas piirros on valmis, edusta- ja taustapuskurit vaihdetaan keskenään, jotta uusi kuva tulisi välittömästi esiin sen välkkymättä. LISTAUS 28.2 LST28_2.CPP Kaksoispuskurointia käyttäen tehty pyörivää kierrettä esittävä välkkymätön DirectDrawanimaatio 1 CDrawDlg::CDrawDlg(CWnd* pparent /*=NULL*/) 2 : CDialog(CDrawDlg::IDD, pparent) 3 { 4 //{{AFX_DATA_INIT(CDrawDlg) 5 // NOTE: the ClassWizard will add member initialization here 6 //}}AFX_DATA_INIT 7 // Note that LoadIcon does not require a subsequent 8 m_hicon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 9 10 m_pidraw = NULL; 11 m_pimainsurface = NULL; CoInitialize(NULL); 1 14 } CDrawDlg::~CDrawDlg() 17 { 18 if (m_pimainsurface) 19 {

15 OSA VII LUKU m_pidraw->setcooperativelevel(m_hwnd,ddscl_normal); 21 m_pidraw->restoredisplaymode(); 2 22 m_pimainsurface->release(); 23 } 24 if (m_pidraw) m_pidraw->release(); 25 CoUninitialize(); 26 } BOOL CDrawDlg::OnInitDialog() 29 { 30 CDialog::OnInitDialog(); // ** Initialize the OLE / COM library 33 if (FAILED(CoInitialize(NULL))) return FALSE; // ** Create a direct draw object and interface 36 HRESULT hr = CoCreateInstance(CLSID_DirectDraw,NULL, 37 CLSCTX_ALL, IID_IDirectDraw2, (void**)&m_pidraw); if(!failed(hr)) 40 { 41 hr = m_pidraw->initialize((struct _GUID*)NULL); 42 if (hr!=dd_ok) return FALSE; 43 } // ** Set exclusive full screen mode 46 m_pidraw->setcooperativelevel(m_hwnd, 47 DDSCL_EXCLUSIVE DDSCL_FULLSCREEN DDSCL_ALLOWREBOOT); // ** Set up a surface description structure 50 DDSURFACEDESC DrawSurfaceDesc; 51 memset(&drawsurfacedesc,0,sizeof(drawsurfacedesc)); 52 DrawSurfaceDesc.dwSize = sizeof(drawsurfacedesc); 53 DrawSurfaceDesc.dwFlags = DDSD_CAPS 54 DDSD_BACKBUFFERCOUNT; 4 55 DrawSurfaceDesc.ddsCaps.dwCaps = DDSCAPS_COMPLEX 56 DDSCAPS_FLIP DDSCAPS_PRIMARYSURFACE; 57 DrawSurfaceDesc.dwBackBufferCount = 1; 58 // ** Create the primary surface 59 hr = m_pidraw->createsurface(&drawsurfacedesc, 60 (IDirectDrawSurface**)&m_pIMainSurface,NULL); 61 if (FAILED(hr)) return FALSE; // ** Find the back buffer 64 DrawSurfaceDesc.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER; 65 hr = m_pimainsurface->getattachedsurface( &DrawSurfaceDesc.ddsCaps,&m_pIFlipSurface); SetTimer(1,50,0); // ** Start the 50ms Timer return TRUE; // return TRUE unless you set the focus 71 } 2 Näyttötila asetetaan normaaliksi ja COM-objektit vapautetaan. 3 CoCreateInstance():lla haetaan osoitin uuden DirectDraw-objektin IDirectDraw2-liittymään. 4 DrawSurfaceDesc-tietorakenteessa esitetään ensisijainen puskuri, jolla on yksi taustapuskuri. 5 Taustapuskurin osoitin saadaan GetAttachedSurface()- funktiolla.

16 694 6 Blt()-funktiolla pinta voidaan täyttää halutulla värillä pinnan kopioinnin sijaan. 7 Nämä matematiikkaa sisältävät rivit tuottavat kaksi mutkikasta kiertyvää kuviota. Kehittyneet tekniikat void CDrawDlg::OnTimer(UINT nidevent) 74 { 75 CDialog::OnTimer(nIDEvent); static RECT rc={0,0,0,0}; 78 static double dpetals=2.0; // ** Clear the surface quickly with a blit 81 if (rc.right>0) 82 { 83 DDBLTFX dbltfx; 84 dbltfx.dwsize=sizeof(ddbltfx); 85 dbltfx.dwfillcolor=rgb(0,0,0); 86 HRESULT hr = m_piflipsurface->blt(&rc,null, 87 &rc,ddblt_colorfill,&dbltfx); 6 88 } 89 HDC hdc = NULL; // ** Get a device context for the surface 92 if (m_piflipsurface->getdc(&hdc) == DD_OK) 93 { 94 if (hdc) 95 { 96 CDC dc; 97 dc.attach(hdc); rc.right = dc.getdevicecaps(horzres); 100 rc.bottom = dc.getdevicecaps(vertres); double mx = (double)(rc.right>>1); 103 double my = (double)(rc.bottom>>1); CPen pscol(ps_solid,1,rgb(0,255,0)); 106 CPen* ppsold = dc.selectobject(&pscol); double sx = mx/2; 109 double sy = my/2; 110 double sangle = 0.0; // ** draw the graphical animation 113 for(i=0;i<(int)dpetals;i++) 114 { 115 double s1a = sin(sangle); double c1a = cos(sangle); 117 double s2a = sin(sangle * dpetals); 118 double c2a = sin(sangle * dpetals); 119 int x = (int)(mx+sx*c1a+sx*c2a); 120 int y = (int)(my+sy*s1a+sy*s2a); 121 if (i==0) dc.moveto(x,y); 122 else dc.lineto(x,y); 123 sangle+= ;

17 OSA VII LUKU } dpetals+=0.1; 127 dc.selectobject(ppsold); 128 dc.detach(); 129 } 130 m_piflipsurface->releasedc(hdc); 131 } // ** Show the newly drawn surface 134 m_pimainsurface->flip(null,ddflip_wait); } 8 Flip()-funktio odottaa juovanpaluuta ja vaihtaa näyttösivut ilman vajaan puoliksi piirretyn sivun aiheuttamaa välkyntää. Listauksen 28.2 lisäksi joudut lisäämään seuraavat #include-lauseet DrawDlg.cpp-toteutustiedoston alkuun, jotta GUID-arvot ja kosinifunktion määrittely tulisivat kääntämiseen mukaan: #include <initguid.h> #include DrawDlg.h #include math.h DirectDraw-liittymien määrittelyt saadaan mukaan liittämällä seuraava #include-lause DrawDlg.h-tiedoston alkuun: #include <ddraw.h> Myös seuraavat liittymäosoittimet joudutaan määrittelemään CDrawDlg-luokan jäseniksi DrawDlg.h-tiedostoon: IDirectDraw2* m_pidraw; IDirectDrawSurface2* m_pimainsurface; IDirectDrawSurface2* m_piflipsurface; Listauksessa 28.2 nämä liittymäosoittimet asetetaan CDrawDlg-luokan muodostimessa arvoon NULL (rivit 10 11) ja tämän jälkeen COMkirjasto alustetaan funktiolla CoInitialize() rivillä 13. OnInitDialog()-funktiolla luodaan DirectDraw-objekti kutsumalla rivillä 36 CoCreateInstance()-funktiota. Objekti saadaan käyttövalmiiksi alustamalla se vielä rivin 41 Initialize()-funktiolla, missä määritellään näyttöajuriksi käytössä oleva. Objektin yhteiskäyttötasoksi asetetaan rivillä 47 yksinoikeus kokoruutunäyttöön (exclusive, full screen). Rivillä 50 määritellään DDSURFACEDESC-tietorakenne DrawSurfaceDesc ja se alustetaan määrittämään ensisijaisen puskurin lisäksi yksi taustapuskuri kaksoispuskurointia varten. Tämän jälkeen DrawSurfaceDesc-tietorakennetta käyttäen voidaan luoda pinta rivin 59 CreateSurface()-kutsulla; taustapinnan liittymäosoitin saadaan

18 696 Juovanpaluujakso Kun CRT-monitorisi piirtää näytettävän kuvan, sen elektronisäde piirtää yhden rivin kerrallaan vasemmalta oikealle. Näytön sisäpinnan fosfori hehkuu hetken elektronisuihkun osuttua siihen, joka saa aikaan kuvapisteen näkymisen. Kun elektronisäde pääsee näytön alalaitaan, sen on palattava takaisin ylös pisteitä piirtämättä, joten elektronisäde katkaistaan täksi aikaa. Tällöin näyttökortti asettaa paluujaksosta kertovan lipun. Elektronisuihkun ollessa sammutettuna on paras hetki vaihtaa näytölle esitettävä muistilohko, koska vaihtaminen ei näy. Kehittyneet tekniikat tämän jälkeen rivin 65 GetAttachSurface()-kutsulla. Lopuksi rivillä 68 asetetaan 50 ms ajastin (timer) kutsumaan OnTimer()-funktioon (rivi 73) toteutettua piirtofunktiota. Tämä OnTimer()-funktio kannattaa lisätä ClassWizardilla käsittelemään WM_TIMER-sanomaa. Näin toimimalla varmistetaan luokkamäärittelyjen päivittäminen ja sanomakartan rivien lisääminen. Piirrettäessä asetetaan aluksi oletusarvoja, jonka jälkeen rivin 86 Blt()-funktiolla pyyhitään taustapuskurin edelliset kuviot asettamalla sen taustaväri mustaksi. Rivillä 92 hankitaan GDI:ltä piirtopintaosoitin GetDC()-funktiolla taustapinnalle piirtämiseksi. Tämä kahva voidaan sitten liittää CDCluokkaan, kuten rivillä 97 on esitetty. Riveillä käytetään tavallisia GDI-kutsuja ja CPen-oliota viivojen piirtoon pinnalle, jolloin saadaan piirrettyä hyvin nopeasti yksi ruutu monimutkaisesta kierreanimaatiosta. Piirtopinta vapautetaan rivillä 130 ja juuri piirretty puskuri vaihdetaan näytössä olevan tilalle Flip()-funktiolla. Funktion parametri DDFLIP_WAIT saa vaihtamisen odottamaan seuraavaa juovanpaluujaksoa. Rivien tuhoajafunktio palauttaa tavallisen Windowsin työpöydän nollaamalla yhteiskäyttötason ja kutsumalla RestoreDisplayMode()-funktiota näytön palauttamiseksi ennalleen. Release()-kutsu vapauttaa liittymät ja COM-kirjaston alustus purkautuu hallitusti. Jos teet nämä muutokset tavalliseen valintaikkunasovelluksen runkoon, voit kääntää sovelluksen ilman ylimääräisiä API-kirjastoja, mikä osoittaa aitojen COM-objektien vahvuuden. Tämän jälkeen voit suorittaa ohjelmasi ja nauttia sujuvasta ja nopeasta, välkkymättömästä tietokonegrafiikasta, joka havainnollistaa hyvin DirectX:n todellista voimaa. Saat lopetettua sovelluksen missä vaiheessa tahansa Escnäppäintä painamalla (joka on itse asiassa vielä aktiivisena olevan valintaikkunan Cancel-painike). Tämän tehtyäsi tavallinen työpöytä palautetaan hallitusti ja sovellus suljetaan. KATSO MYÖS OLEn ja COMin perusteet luvusta 25. Lisätietoja piirtopinnoista ja GDI:llä piirtämisestä luvusta 15.

19 OSA VII LUKU Direct3D:n käyttö Direct3D API:lla saat käyttöösi uusimpien näyttökorttien 3D-ominaisuudet. Direct3D toimii yhdessä DirectDraw:n kanssa peleissä ja virtuaalimaailmasovelluksissa nähdyn perspektiivigrafiikan tuottamiseksi. Direct3D käyttää kolmesta osasta koostuvaa piirtokoneistoa, joka tukee koordinaattien matriisimuunnoksia, piste- ja hajavalotehosteita ja saadun näkymän rasteroimista sen piirtämistä varten. Direct3D:n toiminnot ovat tarjolla usean liittymän kautta. Näiden avulla saadaan muodostettua ja esitettyä mutkikkaita kolmiulotteisia näkymiä kahdessa eri piirtotilassa, jotka ovat immediate-mode ja retained-mode. Immediate-mode tilan kappaleet ovat alemman tason yksinkertaisia ja nopeasti esitettäviä peruskappaleita (joiden liittymät on esitetty taulukossa 28.2). Näiden päälle on rakennettu korkean tason kappaleita, joiden avulla voidaan tehdä edistyneitä korkeatasoisia reaaliaikaisia 3D näkymiä ja animaatioita. Uudet 3D-kortit Viime vuosina on tullut yhä enemmän käyttöön 3Dnäyttökortteja, jotka toteuttavat omilla piireillään useita kolmiulotteisen kuvan esittämisessä tarvittavia toimenpiteitä. Grafiikkaprosessori suorittaa mutkikkaat koordinaattilaskennan selvästi pelkkää ohjelmallista toteutusta nopeammin. Tämä vapauttaa myös prosessoriaikaa, jotta CAD- ja peliohjelmistojen kehittäjille jäisi enemmän prosessoriaikaa pelin laadun ja kuvan laadun muuhun kehittämiseen. TAULUKKO 28.2 Direct3D:n liittymät ja niiden toiminnot Direct3D-liittymä Toiminnot IDirect3D Alustaa ympäristön ja luo Light-, Material- ja Viewport-objektit. IDirect3DDevice Käsittelee allaolevan 3D-laitteiston ja ympäris tön ominaisuuksien konfiguroinnin. Tällainen liittymä saadaan DirectDraw-pinnalta QueryInterface()-kutsulla. IDirect3DExecuteBuffer Suorituspuskureissa pidetään piirtokäskyjä ja 3Dperusobjektien tietoja valmiina kerralla piirrettäviksi. IDirect3DLight Konfiguroi näkymän valonlähteiden tiedot. IDirect3DMaterial Ylläpitää materiaalien ominaisuuksia ja niiden heijastavuus- ja läpinäkyvyystietoja. IDirect3DTexture Ylläpitää ylläolevien 3D-pintojen pintakuviobittikarttoja. IDirect3DViewport Ryhmittää valot, pintakuviot ja taustatehosteet paikalleen näytöllä. Tämän jälkeen useita viewport-projektioita yhdistetään ja tulos on valmis piirrettäväksi laitteelle peruskappaleiden koodrinaattitietojen kera.

20 698 DirectPlayn verkkoprotokollatuki DirectPlay API tukee tiedonsiirtoa koneiden välillä, jotka on kytketty yhteen sarjakaapelilla, TCP/IPlähiverkolla, puhelinverkkoliitynnällä tai suoralla Internetliitynnällä, Netwarella ja monella muullakin verkkototeutuksella. Kehittyneet tekniikat DirectPlayn käyttö DirectPlayn avulla voidaan helposti toteuttaa monen pelaajan verkkopelejä ilman tarvetta räätälöidä jokaista verkkotyyppiä erikseen. DirectPlayn liittymät, IDirectPlay2 ja IDirectPlayLobby, huolehtivat verkkopelaamiseen liittyvistä objekteista ja istuntojen hallinnasta. DirectInputin käyttö DirectInputin avulla päästään näppäimistöön ja hiireen tavallista Windowsin syöttömekanismia nopeammin. DirectInput tukee myös monipainikkeisia ja akselisia ohjainsauvoja ja auttaa niiden kalibroinnissa. Tämä API on yksinkertainen mutta joustava, ja se on toteutettu kahdella COM-liittymällä. IDirectInput-liittymällä hallitaan järjestelmän syöttölaitteita ja niiden tilaa. Sillä voidaan myös luoda ilmentymiä IDirectInputDevice-liittymästä yksittäisen laitteen konfiguroimiseksi ja syötteen lukemiseksi. DirectMusic DirectMusic on DirectX-perheen uusin tulokas. Sen avulla voidaan peleihin luoda keinotekoista musiikkia midiäkin monipuolisemmin. Taustamusiikkia varten käytettävissä ovat myös samplatut ääninäytteet. DirectSetupin käyttö DirectSetup API on kenties kaikken pienen API-rajapinta. Siinä on vain kaksi funktiota: DirectXSetup(), joka automatisoi kaikkien DirectX-osien asennuksen ja DirectXRegisterApplication(), joka rekisteröi pelin DirectPlayLobby-enabloiduksi monen pelaajan verkkosovellukseksi. Viestien ja sähköpostin luominen MAPIlla Microsoft Messaging API (MAPI) ei ole oikeastaan funktiokirjastorajapinta, vaan arkkitehtuurin muodostava standardikokoelma. Näitä standardeja seuraamalla ohjelmiston kehittäjät voivat keskittyä tekemään sähköpostijärjestelmän eri osia.

Microsoft Outlook Web Access. Pikaohje sähköpostin peruskäyttöön

Microsoft Outlook Web Access. Pikaohje sähköpostin peruskäyttöön Microsoft Outlook Web Access Pikaohje sähköpostin peruskäyttöön 1 Käyttö työpaikalla (Hallinto-verkossa) Käynnistetään sähköposti Työpöydällä olevasta Faiposti-pikakuvakkeesta (hiirellä kaksoisklikkaamalla).

Lisätiedot

Hiirisanomiin vastaaminen

Hiirisanomiin vastaaminen OSA II LUKU 8 163 8 LUKU Reagointi käyttäjän painaessa tai vapauttaessa hiiren painikkeen Omien funktioiden käyttö, kun hiiri liikkuu Hiirikoordinaattien käsittely ja valitun alueen tutkiminen 164 Näppäinpainallusten

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Sähköposti ja uutisryhmät 4.5.2005

Sähköposti ja uutisryhmät 4.5.2005 Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa.

ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA. Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. ELOKUVATYÖKALUN KÄYTTÖ ANIMAATION LEIKKAAMISESSA Kun aloitetaan uusi projekti, on se ensimmäisenä syytä tallentaa. Projekti kannattaa tallentaa muutenkin aina sillöin tällöin, jos käy niin ikävästi että

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy Käyttöohje Ticket Inspector Versio 1.0 Sportum Oy 10.5.2017 Sivu 1 Sisällysluettelo 1. Yleistä... 2 2. Kirjautuminen ensimmäisellä kerralla / PIN-koodin unohtuessa... 3 3. Tunnistautuminen... 4 4. Päänäkymä...

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Transkribuksen pikaopas

Transkribuksen pikaopas Transkribuksen pikaopas Transkribus on alusta, jolla voi puhtaaksikirjoittaa haluamaansa aineistoa ja automaattisesti tunnistaa käsinkirjoitettua tekstiä. Sitä käyttääkseen täytyy rekisteröityä. Tässä

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

SSH Secure Shell & SSH File Transfer

SSH Secure Shell & SSH File Transfer SSH Secure Shell & SSH File Transfer TIETOHALLINTO Janne Suvanto 1.9 2002 Sisällysluettelo Sisällysluettelo... 1 Yleistä... 2 SSH Secure Shell ohjelman asetukset... 3 POP3 tunnelin asetukset... 6 Yhteyden

Lisätiedot

Windows 10 käyttöjärjestelmän helppokäyttötoiminnot ja asetukset

Windows 10 käyttöjärjestelmän helppokäyttötoiminnot ja asetukset Windows 10 käyttöjärjestelmän helppokäyttötoiminnot ja asetukset Windowsin asetukset on keskus, jossa voit mm. muuttaa tietokoneen näkemistä, kuulemista ja käyttämistä helpottavia helppokäyttötoimintoja.

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

JOVISION IP-KAMERA Käyttöohje

JOVISION IP-KAMERA Käyttöohje JOVISION IP-KAMERA Käyttöohje 1 Yleistä... 2 2 Kameran kytkeminen verkkoon... 2 2.1 Tietokoneella... 2 2.2 Älypuhelimella / tabletilla... 5 3 Salasanan vaihtaminen... 8 3.1 Salasanan vaihtaminen Windows

Lisätiedot

Android. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Android 4.0.3 Ice Cream Sandwichissä.

Android. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Android 4.0.3 Ice Cream Sandwichissä. Y K S I K Ä Ä N A S I A K A S E I O L E M E I L L E LI I A N P I E NI TAI M I K Ä Ä N H A A S T E LI I A N S U U R I. Android Sähköpostin määritys Määrittämällä sähköpostitilisi Android-laitteeseesi, voit

Lisätiedot

Windows Phone. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Windows Phone 8 -puhelimessa.

Windows Phone. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Windows Phone 8 -puhelimessa. Y K S I K Ä Ä N A S I A K A S E I O L E M E I L L E LI I A N P I E NI TAI M I K Ä Ä N H A A S T E LI I A N S U U R I. Windows Phone Sähköpostin määritys Määrittämällä sähköpostitilisi Windows-puhelimeesi,

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Sähköpostitilin käyttöönotto

Sähköpostitilin käyttöönotto Sähköpostitilin käyttöönotto Versio 1.0 Jarno Parkkinen jarno@atflow.fi Sivu 1 / 16 1 Johdanto... 2 2 Thunderbird ohjelman lataus ja asennus... 3 3 Sähköpostitilin lisääminen ja käyttöönotto... 4 3.2 Tietojen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Lupa opetuskäyttöön pyydettävä. info@tietsikka.net. Näppäimistö. Kohdistimen ohjausnäppäimistö. Funktionäppäimistö. Kirjoitusnäppäimistö

Lupa opetuskäyttöön pyydettävä. info@tietsikka.net. Näppäimistö. Kohdistimen ohjausnäppäimistö. Funktionäppäimistö. Kirjoitusnäppäimistö Näppäimistö 2005 Päivi Vartiainen 1 Kohdistimen ohjausnäppäimistö Funktionäppäimistö Kirjoitusnäppäimistö Numeronäppäimistö Kohdistimen ohjausnäppäimistöllä siirretään hiiren osoitinta ruudulla. Kohdistin

Lisätiedot

Ilmoitus saapuneesta turvasähköpostiviestistä

Ilmoitus saapuneesta turvasähköpostiviestistä Tullin turvasähköposti Asiakkaan ohje www.tulli.fi versio 2.2 8.1.2015 Korvaa version 2.1 22.5.2014 Tullin turvasähköposti Tulli lähettää sinulle sähköpostiviestin salattuna silloin, kun viesti tai sen

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja. Pikaopas Microsoft Excel 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Komentojen lisääminen pikatyökaluriville Pidä

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

SÄHKÖPOSTIPALVELUIDEN KÄYTTÖÖNOTTO LOUNEA OY

SÄHKÖPOSTIPALVELUIDEN KÄYTTÖÖNOTTO LOUNEA OY 1 SÄHKÖPOSTIPALVELUIDEN KÄYTTÖÖNOTTO LOUNEA OY 17.8.2015 Lounea Oy Tehdaskatu 6, 24100 Salo Puh. 029 707 00 Y-tunnus 0139471-8 www.lounea.fi Asiakaspalvelu 0800 303 00 Yrityspalvelu 0800 303 01 Myymälät

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA

KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA SISÄLLYS 1. KUVAN TUOMINEN PAINTIIN...1 1.1. TALLENNETUN KUVAN HAKEMINEN...1 1.2. KUVAN KOPIOIMINEN JA LIITTÄMINEN...1 1.1. PRINT

Lisätiedot

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0). V1.0.0 (14.10.2015) 1 (7) KYTKENTÄ HUOM: toimii Modbus-masterina. Tämän vuoksi toinen mahdollinen Modbus-master on irrotettava verkosta, kun kytketään valmiiseen Modbus-verkkoon. Produalin Modbus-laitteiden

Lisätiedot

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje Lumon tuotekirjaston asennusohje Asennus- ja rekisteröintiohje 1. Sisältö 1. Asennuspaketin lataaminen 4 2. Zip-tiedoston purkaminen ja sovelluksen asentaminen 4 3. Sovelluksen rekisteröiminen 7 4. Sisällön

Lisätiedot

Viva-16. Käyttöohje. 1.4.2009 Veikko Nokkala Suomen Videovalvonta.com

Viva-16. Käyttöohje. 1.4.2009 Veikko Nokkala Suomen Videovalvonta.com Viva-16 Käyttöohje 1.4.2009 Veikko Nokkala Sisällysluettelo Sisällysluettelo... 2 Ohjelmisto käyttöliittymä... 3 Asentaminen... 3 Käyttöönotto... 3 Katselu... 6 Tallennus... 8 Toistaminen... 9 Selain käyttöliittymä...

Lisätiedot

OFFICE 365 PIKAOHJE 14.01.2014

OFFICE 365 PIKAOHJE 14.01.2014 OFFICE 365 PIKAOHJE 14.01.2014 SISÄLTÖ 1. O365 AVAAMINEN 3 2. KIRJAUTUMINEN 3 3. SALASANAN VAIHTAMINEN 5 4. SÄHKÖPOSTIN KANSIO RAKENNE 6 5. POISSAOLOVIESTI 7 6. SÄHKÖPOSTIN ALLEKIRJOITUS 8 7. YHTEYSTIEDOT

Lisätiedot

Epooqin perusominaisuudet

Epooqin perusominaisuudet Epooqin perusominaisuudet Huom! Epooqia käytettäessä on suositeltavaa käyttää Firefox -selainta. Chrome toimii myös, mutta eräissä asioissa, kuten äänittämisessä, voi esiintyä ongelmia. Internet Exploreria

Lisätiedot

ipad maahanmuuttajien ohjauksessa Laitteen käyttöönotto Kotomaatti 2016

ipad maahanmuuttajien ohjauksessa Laitteen käyttöönotto Kotomaatti 2016 ipad maahanmuuttajien ohjauksessa Laitteen käyttöönotto Kotomaatti 2016 Sisältö hyperlinkkeinä Miten ipad avataan ja suljetaan? Miten sovellukset avataan ja suljetaan? Kuinka luodaan kansio? Kuinka käytän

Lisätiedot

Ohjeet e kirjan ostajalle

Ohjeet e kirjan ostajalle 1 Ohjeet e kirjan ostajalle 1. Ostaminen ja käyttöönotto 1.1. Näin saat e kirjan käyttöösi Lataa tietokoneellesi Adobe Digital Editions (ADE) ohjelma täältä: http://www.adobe.com/products/digitaleditions/.

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen Kahoot! Kahoot! on internetselaimessa toimiva sovellus, jonka avulla voit pitää pieniä testejä/kokeita tai kysellä mielipiteitä. Testeihin liittyy myös pelillisyys, sillä eniten pisteitä saanut voittaa.

Lisätiedot

Visma Nova. Visma Nova ASP käyttö ja ohjeet

Visma Nova. Visma Nova ASP käyttö ja ohjeet Visma Nova Visma Nova ASP käyttö ja ohjeet Oppaan päiväys: 2.2.2012. Helpdesk: http://www.visma.fi/asiakassivut/helpdesk/ Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai

Lisätiedot

Apple iphone 4 puhelimen käyttöönotto:

Apple iphone 4 puhelimen käyttöönotto: Apple iphone 4 puhelimen käyttöönotto: Ennen vanhan puhelimesi käytöstä poistoa, pidäthän huolen, että olet synkronisoinut yhteystietosi Exchange palvelimelle! iphone 4 yhdellä silmäyksellä Purettuasi

Lisätiedot

Sonera Yrityssähköposti. Outlook 2013 lataus ja asennus

Sonera Yrityssähköposti. Outlook 2013 lataus ja asennus Sonera Yrityssähköposti. Outlook 2013 lataus ja asennus Sisältö 1/14 Sonera Yrityssähköpostin käyttöönotto Outlook 2013 -sovelluksella SISÄLLYS Outlook 2013 asennuspaketin lataus... 2 Outlook 2013 asennus...

Lisätiedot

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistävalikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

Lisätiedot

Ohjeistus yhdistysten internetpäivittäjille

Ohjeistus yhdistysten internetpäivittäjille Ohjeistus yhdistysten internetpäivittäjille Oman yhdistyksen tietojen päivittäminen www.krell.fi-sivuille Huom! Tarvitset päivittämistä varten tunnukset, jotka saat ottamalla yhteyden Kristillisen Eläkeliiton

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola 26.8.2016 SISÄLLYSLUETTELO 1. Omat asetukset kuntoon (kaikkien tehtävä aluksi) sivut 3-5 2. Tärkeiden sivujen tilaaminen omiin linkkeihin sivut

Lisätiedot

E-kirjan lainaaminen ja lukeminen

E-kirjan lainaaminen ja lukeminen E-kirjan lainaaminen ja lukeminen Missä ne ovat LAKIA-KIRJASTOJEN E-KIRJAT OVAT ELLIBS-KIRJAKAUPAN SIVULLA. VOIT HAKEA NIITÄ KAHDELLA TAVALLA: 1. LAKIA-TIETOKANNASTA ETSIMÄLLÄ TIETTYÄ KIRJAA TAI KAIKKIA

Lisätiedot

Autentikoivan lähtevän postin palvelimen asetukset

Autentikoivan lähtevän postin palvelimen asetukset Autentikoivan lähtevän postin palvelimen asetukset - Avaa Työkalut valikko ja valitse Tilien asetukset - Valitse vasemman reunan lokerosta Lähtevän postin palvelin (SM - Valitse listasta palvelin, jonka

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

Edico Lite ja S Käyttöohje istunnon pitäjälle ja kutsutulle

Edico Lite ja S Käyttöohje istunnon pitäjälle ja kutsutulle Edico Lite ja S Käyttöohje istunnon pitäjälle ja kutsutulle Sisältö: sivu Käyttäjäroolit Edico-istunnoissa 1 Istuntoon kutsutun kirjautuminen 1 Edico Lite, istunnon avausnäkymä 2 Edico S, istunnon avausnäkymä

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

Esimerkkinä http://wordpress.com/ - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.

Esimerkkinä http://wordpress.com/ - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress. BLOGIN LUOMINEN Esimerkkinä http://wordpress.com/ - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.org) Myös http://blogspot.com on ilmainen ja helppokäyttöinen

Lisätiedot

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

BaseMidlet. KÄYTTÖOHJE v. 1.00

BaseMidlet. KÄYTTÖOHJE v. 1.00 KÄYTTÖOHJE v. 1.00 KUVAUS BaseMidlet on matkapuhelimessa toimiva sovellus jolla voi etäkäyttää Tiimi 7000 sarjan säätimiä. Copyright Team-Control Oy, oikeudet muutoksiin pidätetään. TiiMi on Team-Control

Lisätiedot

Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen.

Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen. 1 / 50 1. Etusivu Ohjelmisto on tietokanta pohjainen tiedostojärjestelmä, joka sisältää virtuaalisen hakemisto rakenteen. Virtuaali hakemistoihin voi tuoda tiedostoja tietokoneelta tai luoda niitä tällä

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

NÄIN TEET VIDEO-MAILIN (v-mail)

NÄIN TEET VIDEO-MAILIN (v-mail) 1 NÄIN TEET VIDEO-MAILIN (v-mail) Kirjaudu iwowwe Back Officeen. HOME Klikkaa kotisivullasi (HOME) olevaa vihreää Video E-mail kuvaa Vastaava linkki Video Email on myös Video Tools - alasvetovalikossa

Lisätiedot

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Salasanojen hallinta Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Restaurant Enterprise Solution Asiakirjan tarkoitus Tämä asiakirja kertoo tarvittavat säännöt kuinka hallinnoida RES salasanoja

Lisätiedot

AdobeConnect peruskäyttövinkkejä

AdobeConnect peruskäyttövinkkejä AdobeConnect peruskäyttövinkkejä Verkkotilaisuuden valmistelu ja kirjautuminen 1. Kytke kamera ja mikrofoni ennen tietokoneen käynnistystä a. Pöytäkoneessa laitteet kytketään aina TAKAPANEELIIN 2. Käynnistä

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 12.4.2010 T-106.1208 Ohjelmoinnin perusteet Y 12.4.2010 1 / 34 Graafiset käyttöliittymät Tähän asti kirjoitetuissa ohjelmissa on ollut tekstipohjainen käyttöliittymä.

Lisätiedot

Kuvan ottaminen ja siirtäminen

Kuvan ottaminen ja siirtäminen Kuvan ottaminen ja siirtäminen Kuvien ottaminen Kuvien ottaminen tapahtuu oppilaiden omien kännykkäkameroiden tai koulun tablettien kameran avulla o Työ tehdään pareittain, joten ainakin toisella työparin

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen harjoitustyö. ASCII-grafiikkaa Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita

Lisätiedot

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy Opiskelijoiden OneDriveohje Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy Ohjeen nimi Opiskelijoiden OneDrive-ohje Vastuuhenkilö Mari Jokiniemi

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Toukokuu 2014 1 (11) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Päivitysohje Toukokuu 2014 2 (11) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku...

Lisätiedot

KODU. Lumijoen peruskoulu

KODU. Lumijoen peruskoulu KODU Lumijoen peruskoulu Sisällysluettelo 1. Aloitus... 2 1.1 Pelin tallennuspaikka... 2 1.2 Kodu Game lab... 3 2 Maan luominen... 4 2.1. Seinän tekeminen... 5 2.2. Vesialueen tekeminen peliin... 6 2.3.

Lisätiedot

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) 1 UUDEN KILPAILUTIEDOSTON AVAUS Avaa Wcondes ohjelma tuplaklikkaamalla wcondes.lnk ikonia. Ohjelma avaa automaattisesti viimeksi tallennetun kilpailutiedoston.

Lisätiedot

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN -Mene osoitteeseen keskustanuoret.fi/user - Kirjoita saamasi käyttäjätunnus ja salasana - Klikkaa yllä olevaa piirisi logoa niin

Lisätiedot

Ohjeisto Trimble Pro 6H yhdistämisestä Juno 5:een

Ohjeisto Trimble Pro 6H yhdistämisestä Juno 5:een Liite 4 1(19) KEMIN ENERGIA Ohjeisto Trimble Pro 6H yhdistämisestä Juno 5:een Janne Pirttimaa 12.2.2013 Liite 4 2(19) SISÄLLYSLUETTELO 1 Yhdistäminen bluetoothilla... 3 2. Ongelmatilanteet ja ratkaisut...

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla

Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla 02/2016, ed. 5 KÄYTTÖOHJE Gree Smart -sovelluksen (WiFi) asennus- ja käyttöohje: Hansol-sarjan ilmalämpöpumput WiFi-ominaisuuksilla Maahantuoja: Tiilenlyöjänkuja 9 A 01720 Vantaa www.scanvarm.fi Kiitos

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

Sport In The Box Käyttöohje

Sport In The Box Käyttöohje Sport In The Box Käyttöohje Esivalmistelut: Kytke käytössä oleva pelikello/konsoli kiinni USBkaapelilla tietokoneeseen ennen virran kytkemistä pelikelloon/konsoliin. Odota että laite on asennettu käyttövalmiiksi,

Lisätiedot

KULTA2-JÄRJESTELMÄN KÄYTTÖOPAS Liikunta-, kulttuuri-, nuoriso-, hyvinvointiavustukset

KULTA2-JÄRJESTELMÄN KÄYTTÖOPAS Liikunta-, kulttuuri-, nuoriso-, hyvinvointiavustukset KULTA2-JÄRJESTELMÄN KÄYTTÖOPAS Liikunta-, kulttuuri-, nuoriso-, hyvinvointiavustukset Sisällysluettelo: 1. Sisällysluettelo s. 1 2. Kulta2-järjestelmän käyttäminen ensimmäistä kertaa s. 2-3 3. Kirjautuminen

Lisätiedot

Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen

Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen Nämä ohjeet koskevat Microsoft Office-versiota 2003 tai uudempaa. Toimintoa kutsutaan nimellä Package for CD. Vanhemmissa versioissa

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Videokuvan siirtäminen kamerasta tietokoneelle Windows Movie Maker -ohjelman avulla

Videokuvan siirtäminen kamerasta tietokoneelle Windows Movie Maker -ohjelman avulla Videokuvan siirtäminen kamerasta tietokoneelle Windows Movie Maker -ohjelman avulla 1. Digivideokamera liitetään tietokoneeseen FireWire-piuhalla. (Liitännällä on useita eri nimiä: myös IEEE 1394, DV,

Lisätiedot

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1.

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1. Condes Suunnistuksen ratamestariohjelmisto Versio 7 Quick Start opas Yhteystiedot: olfellows Jouni Laaksonen Poijukuja 4 21120 RAISIO jouni.laaksonen@olfellows.net www.olfellows.net olfellows www.olfellows.net

Lisätiedot

Lyseopaneeli 2.0. Käyttäjän opas

Lyseopaneeli 2.0. Käyttäjän opas Lyseopaneeli 2.0 Käyttäjän opas 1. Esittely Lyseopaneeli on Oulun Lyseon lukion käyttäjätietojen hallintapalvelu jonka tarkoitus on niputtaa yhteen muutamia oleellisia toimintoja. 2. Yleistä paneelin käytöstä

Lisätiedot

Windows. Valmistelut. Windows

Windows. Valmistelut. Windows Laiteohjelman päivittäminen vaihdettavalla objektiivilla varustetuille edistyksellisille Nikon 1 -kameroille, 1 NIKKOR -objektiiveille ja Nikon 1 -lisävarusteille Kiitos, että valitsit Nikon-tuotteen.

Lisätiedot