G240x128 a G128x64 JEDNOTKY IMPLEMENTUJÍCÍ GRAFICKÉ OPERACE VE VIDEOPAMĚTI. Příručka uživatele a programátora

Podobné dokumenty
umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora

udspt10r JEDNOTKA IMPLEMENTUJÍCÍ DISPLEJ VZDÁLENÉ VARIANTY TERMINÁLU TERM10 Příručka uživatele a programátora

usimt03r JEDNOTKA PRO SIMULACI VZDÁLENÉ VARIANTY TERMINÁLU TERM03 NA POČÍTAČI PC Příručka uživatele a programátora

usimt03 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM03 NA PC Příručka uživatele a programátora

LZ77 KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU LZ77. Příručka uživatele a programátora

usimt10 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM10 NA PC Příručka uživatele a programátora

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora

uioflex JEDNOTKA PRO KONFIGURACI DESKY IOFLEX01 Příručka uživatele a programátora

Bitmaps SPRÁVCE BITMAP A POMOCNÉ FUNKCE PRO PRÁCI S BITMAPAMI. Příručka uživatele a programátora

uterm03r JEDNOTKA IMPLEMETUJÍCÍ VZDÁLENÝ TERMINÁL TERM03 Příručka uživatele a programátora

uioct01 JEDNOTKA PRO MĚŘENÍ FREKVENCE (OTÁČEK) DESKOU IOCT01 Příručka uživatele a programátora

Software pro grafické terminály TERM10 a TERM03

usimt01 JEDNOTKA IMPLEMENTUJÍCÍ OBJEKTY PRO SIMULACI TERMINÁLU TERM01 NA PC Příručka uživatele a programátora

upct01 SIMULÁTOR TERMINÁLU TERM01 NA POČÍTAČI PC Příručka uživatele a programátora

TKeypad KNIHOVNY DEFINIC KLÁVESNIC PRO TERMINÁLY TOUCH. Příručka uživatele a programátora

uioadda1 JEDNOTKA PRO OVLÁDÁNÍ DESEK IOADDA01, IOADDA02 A IODA01 Příručka uživatele a programátora

DiskIO JEDNOTKA PRO PRÁCI S RAM, ROM A FLASH DISKY. Příručka uživatele a programátora

urtotemp JEDNOTKA PRO PŘEVODY ODPORU ČIDLA NA TEPLOTU Příručka uživatele a programátora

TEDrv OVLADAČE KLÁVESNICE, MYŠI A DISPLEJE EMULÁTORU TERMINÁLU PRO MS WINDOWS. Příručka uživatele a programátora

utermchr JEDNOTKA PRO PRÁCI SE ZNAKOVÝM TERMINÁLEM Příručka uživatele a programátora

uaterm JEDNOTKA PRO PRÁCI S ABSTRAKTNÍM TERMINÁLEM Příručka uživatele a programátora

ucomm JEDNOTKA ZPROSTŘEDKOVÁVAJÍCÍ SLUŽBY BIOSU KITV40 PRO SÉRIOVOU KOMUNIKACI Příručka uživatele a programátora

uflx2pos JEDNOTKA PRO PRÁCI S INKREMENTÁLNÍMI ČIDLY V DESCE IOFLEX02 Příručka uživatele a programátora

udispt10 JEDNOTKA IMPLEMENTUJÍCÍ DISPLEJE TERMINÁLU TERM10 Příručka uživatele a programátora

Nastavení konstant regulátoru PID

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

COUDP KNIHOVNA PROTOKOLU UDP. Příručka uživatele a programátora

umenuchr JEDNOTKA PRO VYTVÁŘENÍ ZNAKOVÝCH UŽIVATELSKÝCH MENU Příručka uživatele a programátora

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

NumToStr JEDNOTKA PRO PŘEVODY ČÍSEL, DATUMU A ČASU A JINÝCH DATOVÝCH STRUKTUR NA ŘETĚZCE A ZPĚT. Příručka uživatele a programátora

LibVUtils UTILITY PRO BALÍK KNIHOVEN LIBV. Příručka uživatele a programátora

Datové typy a struktury

Sdílení dat mezi podprogramy

Knihovna RecDBXLib ZÁZNAMY V DATABOXU TXV

Zobrazovací jednotky a monitory

DUM 06 téma: Tvorba makra pomocí VBA

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Práce s textovými proměnnými v DetStudiu

LdrLib KNIHOVNY PRO TVORBU ZAVADĚČE (LOADERU) ŘÍDICÍCH APLIKACÍ. Příručka uživatele a programátora

Sada 1 - Základy programování

O datových typech a jejich kontrole

PŘETĚŽOVÁNÍ OPERÁTORŮ

dovolují dělení velkých úloh na menší = dekompozice

Práce s binárními soubory. Základy programování 2 Tomáš Kühr

Reliance 3 design OBSAH

Semestrální práce 2 znakový strom

CADKON Stavební konstrukce 2013

8 Třídy, objekty, metody, předávání argumentů metod

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

Zdroj:

BALISTICKÝ MĚŘICÍ SYSTÉM

Více o konstruktorech a destruktorech

Knihovna CanvasLib TXV první vydání prosinec 2014 změny vyhrazeny

Dynamické datové typy a struktury

Termíny a definice TERMÍNY A DEFINICE POUŽÍVANÉ V MANUÁLECH FIRMY SOFCON. Příručka uživatele a programátora

Cvičení 7: Delphi objekty CheckedBox, Radio- Button, EditBox

konstruktory a destruktory (o)

Paměť počítače. alg2 1

10. MAPOVÁNÍ BINÁRNÍCH A ANALOGOVÝCH VSTUPŮ A VÝSTUPŮ

OSTRAVSKÁ UNIVERSITA V OSTRAVĚ Pedagogická fakulta Obor informační technologie ve vzdělávání Kombinované studium

Struktura programu v době běhu

Fonts SPRÁVCE FONTŮ A POMOCNÉ FUNKCE PRO PRÁCI S FONTY. Příručka uživatele a programátora

Popis funkcí a parametrů programu. Reliance External communicator. Verze 1.5.0

KitKing POPIS VIZUALIZAČNÍCH KNIHOVEN PRO ŘÍDICÍ SYSTÉM KIT. Příručka uživatele a programátora

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

přetížení operátorů (o)

ALGORITMIZACE A PROGRAMOVÁNÍ

POPIS NOVINEK A VYLEPŠENÍ

NPRG030 Programování I, 2015/16 1 / :25:32

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

KS-VARIOLF Komunikační rozhraní

Algoritmizace a programování

Kde se používá počítačová grafika

VY_32_INOVACE_08_2_04_PR

Konstruktory a destruktory

Implementace aritmetického stromu pomocí směrníků

APS 400 ipanel. Online informační a ovládací panel pro systém APS 400. Uživatelská příručka

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr

Práce se soubory. Úvod do programování 2 Tomáš Kühr

Úloha 1. Text úlohy. Vyberte jednu z nabízených možností: NEPRAVDA. PRAVDA Úloha 2. Text úlohy

Tick JEDNOTKA PRO PRÁCI SE SYSTÉMOVÝM ČASOVAČEM. Příručka uživatele a programátora

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Funkční objekty v C++.

13 Barvy a úpravy rastrového

Knihovna XmlLib TXV druhé vydání říjen 2012 změny vyhrazeny

Knihovna EpsnetLib TXV první vydání září 2012 změny vyhrazeny

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Transkript:

G240x128 a G128x64 JEDNOTKY IMPLEMENTUJÍCÍ GRAFICKÉ OPERACE VE VIDEOPAMĚTI Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz Verze dokumentu 1.10

Informace v tomto dokumentu byly pečlivě zkontrolovány a SofCon věří, že jsou spolehlivé, přesto SofCon nenese odpovědnost za případné nepřesnosti nebo nesprávnosti zde uvedených informací. SofCon negarantuje bezchybnost tohoto dokumentu ani programového vybavení, které je v tomto dokumentu popsané. Uživatel přebírá informace z tohoto dokumentu a odpovídající programové vybavení ve stavu, jak byly vytvořeny a sám je povinen provést validaci bezchybnosti produktu, který s použitím zde popsaného programového vybavení vytvořil. SofCon si vyhrazuje právo změny obsahu tohoto dokumentu bez předchozího oznámení a nenese žádnou odpovědnost za důsledky, které z toho mohou vyplynout pro uživatele. Datum vydání: 16.05.2003 Datum posledního uložení dokumentu: 16.05.2003 (Datum vydání a posledního uložení dokumentu musí být stejné) Upozornění: V dokumentu použité názvy výrobků, firem apod. mohou být ochrannými známkami nebo registrovanými ochrannými známkami příslušných vlastníků. Copyright 2003, SofCon spol. s r.o., Milan Čečrdle

Obsah : 1.O dokumentu 5 1.1. Revize dokumentu 5 1.2. Účel dokumentu 5 1.3. Rozsah platnosti 5 1.4. Související dokumenty 5 2.Termíny a definice 5 3.Úvod 6 4.Popis konstant a typů 6 5.Popis objektu tbitmapinfoobj 9 5.1. Proměnné 9 5.2. Metody 9 5.2.1. AssignBMPAddr 9 6.Proměnné jednotky 9 6.1. User_FontArray 9 6.2. User_BkBmps 9 7.Popis procedur a funkcí 10 7.1.1. GetCFontMetrics 10 7.2. Procedury pro práci s videopamětí 10 7.2.1. mclear 10 7.2.2. mdrawpoint 10 7.2.3. mdrawline 10 7.2.4. mdrawcircle 11 7.2.5. mdrawbox 11 7.2.6. mfillbox 11 7.2.7. mtextoutxy 11 7.3. Procedury pro skládání videopamětí 11 7.3.1. RopWord_Not 12 7.3.2. RopWord_Or 12 7.3.3. RopWord_Xor 12 7.4. Zobrazovací procedury pro fonty 12 7.4.1. pviewfont 13

1. O dokumentu 1.1. Revize dokumentu Verze dokumentu Verze SW Autor Datum vydání 1.00 1.XX Če První vydání Popis změn 1.10 2.XX Tu 16.05.2003 Úprava dokumentu dle ISO9000 1.2. Účel dokumentu Tento dokument slouží jako popis knihoven implementujících grafické operace ve videopaměti. 1.3. Rozsah platnosti Určen pro programátory a uživatele programového vybavení SofCon. 1.4. Související dokumenty Pro čtení tohoto dokumentu je potřeba seznámit se s manuálem utermgr a ubitmap. Popis formátu verze knihovny a souvisejících funkcí je popsán v manuálu LibVer. 2. Termíny a definice Používané termíny a definice jsou popsány v samostatném dokumentu Termíny a definice. file:g240128_v0110.doc 16.05.2003 v1.10 5 / 13

3. Úvod Jednotky implementují typ videopaměti pro rozměr 240 128 resp. 128 64 pixelů a veškeré základní grafické operace nad touto videopamětí. Jednotky jsou využívány zejména objekty grafických displejů pro vykreslení grafického obsahu obrazovek. Implementace obou jednotek je shodná, liší se pouze v rozměru deklarované videopaměti. Jednotky nahrazují starší jednotku ushwfnt. 4. Popis konstant a typů cverno = např. $0251; { BCD formát } cver = např. '02.51,07.08.2003'; Číslo verze jednotky v BCD tvaru a v textové podobě včetně datumu změny. cdisppixelwidth = 240; { G240x128 } cdisppixelwidth = 128; { G128x64 } Konstanta cdisppixelwidth definuje horizontální rozměr videopaměti v pixelech. cdisppixelheight = 128; { G240x128 } cdisppixelheight = 64; { G128x64 } Konstanta cdisppixelheight definuje vertikální rozměr videopaměti v pixelech. cbytesonline = cdisppixelwidth shr 3; Konstanta cbytesonline definuje velikost paměti alokovanou pro jeden mikrořádek videopaměti. cbytesonarea = cbytesonline*cdisppixelheight; Konstanta cbytesonarea definuje velikost paměti alokovanou pro celou plochu videopaměti. tvideostr = string[80]; Typ tvideostr je typ řetězce pro výpis textů do videopaměti. pvideorwm = ^tvideorwm; tvideorwm = record case byte of 0:(B: array[0..cbytesonarea-1] of byte); 1:(W: array[0..(cbytesonarea shr 1)-1] of word); end; Typ tvideorwm implementuje videopaměť jako bitovou mapu. Videopaměť je organizovaná po řádcích, přičemž jednomu bytu odpovídá 8 pixelů umístěných vedle sebe. Nejvýznamnější bit (MSB) přísluší pixelu umístěnému v osmici nejvíce vlevo. Nastavení bitu má význam bílé barvy, nulování má význam černé barvy. Příklad: file:g240128_v0110.doc 16.05.2003 v1.10 6 / 13

var V : tvideorwm [0,0] V.B[0]... V.B[cBytesOnLine-1] V.B[cBytesOnLine]... V.B[2*cBytesOnLine-1]......... V.B[cBytesOnArea-cBytesOnLine]... V.B[cBytesOnArea-1] [cdisppixelwidth-1,cdisppixelheight-1] Na následujícím obrázku je zvýrazněno umístění osmice pixelů V.B[2*cBytesOnLine+1] [0,0] 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0... 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0... 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0... 7 6 5 4 3 2 1 0............ 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0... 7 6 5 4 3 2 1 0 [cdisppixelwidth-1,cdisppixelheight-1] tcfontmetrics = record PixW :word; PixH :word; end; Typ tcfontmetrics je používán pro získání metriky fontu. Význam položek záznamu: PixW PixH Šířka znaku v pixelech. Výška znaku v pixelech. file:g240128_v0110.doc 16.05.2003 v1.10 7 / 13

tviewproc=procedure( X,Y:Integer; Str:tVideoStr; Rop:tVideoROP; pvideo:pvideorwm; pfont:pfont2); Typ tviewproc je typ pro proceduru používanou pro výpis fontu do videopaměti. V parametrech X a Y se předává umístění levého horního rohu vypisovaného textu v pixelech, v parametru Str řetězec pro výpis, v parametru Rop požadovaná grafická operace, která má být použita pro výpis, v parametru pvideo ukazatel na videopaměť, do které bude výpis prováděn, a v parametru pfont ukazatel na datovou strukturu s popisem fontu použitého pro výpis. tcfontarrayrec = record P :tviewproc; U :pfont2; end; Typ tcfontarrayrec je typ záznamu v poli uživatelských fontů. V položce P uchovává ukazatel na proceduru pro výpis příslušného fontu a v položce U ukazatel na datovou strukturu s popisem fontu. cimplfonts = 0; Konstanta cimplfonts obsahuje index implicitního fontu v poli uživatelských fontů. csizevideorwm = SizeOf(tVideoRWM); Konstanta csizevideorwm obsahuje velikost paměti alokovanou pro videopaměť. tcfontarrayindex= cimplfonts..cnumfonts-1; Typ tcfontarrayindex je použit pro indexování pole uživatelských fontů. Konstanta cnumfonts je deklarována v jednotce utermgr a obsahuje maximální počet uživatelských fontů. tcfontarray = array[tcfontarrayindex] of tcfontarrayrec; Typ tcfontarray je typ pole uživatelských fontů. tbkbmpsindex = 0..BkBMPsCount-1; Typ tbkbmpsindex je typ pro indexování pole uživatelských bitmap. Konstanta BkBmpsCount je deklarována v jednotce utermgr a obsahuje maximální počet uživatelských bitmap. tabkbmps = array[tbkbmpsindex] of tbitmapinfoobj; Typ tabkbmps je typ pole uživatelských bitmap. Obsahuje ukazatele na instance objektu tbitmapinfoobj s popisem uživatelských bitmap. const pviewfont08x08 : tviewproc = pviewfont; pviewfont12x16 : tviewproc = pviewfont; pviewfont16x32 : tviewproc = pviewfont; pviewfont24x64 : tviewproc = pviewfont; Konstanty pviewfontxxxx jsou naplněny odkazem na implicitní výpisovou proceduru pviewfont. Jsou zavedeny pro zpětnou kompatibilitu. file:g240128_v0110.doc 16.05.2003 v1.10 8 / 13

5. Popis objektu tbitmapinfoobj Objektový typ tbitmapinfoobj slouží k uchování popisu uživatelské bitmapy. Je používán v poli uživatelských bitmap. 5.1. Proměnné BmpHeaderPtr : pbmpheader; Proměnná BmpHeaderPtr obsahuje ukazatel na hlavičku bitmapy. Hlavička uchovává rozměry bitmapy a typ jejího zakódování. BmpImagePtr : pabyte; Proměnná BmpImagePtr obsahuje ukazatel na binární obraz bitmapy. BmpImageSize : word; Proměnná BmpImageSize obsahuje velikost paměti alokované pro binární obraz bitmapy. 5.2. Metody 5.2.1. AssignBMPAddr procedure AssignBMPAddr(p:pointer;var Lng:word); Metoda AssignBMPAddr přiřadí proměnným objektu hodnoty podle umístění bitmapy v paměti. V parametru p je předán ukazatel na bitmapu a v parametru Lng velikost bitmapy. Metoda se používá pro instalaci uživatelské bitmapy. 6. Proměnné jednotky 6.1. User_FontArray User_FontArray : tcfontaray; Proměnná User_FontArray obsahuje pole uživatelských fontů. Každý z prvků pole obsahuje dvě položky: ukazatel na datovou strukturu s popisem fontu a ukazatel na proceduru, kterou je příslušný font zobrazován (zobrazovací procedura). Není-li instalována uživatelská zobrazovací procedura, použije se implicitní zobrazovací procedura pviewfont. Proměnná je v inicializační části jednotky nulována. Před použitím fontů v aplikaci je třeba naplnit jednotlivé položky pole příslušnými ukazateli na datové struktury fontů a případně ukazateli na uživatelské zobrazovací procedury. 6.2. User_BkBmps User_BkBMPs : tabkbmps; file:g240128_v0110.doc 16.05.2003 v1.10 9 / 13

Proměnná User_BkBmps obsahuje pole uživatelských bitmap. Jednotlivé prvky pole jsou instancemi objektu tbitmapinfoobj, které uchovávají popis bitmapy (ukazatel na hlavičku bitmapy, ukazatel na binární obraz bitmapy a jeho velikost). Proměnná je v inicializační části jednotky nulována. Před použitím uživatelských bitmap v aplikaci je třeba naplnit jednotlivé položky pole příslušnými ukazateli (např. voláním metody tbitmapinfoobj.assignbmpaddr). 7. Popis procedur a funkcí 7.1.1. GetCFontMetrics function GetCFontMetrics(FIndex:integer; var CFntMetrics:tCFontMetrics):Boolean; Funkce GetFontMetrics slouží k získání metriky fontu (šířky a výšky znaku). Parametrem Findex se předáva index fontu v poli uživatelských fontů. Pokud je parametr Findex mimo meze pole uživatelských fontů, použije se implicitní font (font číslo 0). Je-li zadaný font instalován (přiřazen v poli uživatelských fontů) vrací funkce jako návratovou hodnotu true a v parametru CFntMetrics metriku fontu. V opačném případě vrací false a hodnota v parametru CFntMetrics je neplatná. 7.2. Procedury pro práci s videopamětí Následující procedury jsou určeny pro operace s videopamětí. Tyto procedury jsou používány objekty grafických displejů pro vytvoření binární podoby grafického obsahu obrazovky. Uživatel je také může použít pro přímé kreslení do videopaměti. (např. implementované objektem tgraphicarea) 7.2.1. mclear procedure mclear(var vvideorwm :tvideorwm); Procedura mclear smaže obsah videopaměti předané v parametru vvideorwm. 7.2.2. mdrawpoint procedure mdrawpoint( X,Y:Integer; Rop:tVideoROP; var vvideorwm :tvideorwm); Procedura mdrawpoint vykreslí do videopaměti předané v parametru vvideorwm grafickou operací Rop bod o souřadnicích X a Y. 7.2.3. mdrawline procedure mdrawline( X1,Y1,X2,Y2:Integer;Rop:tVideoROP; var vvideorwm :tvideorwm); file:g240128_v0110.doc 16.05.2003 v1.10 10 / 13

Procedura mdrawline vykreslí do videopaměti předané v parametru vvideorwm grafickou operací Rop úsečku s koncovými body o souřadnicích X1, Y1 a X2, Y2. 7.2.4. mdrawcircle procedure mdrawcircle( Xr,Yr,R:Integer; Rop:tVideoROP; var vvideorwm :tvideorwm); Procedura mdrawcircle vykreslí do videopaměti předané v parametru vvideorwm grafickou operací Rop kružnici se středem o souřadnicích Xr, Yr a poloměrem R. 7.2.5. mdrawbox procedure mdrawbox( X1,Y1,X2,Y2:Integer;Rop:tVideoROP; var vvideorwm :tvideorwm); Procedura mdrawbox vykreslí do videopaměti předané v parametru vvideorwm grafickou operací Rop obdélník. V parametrech X1, Y1 a X2, Y2 jsou předávány souřadnice dvou protilehlých rohů obdélníku. 7.2.6. mfillbox procedure mfillbox( X1,Y1,X2,Y2:Integer;Rop:tVideoROP; var vvideorwm :tvideorwm); Procedura mfillbox vykreslí do videopaměti předané v parametru vvideorwm grafickou operací Rop vyplněný obdélník. V parametrech X1, Y1 a X2, Y2 jsou předávány souřadnice dvou protilehlých rohů obdélníku. 7.2.7. mtextoutxy procedure mtextoutxy( X,Y:Integer;Str:tVideoStr; Rop:tVideoROP; var vvideorwm:tvideorwm;findex:integer); Procedura mtextoutxy vypíše do videopaměti předané v parametru vvideorwm grafickou operací Rop text předaný parametrem Str. V parametrech X, Y se předávají souřadnice levého horního rohu výpisu textu a v parametru FIndex index fontu, který bude použit pro výpis, v poli uživatelských fontů. 7.3. Procedury pro skládání videopamětí Následující procedury se používají pro skládání videopamětí zadanou grafickou operací. Procedury realizují příslušnou grafickou operaci nad obecným bufferem. Jsou používány objekty grafických displejů pro složení výsledné grafické obrazovky z dílčích grafických stránek. Grafické operace: file:g240128_v0110.doc 16.05.2003 v1.10 11 / 13

grafická operace zdroj před operací cíl před operací cíl po operaci b_or b_not b_xor 7.3.1. RopWord_Not procedure RopWord_Not(DestBuf,SrcBuf:pointer; BufLng:word); Procedura RopWord_Not provádí skládání videopamětí operací b_not. Parametr DestBuf obsahuje ukazatel na cílový buffer a parametr SrcBuf ukazatel na zdrojový buffer. BufLng udává délku dat bufferů. Obsahy obou bufferů jsou složeny operací b_not a výsledek je uložen do cílového bufferu. 7.3.2. RopWord_Or procedure RopWord_Or (DestBuf,SrcBuf:pointer; BufLng:word); Procedura RopWord_Or provádí skládání videopamětí operací b_or. Parametr DestBuf obsahuje ukazatel na cílový buffer a parametr SrcBuf ukazatel na zdrojový buffer. BufLng udává délku dat bufferů. Obsahy obou bufferů jsou složeny operací b_or a výsledek je uložen do cílového bufferu. 7.3.3. RopWord_Xor procedure RopWord_Xor(DestBuf,SrcBuf:pointer; BufLng:word); Procedura RopWord_Xor provádí skládání videopamětí operací b_xor. Parametr DestBuf obsahuje ukazatel na cílový buffer a parametr SrcBuf ukazatel na zdrojový buffer. BufLng udává délku dat bufferů. Obsahy obou bufferů jsou složeny operací b_xor a výsledek je uložen do cílového bufferu. 7.4. Zobrazovací procedury pro fonty Tyto procedury jsou používány pro výpis textu do videopaměti. Musí používat vzdálený model volání (far) a mít hlavičku shodnou s typem tviewproc. V jednotce je implementována implicitní zobrazovací procedura pviewfont. Uživatel může imlementovat vlastní zobrazovací proceduru, kterou pak může instalovat do pole uživatelských fontů. Takto je umožněno imlementovat vlastní způsob výpisu fontu, např. transformaci souřadnic výpisu nebo tabulky znaků fontu. file:g240128_v0110.doc 16.05.2003 v1.10 12 / 13

7.4.1. pviewfont procedure pviewfont( X,Y:Integer;Str:tVideoStr; Rop:tVideoROP;pVideo:pVideoRWM;pFont:pFont2);far; Procedura pviewfont je implicitní zobrazovací procedura, která se použije pro výpis fontu, není-li instalována uživatelská zobrazovací procedura. Procedura pviewfont zobrazuje fonty až do šířky 24 pixelů. Parametry X,Y udávají souřadnice levého horního rohu výpisu v pixelech, parametrem Str je předáván text pro výpis, parametrem Rop grafická operace, parametrem pvideo ukazatel na videopaměť a parametrem pfont ukazatel na datovou strukturu použitého fontu. file:g240128_v0110.doc 16.05.2003 v1.10 13 / 13