“显示属性”如图29-1所示,当前软件系统支持多种BGI
(1)
标准的640 X 480 X 16
VGA方式
(2)
WinSail 内部的VESA标准的640
X 400 X 256、640 X 480 X 256、800 X 600 X 256、1024 X 768 X 256
(3)
用户自带BGI文件(注:通过Display段的BGI键描述)。
2: 建议用户只选择VGA_640*480*16Color,在这个显示模式下可与BC31的BGI共存!!
3: 许多Borland C++3.1中的图形函数已经被挂接,看下表所示。如果在VGA_640*480*16Color分辨下,两种函数是相同结果的,
但在其它分辨率下就必须调用“WinSail”的图形库,其中只有红色部份方能在其它分辨率下支持
WinSail图形函数库
|
序号 |
Borland C++中的图形库 |
WinSail图形库 |
序号 |
Borland C++中的图形库 |
WinSail图形库 |
|
01 |
registerfarbgidriver |
RegisterFarBgiDriver |
49 |
installuserdriver |
InstallUserDriver |
|
02 |
arc |
Arc |
50 |
installuserfont |
InstallUserFont |
|
03 |
bar |
Bar |
51 |
line |
Line |
|
04 |
bar3d |
Bar3D |
52 |
linerel |
Linerel |
|
05 |
circle |
Circle |
53 |
lineto |
LineTo |
|
06 |
cleardevice |
ClearDevice |
54 |
moverel |
Moverel |
|
07 |
clearviewport |
ClearViewPort |
55 |
moveto |
MoveTo |
|
08 |
closegraph |
CloseGraph |
56 |
outtext |
OutText |
|
09 |
deletegraph |
DeleteGraph |
57 |
outtextxy |
OutTextXY |
|
10 |
drawpoly |
DrawPoly |
58 |
pieslice |
PieSlice |
|
11 |
ellipse |
Ellipse |
59 |
putimage |
PutImage |
|
12 |
fillellipse |
FillEllipse |
60 |
putpixel |
PutPixel |
|
13 |
fillpoly |
FillPoly |
61 |
rectangel |
Rectangle |
|
14 |
folldfill |
FolldFill |
62 |
rstorecrtmode |
RestoreCrtMode |
|
15 |
getarccoords |
GetArcCoords |
63 |
sector |
Sector |
|
16 |
getarccoords |
GetArcCoords |
64 |
setactivepage |
SetActivePage |
|
17 |
getaspectratio |
GetAspectRatio |
65 |
setallpalette |
SetAllPalette |
|
18 |
getbkcolor |
GetBKColor |
66 |
setaspectratio |
SetAspectRatio |
|
19 |
getcolor |
GetColor |
67 |
setbkcolor |
SetBkColor |
|
20 |
getdefaultpalette |
GetDefaultPalette |
68 |
setcolor |
SetColor |
|
21 |
getdrivername |
GetDriverName |
69 |
setfillpattern |
SetFillPattern |
|
22 |
getfillpattern |
GetFillPattern |
70 |
setfillstyle |
SetFillStyle |
|
23 |
getfillsettings |
GetFillSettings |
71 |
setgraphbufsize |
SetGraphBufSize |
|
24 |
getgraphmode |
GetGraphMode |
72 |
setgraphmode |
SetGraphMode |
|
25 |
getimage |
GetImage |
73 |
setlinestyle |
SetLineStyle |
|
26 |
getlinesettings |
GetLineSettings |
74 |
setpalette |
SetPalette |
|
27 |
getmaxcolor |
GetMaxColor |
75 |
setrgbpalette |
SetRgbPalette |
|
28 |
getmaxmode |
GetMaxMode |
76 |
settextjustify |
SetTextJustify |
|
29 |
getmaxx |
GetMaxX |
77 |
settextstyle |
SetTextStyle |
|
30 |
getmaxy |
GetMaxY |
78 |
setusercharsize |
SetUserCharSize |
|
31 |
getmodename |
GetModeName |
79 |
setviewport |
SetViewPort |
|
32 |
getmoderange |
GetModeRange |
80 |
setvisualpage |
SetVisualPage |
|
33 |
getpixel |
GetPixel |
81 |
setwritemode |
SetWriteMode |
|
34 |
getpalette |
GetPalette |
82 |
textheight |
TextHeight |
|
35 |
getpalettesize |
GetPaletteSize |
83 |
textwidth |
TextWidth |
|
36 |
gettextsettings |
GetTextSettings |
84 |
getpalattelocation |
GetPalatteLocation |
|
37 |
getviewsettings |
GetViewSettings |
85 |
writepalatte |
WrtiePalatte |
|
38 |
getx |
GetX |
86 |
readpalatte |
ReadPalatte |
|
39 |
gety |
GetY |
87 |
getdisplaydevice |
GetDisplayDevice |
|
40 |
graphdefaults |
GraphDefaults |
88 |
getdisplaymode |
GetDisplayMode |
|
41 |
grapherrormsg |
GraphErrorMsg |
89 |
setdisplaymode |
SetDisplayMode |
|
42 |
_graphghfreemem |
_GraphFreeMem |
90 |
setdisplaydevice |
SetDisplayDevice |
|
43 |
_graphgetmem |
_GraphGetMem |
91 |
getdisplaycolor |
GetDisplayColor |
|
44 |
graphresult |
GraphResult |
92 |
|
ReadPalatteRegister |
|
45 |
imagesize |
ImageSize |
93 |
|
SendBitmapLine |
|
46 |
initgraph |
InitGraph |
94 |
|
|
|
47 |
|
|
95 |
|
|
|
48 |
|
|
96 |
|
|
如何设置目标主板的“显示卡”类型?
在可执行文件的目录中,有一个“Config.Sys”文件,注意[Display]段的
“Device”键值
“Mode”键值
“Mono”键值
“Pcm3386”键值
“Pcm3486”键值
“SED1335”
“BGI”键值。
其中 “BGI”键值的语法如下
BGI = 驱动号,模式号,颜色数,驱动程序名称
例如使用SVGA的16颜色时:BGI = 20, mode, 16, SVGA16
mode = 0
;SVGA的320 * 200 * 16色
mode = 1
;SVGA的640 * 200 * 16色
mode = 2
;SVGA的640 * 350 * 16色
mode = 3
;SVGA的640 * 480 * 16色
mode = 4 ;SVGA的800 * 600
* 16色
mode = 5
;SVGA的1024 * 768 * 16色
例如使用SVGA的256颜色时:BGI = 21, mode, 256, SVGA256
mode = 0
;SVGA的320 * 200 * 256色
mode = 1
;SVGA的640 * 350 * 256色
mode = 2
;SVGA的640 * 480 * 256色
mode = 3
;SVGA的800 * 600 * 256色
mode = 4
;SVGA的1024 * 768 * 256色
当“BGI”键值定义后,“Device”和“Mode”键值的内容被忽略! 此时BGI驱动程序必须放在Exe所在文件的“BGI”目录中!
其中“Device”键值和“Mode”键值的意义如下:
Device = 0 ;640 * 480
VGA模式
Mode = x ;任意值
Device = 9 ;标准VGA模式
Mode = 1 ;VGA的640 * 400 * 16色
Mode = 2 ;VGA的640 * 480 * 16色
Device = 11 ;VESA-VGA模式
Mode =
0 ;VESA的800 * 600
* 16色(目前不支持)
Mode =
1 ;VESA的640 * 400
*256色
Mode =
2 ;VESA的640 * 480
*256色
Mode =
3 ;VESA的800 * 600
* 16色(目前不支持)
Mode =
4 ;VESA的800 * 600
*256色
Mode =
5 ;VESA的1024* 768
* 16色(目前不支持)
Mode =
6 ;VESA的1024* 768
* 256色
Mode =
7 ;VESA的1280*1024
* 16色(目前不支持)
Mode =
8 ;VESA的1280*1024
*256色(目前不支持)
Mode =
9 ;VESA的320 * 200
*256色
Mode = 10
;VESA的320 * 240 *256色
Mode = 11
;VESA的320 * 240 *SED1335色(目前不支持)
Device = 13
;SED1335-LCD模式
Mode =
0 ;SED1335的320 * 240
* 1色
Mode =
1 ;SED1335的640 * 480
* 1色(目前不支持)
Mode =
2 ;SED1335的800 * 600
* 1色(目前不支持)
Mode =
3 ;SED1335的1024* 768
* 1色(目前不支持)
Device = 14 ;TFT模式(只能用于珠海蓝宇公司的PCM3486主板)
Mode =
0 ;TFT的320 * 240
* 256色(目前不支持)
Mode =
1 ;TFT的640 * 480
* 256色
Mode =
2 ;TFT的800 * 600
* 256色
Mode =
3 ;TFT的1024* 768
* 256色(目前不支持)
其中“Mono”键值的意义如下:
Mono
= TRUE ;单色仿真
Mono
= FALSE ;彩色显示
其中“Pcm3386”键值的意义如下:
Pcm3386 = TRUE ;目标主板是PCM3386主板
Pcm3386 = FALSE ;目标主板不是PCM3386主板
其中“Pcm3486”键值的意义如下:
Pcm3486 = TRUE ;目标主板是PCM3386主板
Pcm3486 = FALSE ;目标主板不是PCM3386主板
其中“Sed1335”的键值意义如下
Sed1335 = TRUE ;显示芯片是SED1335
Sed1335 = FALSE ;显示芯片不是SED1335
------------------------------------------------------
当目标主板为Pcm3386时,[Display]段只能如下配置
Device = 13
;表示是SED1335-LCD模式
Mode
= 0
;表示SED1335的320 * 240 * 1色
Mono
= TRUE ;单色显示
Pcm3386 = TRUE ;目标主板是PCM3386主板
Pcm3486 = FALSE ;目标主板不是PCM3486主板
SED1335 = TRUE ;是SED1335芯片控制的LCD
当目标主板为Pcm3486时,[Display]段只能如下配置
Device = 14
;表示是PCM3486-TFT模式
Mode
=
0 ;表示PCM3486-TFT的640 * 480 * 256色
1 ;表示PCM3486-TFT的800 * 600 * 256色
Mono =
TRUE ;单色显示
FALSE ;彩色显示
Pcm3386 = FALSE ;目标主板不是PCM3386主板
Pcm3486 = TRUE ;目标主板是PCM3486主板
Sed1335 = FALSE ;不是SED1335芯片
当目标主板与标准PC/IPC/PC104兼容的VGA、VESA显示方式时,
Device = ??
Mode = ??
Mono = ??
PCM3386 =
FALSE
PCM3486 =
FALSE
SED1335 =
FALSE