VESAGU 2.1. Obsah: Předmluva: Požadavky: Psaní grafiky pod Pascalem: 02/12/2004. VESAGU je grafická khihovna určená pro pascal.

Podobné dokumenty
Zobrazovací jednotky a monitory

ČÁST 1. Základy 32bitového programování ve Windows

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Systém adresace paměti

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

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

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

Paměťový podsystém počítače

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Zdroj:

Grafické adaptéry a monitory

Přidělování zdrojů (prostředků)

Informatika pro 8. ročník. Hardware

Uživatelská příručka

Uživatelská příručka

BARVY. Příkaz barva. Barvy TrueColor. Se objeví dialogové okno

Návod k použití softwaru Solar Viewer 3D

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

UniLog-D. v1.01 návod k obsluze software. Strana 1

Soubory s reklamami musí mít stejný název jako ta výše uvedené. Stávající soubory reklam budou přepsány.

VYUŽITÍ POČÍTAČOVÉ GRAFIKY

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

Novinky v programu SKLADEK

Ignijet_2007 Externí monitor

Grafická karta nebo také videoadaptér je součást počítače, která se stará o grafický výstup na monitor, TV obrazovku či jinou zobrazovací jednotku.

Struktura a architektura počítačů (BI-SAP) 11

Jednotky (unity) Struktura programu v Pascalu

Grafické adaptéry a monitory

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

CORELDRAW SEZNÁMENÍ S PROGRAMEM. Lenka Bednaříková

Operační systémy. Přednáška 8: Správa paměti II

Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Uživatelský manuál. Mini DVR na 1 kameru OXE MDV1001

UniLog-L. v0.81 návod k obsluze software. Strana 1

Komunikace modulu s procesorem SPI protokol

Řídící karta PCI v. 2.2 LED Panely , revize 1.0

Univerzální prohlížeč naměřených hodnot

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení

Počítačová grafika 1. Úvod do grafiky, základní pojmy. Rastrová grafika.

Úvod. Tlačítka. Typ baterie

Programovací jazyk Pascal

Uživatelská příručka

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Školní kolo soutěže Mladý programátor 2015, kategorie A, B

TEST ZÁKLADY IT, HARDWARE SOFTWARE

Výukový materiál vytvořen v rámci projektu EU peníze školám "Inovace výuky" registrační číslo CZ.1.07/1.5.00/

Popis ovládání aplikace - Mapový klient KÚPK

COREL PHOTO-PAINT SEZNÁMENÍ S PROGRAMEM. Lenka Bednaříková

GstarCAD8 Aktualizovaná verze ze dne Podpora 64-bitové verze systému. Nové dodatky. Poznámky (OBJECTSCALE / Měřítko objektu poznámek)

POČÍTAČOVÁ GRAFIKA. Počítačová grafika 1

téma: Výběrové dotazy v MS Access

MIDAM Verze 1.1. Hlavní okno :

Informatika Počítačová grafika Mgr. Jan Jílek (v.11/12) Počítačová grafika

Lekce 8 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Téma 10: Správa hardwarových zařízení a ovladačů II

=PREZENTACE= stručná příručka základů. (verze 2007)

Grafické adaptéry a monitory

Manuál k programu KaraokeEditor

Hodinky s kamerou. Návod k použití. Hlavní výhody produktu:

Závěrečná práce. AutoCAD Inventor (Zadání D1)

Práce s texty, Transformace rastru, Připojení GPS

Copyright 2013 Martin Kaňka;

GoClever Map 2.5 manuál

Barvy na počítači a grafické formáty

Monitory a grafické adaptéry

Školní kolo soutěže Baltík 2009, kategorie A a B

MS POWERPOINT. MS PowerPoint

Lekce 12 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

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

Návod k práci s programem MMPI-2

, Brno Připravil: Ing. Jaromír Landa. Postprocessing videa

CZ.1.07/1.5.00/

Způsob ovládání modulů

Přerušovací systém s prioritním řetězem

Elektronický Přepínač 1x KVM, 8xPC/16xPC

Inovace a zkvalitnění výuky prostřednictvím ICT Pokročilé metody parametrického modelování

Maturitní témata pro 1.KŠPA Kladno, s.r.o. Výpočetní technika

Měření průtoku kapaliny s využitím digitální kamery

Dotyková obrázovká v prográmu TRIFID

Úvod do problematiky. Význam počítačové grafiky. Trochu z historie. Využití počítačové grafiky

Pracovní výkazy. návod k použití. Internetová aplikace Pracovní výkazy slouží k zadávání pracovních výkazů od zaměstnanců a externích pracovníků.

Barvy v digitální fotografii. Jaroslav Svoboda

MIKROTHERM 825. Monitorovací program MT825C1

Uživatelská příručka Graphisoft Virtual Building Exploreru

P R OGR AM P R O NÁVRH VÝVAR U

Ovládání MZK Terminalu je jednoduché a intuitivní. Terminal se ovládá pěti tlačítky.

1. Diagnostika kotle prostřednictvím řídící jednotky

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

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

Software pro grafické terminály TERM10 a TERM03

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

FortiaViewer verze 5.0

VÝPOČETNÍ TECHNIKA OBOR: EKONOMIKA A PODNIKÁNÍ ZAMĚŘENÍ: PODNIKÁNÍ FORMA: DENNÍ STUDIUM

Reliance 3 design OBSAH

PROGRAMOVATELNÝ TERMOSTAT CT Citherm 6.0 Návod k obsluze

Minikamera s detekcí pohybu

Úvod, rozdělení CAD systémů Zhotoveno ve školním roce: 2011/2012 Jméno zhotovitele: Ing. Karel Procházka

Operační systém MS Windows XP Professional

Transkript:

VESAGU 2.1 02/12/2004 VESAGU je grafická khihovna určená pro pascal. Obsah: Předmluva Požadavky Psaním grafiky pod pascalem Složení VesaGU2 Popis snadartních funkcí Předmluva: Knihovnu jsem naprogramoval kvůli tomu, že se knihovny pro 16 bitový pascal těžko shánějí.za dlouhou dobu mého hledání jsem jich našel velice málo.je to zapříčiněno tím, že grafika psaná v 16 bitovém compilátoru jako je pascal je pomalejší než pod 32 bitovými jako Delphi,TMT Pascal, Free Pascal nebo i C++. Vidíte tedy, že hru vysokých grafických požadavků pomocí VESAGU nenaprogramujete.ale VESAGU je zaručeně lepší než knihovny BGI z Pascalu. VESAGU2 je teprve druhá verze takže jestli budete mít zájem o přidělání nějakých dalších funkcí nebo budete mít problémy s obsluhou tak určitě napište. Honza.Pofider@seznam.cz Knihovna VESAGU podporuje rozlišení: 640x480x256 barev 800x600x256 1024x768x256 320x200x65536 640x480x65536 800x600x65536 1024x768x65536 Dále jsem přiložil knihovnu BMPGU pro prací s BMP ( pracuje pouze v kombinaci s VESAGU ) Požadavky: Hardware: -VESA VBE 1.1 or later ( toto by měl mít snad každý počítat) -386 nebo lepší počítač Software: -Turbo Pascal nebo Borland Pascal compiler Psaní grafiky pod Pascalem: Myslím si, že bude dobré seznámit vás s nějakými termíny a trochu se pokusit popsat jak to vlastně všechno funguje. Ještě

bych chtěl upozornit, že nejsem nějaký profík, tak že následující text může obsahovat nějaké ( asi hodně ) chyby. Co je to vlastně VESA? VESA ( Video electronic standard asociation ) vznikla iniciativou výrobců SVGA karet jako odezva na nepřehlednou situaci v práci a inicializaci grafických módů. S vesou se dá pracovat jak pomocí 32 tak 16 bitového compilátoru. Jak jste asi uhodli tak s 32 bitovým je to rychlejší.této metodě se říká lfb ( linear frame buffer ), její výhoda je v tom, že zde je jiný systém adresace takže se dá vytvořit potřebně velké pole do kterého se vejde každá barva pixelu. V 16 bitovém compilátoru je způsob adresace takový, že 16 bitů je určeno pro část zvanou segment a část zvanou offset. Jelikož offset muže být velký maximálně 65536 bytů ( 2 na 16) tak můžeme přistupovat k paměti nebo poli velkém pouze 65536. Co ale s tím když máme rozlišení třeba 640x480x8bpp a potřebuje přistupovat k paměti velké 312 320 ( 640x480 )? Je jediná možnost požít funkce VESA. Ta se dá volat pomocí přerušení, ale to je asi 5 krát pomalejší než s voláním na far adresu vrácenou VESOU při inicializaci. Tak,že se nám jakoby video paměť ( vram 0a000h) rozdělí na části po 65536 bytech zvané banky.jednotlivé pixely by se tedy zapisovaly tak, že by se nejprve zavolala procedura na změnění banku a pak by se zapsala barva na adresu (MaxX*Y+X). No je to sice pěkné ale násobení je pomalé tak že je lepší použít bitových rotací shl a shr.to má ale zase nevýhodu, že se výpočty mění při každém rozlišení.teď by jsme měli hotové pokládání pixelů. Dále je důležité do knihovny zařadit stránkování ( page fliping ). To slouží hlavně pro tvorbu her a animací ( je to opravdu nezbytné ). Když třeba zkusíte napsat nějaký cyklus kde stále mažete obrazovku a něco vykreslujete tak vám obraz stále bliká což není nejhezčí. Musí se proto požít další funkci VESY.Pracuje se s tím tak, že vždy zapisujete do jedné části vram a zobrazujete jinou a na konci cyklu třeba příkazem ShowPage tyto stránky přehodíte. To by byl tak ten základ. Je tu ještě ale pár urychlení. Tak třeba když vykreslujete horizontální čáru tak stále zvyšujete ( nebo snižujete offset ) a ptáte se jestli jsme nevstoupily do jiného banku protože, protože přechody banků nejsou vždy na konci řádku ale klidně i uprostřed, což není moc efektivní a zpomaluje to.je na to taková finta. Pomocí další funkce VESA si nastavíme logickou délku řádku na 1024 ( jako kdyby MaxX bylo 1024, ale pouze pro výpočet adresy a banku a ne zobrazování ). Pak bude každá banka obsahovat 64 řádků, takže se už při kresbě horizontální čáry nemusíme starat jestli jsme nepřekročily banku. A dále je dobré, že při jakémkoliv rozlišení se adresa pixelu vypočítá stejně ( 1024*Y+X) a adresa banku ( 1024*Y /64, nebo spíš shr 6 ). Složení VESAGU2 VesaGU2.pdf - tento soubor VesaGu2.pas zdrojový kód knihovny BMPGu.pas zdrojový kód knihovny pro načítání BMP textures adresář s texturama pro některé examply fonts adresář s fonty pro některé examply examples adresář s příklady

Popis standartních funkcí Knihovna VesaGU InitGraf( mode:word) Inicializuje grafický mód. mode-číslo graf. modu použitelné konstanty: _640x480x8bpp _800x600x8bpp _1024x768x8bpp _320x200x16bpp _640x480x16bpp _800x600x16bpp _1024x768x16bpp (-----------------------------------------------) InitText Vrátí se zpět do textového režimu. (-----------------------------------------------) InitVirtual Aktivuje virtuální stránku pro stránkováni. Stránkování viz. EXAMPLES (------------------------------------------------) ShowPage Zobrazí virtuální stránku (-------------------------------------------------) SetViewPort( X1,Y1,X2,Y2:Integer) Nastaví zobrazovanou část plochy. X1,Y1-souřadnice levého horního rohu X2,Y2-souřadnice pravého dolního rohu K sořadnicím se dá také přistupovat pomocí proměné VievPort (-------------------------------------------------) NastavPosuv ( XPos,YPos:Word ) Změní souřadnice zobrazované části ve vram. (----------------------------------------------------)

PutPixel(X,Y:integer;Col:Byte) Položí pixel na X,Y. Funguje pouze pod 8bpp. (--------------------------------------------------) PutPixelRGB(X,Y:integer;r,g,b:byte) Položí pixel na X,Y o složkách barvy r,g,b. Funguje pouze pod 16bpp. (---------------------------------------------------) Toto bude snad jasné ( když tak napište ). Příkazy (mimi Move_To) které obsahujou "RGB" pracujou při 16bpp.Ostatní jsou 8bpp. Line(x1, y1, x2, y2 : integer; color : byte); LineRGB(x1, y1, x2, y2 : integer;r,g,b:byte); Move_To(X,Y:Integer); Line_To(X,Y:Integer;Col:Byte); Line_ToRGB(X,Y:Integer;R,G,B:Byte); Circle(x,y,r : integer; color : byte); CircleRGB(x,y,r : integer; CR,G,B: byte); Elipsa(xs,ys,r,procent:word;color:byte); ElipsaRGB(xs,ys,r,procent:word;CR,G,B:byte); Bar(X1,Y1,X2,Y2:Integer;Col:Byte); BarRGB(X1,Y1,X2,Y2:Integer;R,G,B:Byte); HLine(X1,X2,Y:Integer;Col:Byte); HLineRGB(X1,X2,Y:Integer;R,G,B:Byte); Polygon(X1,Y1,X2,Y2,X3,Y3,X4,Y4 : integer;color:word); PolygonRGB(X1,Y1,X2,Y2,X3,Y3,X4,Y4 : integer;r,g,b:byte); SetPal(Col,r,g,b:byte) Nastaví barvu v paletě ze složek r,g,b. Funguje pouze pro 8bpp. GetPal(Col:byte;var r,g,b:byte) Získá složky barvy col s palety. SavePal(Var Pal:TPalete) Uloží aktuální paletu do "Pal" RestorePal(Pal:TPalete) Nastaví "Pal" jako aktuální.

BlackPal Nastaví všechny barvy palety na černou. ( používá se v kombimaci s FadeUp. FadeDown(Speed:Byte) Potsupně zatmí obrazovku. "Speed":čím větší, tím pomalej FadeUp(Pal:TPalete;Speed:Byte) Postupně rozetmí obrazovku do palety "Pal". SetBasicPal Nastaví základní paletu jako aktuální. SetTextStyle(Font : string;smer,vel:byte) Nastaví jako aktuální font "Font". Můžete využít konstant: TriplexFont : string[8] = 'trip.chr'; SmallFont : string[8] = 'litt.chr'; SansSerifFont : string[8] = 'sans.chr'; GothicFont : string[8] = 'goth.chr'; SetTextJustify(horiz,vert : word) Nastaví směr textu. Můžete využít těchto konstnt: HorizDir : byte = 0; VertiDir : byte = 1; LeftText : byte = 0; CenterText : byte = 1; RightText : byte = 2; BottomText : byte = 0; TopText : byte = 2; (-----------------------------------------------------------) InitMouse Inicializuje myš. (-----------------------------------------------------------) DoneMouse Zruší dynamickou proměnou pro cursor myši.

(-----------------------------------------------------------) SetMPos(X,Y:Word) Nastaví pozici myši na obrazovce. (-----------------------------------------------------------) MPhase; Překreslí myš a zisti její stav. Informace ulozi do: tlac:integer; curorx,cursor:integer; SetMSens(Speed:Integer) Nastaví citlivos myši. (-------------------------------------------------------------) SetMArea(X1,Y1,X2,Y2) Nastaví oblast myši z které nemůže ven. (-------------------------------------------------------------) IsMInArea(X1,Y1,X2,Y2):Byte Zeptá se jestli myš je v oblasti X1,Y1 X2,Y2 a v jakém stavu. 0:není 1:je ale tlačitko není stisknuté 2:je i s levým tlačitkem 3:je i s pravým tlačitkem (--------------------------------------------------------------) Knihovna BMPGu (--------------------------------------------------------------) Load_BMP(Name:String;x,y:integer) Načte ze souboru 8 bitové BMP a zobrazí ho na obrazovku. (-----------------------------------------------------------------) Load_BMPRGB(Name:String;x,y:integer) Načte ze souboro 24 bitove BMP a zobrazí ho. (-----------------------------------------------------------------) Get_BMPRGB(Name:String:Word):Word; Načte ze souboru 24 bitové BMP a data uloží na segment touto funkcí vrácený.

(----------------------------------------------------------------) Show_BMPRGB(BMPSeg:Word;x,y:integer) Načte BMP ze segmentu vráceného předchozí funkcí -BMPSeg a zobrazího na monitor. (---------------------------------------------------------------) Get_BMP(Name:String):Word Nacte 8bitové BMP ze souboru a uloží jej na segment který vrací. (---------------------------------------------------------------------) Set_BMPPal(BMPSeg:Word;Colors:Byte) Nastaví paletu nactenou předchozí funkcí a spotřebuje colors barev. (---------------------------------------------------------------------) Show_BMP(BMPSeg;x,y:integer) Načte BMP ze segmentu vráceneho funkcí Get_BMP a zobrazí ho. (---------------------------------------------------------------------) Pofider