簡介
圖形程式設計庫是指用來進行圖形處理和創建圖形的函式集合。圖形程式設計庫是一種程式庫,圖形程式設計庫包含了基本繪圖函式和圖形處理函式,一般作為接口,供軟體設計人員調用。圖形程式設計庫的出現降低軟體的圖形化的界面設計的難度,圖形程式設計庫主要套用在圖形編程中。圖形程式設計庫有時也可以稱作圖形庫。
有關術語
程式庫
有組織程式的集合。 它包括各種標準程式、標準子程式和服務性程式。一個較完備的程式庫至少包含有數百個標準程式。標準子程式是初等函式計算程式,比較短,質 量很高,使用頻繁。在地圖製圖自動化系統中,常建立初等函式運算程式庫、基本繪圖程式庫、數學程式庫等。
應用程式接口
應用程式接口又稱為套用編程接口,是一組定義、程式及協定的集合,通過 API接口實現計算機軟體之間的相互通信。API 的一個主要功能是提供通用功能集。API同時也是一種中間件,為各種不同平台提供數據共享。由於近年來軟體的規模日益龐大,常常需要把複雜的系統劃分成小的組成部分,編程接口的設計十分重要。程式設計的實踐中,編程接口的設計首先要使軟體系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。根據單個或分散式平台上不同軟體應用程式間的數據共享性能,可以將 API 分為四種類型:1.遠程過程調用(RPC):通過作用在共享數據快取器上的過程(或任務)實現程式間的通信。2.標準查詢語言(SQL):是標準的訪問數據的查詢語言,通過通用資料庫實現應用程式間的數據共享。3.檔案傳輸:檔案傳輸通過傳送格式化檔案實現應用程式間數據共享。4.信息交付:指松耦合或緊耦合應用程式間的小型格式化信息,通過程式間的直接通信實現數據共享。
圖形庫
圖形庫是一個用於在顯示器上渲染計算機圖形的程式庫。它通常提供一組經過最佳化的函式來執行常見的渲染任務。這些任務通常可以完全在軟體層面上解決,使用CPU進行計算,常見於嵌入式系統;或者由一枚GPU進行硬體加速,常見於家用計算機。使用這些函式,一個程式可以組合成一張圖像在顯示器上輸出。這樣,便解除了程式設計師創建和最佳化這些函式的負擔,使得他們得以專注於構造圖形程式。
Mesa 3D
Mesa 3D是一個在MIT許可證下開放原始碼的三維計算機圖形庫,以開源形式實現了OpenGL的應用程式接口。OpenGL的高效實現一般依賴於顯示設備廠商提供的硬體,而Mesa 3D是一個純基於軟體的圖形應用程式接口。由於許可證的原因,它只聲稱是一個“類似”於OpenGL的應用程式接口。由於Mesa 3D的API是和OpenGL相同,具體的OpenGL版本瀏覽Mesa 3D官方網站,我們可以這么認為它就是OpenGL的軟體模擬GPU光柵處理器的一個實現。我們知道如果要實現一個OpenGL,其本身是一個設備器,不能實現窗體的透明,如果我想要實現窗體透明,又想要有3D的套用,可以試試它。
Cairo
Cairo是一個讓用於提供向量圖形繪圖的自由庫,cairo提供在多個背景下做2-D的繪圖,高級的更可以使用硬體加速功能。雖然cairo是使用C語言撰寫的,但是當使用cairo時,可以用許多其他種語言來使用,包括有C++、C#、Java、Python、Perl、Ruby、Scheme、Smalltalk以及許多種語言[3],cairo在GNU寬通用公共許可證與Mozilla公共許可證兩種許可協定下發行。
Turbo C 的有關圖形函式
detectgraph( ) ; 顯示卡檢測函式
getdrivername( ); 獲取圖形驅動程式名片的指針
getgraphmode( ) ; 獲取圖形模式函式
getmoderange( ); 獲取模式值範圍函式
getmaxmode( ); 獲取最大顯示模式函式
getmodename( ); 獲取顯示模式名函式
graphdefaults( ); 圖形設定復位預設值函式
setgraphmode( ); 設定圖形模式函式
restorecrtmode( ); 恢復文本顯示模式函式
graphresult( ); 圖形操作結果函式
grpaherrormsg( ); 圖形錯誤信息函式
setgraphbufsize( ); 設定圖形緩衝區大小函 數
setactivepage( ); 設定可輸出顯示頁函式
setvisualpage( ); 設定可見顯示頁數
closegraph( ); 關閉圖形模式函式
Turbo C 還提供了大量的視頻顯示函式,利用這些函式,可以畫出各種圖形,而無需考慮對視頻記憶體的訪問,只要給出適當的坐標,就可以在螢幕的任何位置給出信息。坐標位置與視瀕記憶體地址的轉換由視頻函式自動完成。常用的圖形函式如下:
setpalette( ); 設定調色板函式
setallpalette( );設定整個調色板函
setbackcolor( ); 設定背景顏色函式
setcolor( ); 設定顏色函式
getbkcolor( ); 返回背景色函式
getcolor( ); 返回當前繪圖顏色
getmaxcolor( ); 返回最大顏色值函式
getpalette( ); 獲取調色板函式
getpalettesize( ); 返回調色板大小函式
getdefaultpalette( ); 獲取預設調色板函式