DOS SVGACC圖形開發庫函式
原型: extern int far blkget (int x1, int y1, int x2, int y2,RasterBlock far *gfxblk)
輸入: X1,Y1-塊的左上角
X2,Y2-塊的右下角
輸出: 成功是返回1,否則返回0
gfxblk-檢索到的點陣圖數據
用法: BKGET將由(X1, Y1)-(X2, Y2)定義的塊內的數據存儲到gfxblk引用的變數中。gfxblk必須為RasterBlock結構加上四個位元組分配記憶體,其中,RasterBlock結構的大小為[(X2-X1+1)*(Y2-Y1+1)]個位元組;四個位元組分別是該結構寬和高的整型值。
然而還需要注意的是gfxblk可以相當大。如果gfxblk的大小不足的話,BLKGET會在超出gfxblk的空間填寫數據並且由此可能導致系統崩潰。BLKGET會強制執行X2,X1和Y2,Y1。還有指定的坐標必須在當前的解析度下是有效的。
例子
/*
* Places 1/4 of a circle at the center of the screen
*/
#include <stdlib.h>
#include <conio.h>
#include "svgacc.h"
void main(void)
{
int vmode;
int a,b,c,d;
RasterBlock *blkdata;
vmode = videomodeget();
if ( !whichvga() || (whichmem() < 512))
exit(1);
res640();
DRWCIRCLE(1,10,30,30,20);
fillarea(30,30,10,7);
a = b = 0;
c = d = 30;
blkdata = (RasterBlock *)malloc((c-a+1)*(d-b+1)+4);
blkget(a,b,c,d,blkdata);
blkput(1,320,240,blkdata);
getch();
videomodeset(vmode);
exit(0);
}