📄 minigui 体系结构之四 图形抽象层和输入抽象层及 native engine 的实现(二).htm
字号:
142 {
143 struct pollfd ufd;
144 if ( (which & IAL_MOUSEEVENT) == IAL_MOUSEEVENT)
145 {
146 ufd.fd = ts;
147 ufd.events = POLLIN;
148 if ( poll (&ufd, 1, timeout) > 0)
149 {
150 read (ts, &pos, sizeof(POS));
151 return IAL_MOUSEEVENT;
152 }
153 }
154 return 0;
155 }
156 #endif
157
158 static void set_leds (unsigned int leds)
159 {
160 }
161
162 BOOL InitADSInput (INPUT* input, const char* mdev, const char* mtype)
163 {
164 int i;
165
166 ts = open ("/dev/ts", O_RDONLY);
167 if ( ts < 0 ) {
168 fprintf (stderr, "IAL: Can not open touch screen!\n");
169 return FALSE;
170 }
171
172 for(i = 0; i < NR_KEYS; i++)
173 state[i] = 0;
174
175 input->update_mouse = mouse_update;
176 input->get_mouse_x = mouse_getx;
177 input->get_mouse_y = mouse_gety;
178 input->set_mouse_xy = mouse_setposition;
179 input->get_mouse_button = mouse_getbutton;
180 input->set_mouse_range = mouse_setrange;
181
182 input->update_keyboard = keyboard_update;
183 input->get_keyboard_state = keyboard_getstate;
184 input->set_leds = set_leds;
185
186 input->wait_event = wait_event;
187 mousex = 0;
188 mousey = 0;
189 return TRUE;
190 }
191
192 void TermADSInput (void)
193 {
194 if ( ts >= 0 )
195 close(ts);
196 }
197
</PRE></TD></TR></TBODY></TABLE>
<P>在上述输入引擎中,完全忽略了键盘相关的函数实现,代码集中在对触摸屏的处理上。显然,输入引擎的编写并不是非常困难的。</P><A id=6
name=6></A>
<P><STRONG class=subhead>6 小结</STRONG></P>
<P>本文详细介绍了 MiniGUI 的 GAL 和 IAL 接口,并以 Native
图形引擎和输入引擎为例,介绍了具体图形引擎和输入引擎的实现。当然,MiniGUI 目前的 GAL 和 IAL 接口还有许多不足之处,比如和上层的
GDI 耦合程度不高,从而对效率有些损失。在 MiniGUI 将来的开发中,我们将重新设计 GDI
以及底层的图形引擎接口,以便针对窗口系统进行优化。</P><A id=resources name=resources></A>
<P><STRONG class=subhead>资源</STRONG></P>
<UL>
<LI><B>Linux 图形相关资源</B>
<LI style="LIST-STYLE-TYPE: none">
<UL>
<LI><A href="http://www.ggi-project.org/">GGI</A> - The GGI Project
<LI><A href="http://www.svgalib.org/">svgalib</A> - The Old Linux
Console Graphics Library
<LI><A href="http://www.devolution.com/~slouken/SDL/">SDL</A> - Simple
DirectMedia Layer - linux, BeOS, DirectX ... <FONT color=#ff0000>very
COOL</FONT>
<LI><A href="http://www.hut.fi/~hmallat/xfb/">xfb</A> - Linux
Framebuffer Accelerator
<LI><A href="http://www.tutok.sk/fastgl/">OpenGUI</A> - OpenGUI is a
high-Level C/C++ graphics & windowing library built upon a fast,
low-level x86 asm graphics kernel. </LI></UL>
<LI><B>MiniGUI 资源</B>
<LI style="LIST-STYLE-TYPE: none">
<UL>
<LI><A href="http://www.minigui.org/">MiniGUI 主页</A>
<LI><A href="ftp://ftp.minigui.org/pub/minigui">MiniGUI FTP 站点</A>
</LI></UL>
<LI><B>MiniGUI 邮件列表</B>
<LI style="LIST-STYLE-TYPE: none">
<UL>
<LI>发信:<A
href="mailto:minigui-devel@egroups.com">minigui-devel@egroups.com</A>
<LI>订阅:<A
href="mailto:minigui-devel-subscribe@egroups.com">minigui-devel-subscribe@egroups.com</A>
<LI>解除订阅:<A
href="mailto:minigui-devel-unsubscribe@egroups.com">minigui-devel-unsubscribe@egroups.com</A>
</LI></UL></LI></UL><A id=author name=author></A>
<P><STRONG class=subhead>关于作者</STRONG><BR>魏永明(ymwei@minigui.org),男,27
岁,工学硕士,现任蓝点软件(深圳)有限公司北京研发中心技术主管。国内最有影响的自由软件项目之一-- MiniGUI
的创始人以及主要开发人员。著有《Linux 实用教程》与《学用 Linux 与 Windows NT》,并主持翻译了《Red Hat Linux
奥秘》、《Linux 编程宝典》 等大量优秀的 Linux 技术著作。是清华大学 AKA Linux 编程技术系列讲座的主讲人。</P><BR><!--end of paper--></TD>
<TD vAlign=top width=5><IMG height=1 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=5></TD></TR>
<TR vAlign=top height=5>
<TD vAlign=top width=5></TD>
<TD vAlign=top width=5><!-- rate article form -->
<TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
<TBODY>
<TR>
<TD width="100%" height=1><SPACER height="1" type="block" /></TD></TR>
<TR>
<TD width="100%" bgColor=#cc6633 height=3><IMG height=3 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=150></TD></TR>
<TR>
<TD width="100%" bgColor=#333333 height=1><IMG height=1 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=150></TD></TR>
<TR>
<TD width="100%" bgColor=#000000 height=1><IMG height=1 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=150></TD></TR>
<TR>
<TD width="100%" bgColor=#ffffff height=5><IMG height=5 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=150></TD></TR>
<TR vAlign=top>
<TD>
<FORM
action=/developerWorks/cn/cnratings.nsf/RateArticle?CreateDocument
method=post><INPUT type=hidden
value="MiniGUI 体系结构之四:图形抽象层和输入抽象层及 Native Engine 的实现(二)"
name=ArticleTitle> <INPUT type=hidden value=Linux name=Zone> <INPUT
type=hidden value=/developerWorks/cn/thankyou/feedback-linux.html
name=RedirectURL> <FONT face="HELVETICA, HELV, ARIAL" size=-1><B><A
id=rating name=rating>您对这篇文章的看法如何?</A></B></FONT>
<P></P>
<TABLE cellSpacing=0 cellPadding=0 width=570 border=0>
<TBODY>
<TR vAlign=top>
<TD><INPUT type=radio value=5 name=Rating><FONT
face="HELVETICA, HELV, ARIAL" size=-1>真棒!</FONT></TD>
<TD><INPUT type=radio value=4 name=Rating><FONT
face="HELVETICA, HELV, ARIAL" size=-1>好文章</FONT></TD>
<TD><INPUT type=radio value=3 name=Rating><FONT
face="HELVETICA, HELV, ARIAL" size=-1>一般,尚可</FONT></TD>
<TD><INPUT type=radio value=2 name=Rating><FONT
face="HELVETICA, HELV, ARIAL" size=-1>需提高</FONT></TD>
<TD><INPUT type=radio value=1 name=Rating><FONT
face="HELVETICA, HELV, ARIAL"
size=-1>太差!</FONT></TD></TR></TBODY></TABLE><BR><FONT
face="HELVETICA, HELV, ARIAL" size=-1><B>意见?</B></FONT><BR><TEXTAREA name=Comments rows=3 wrap=virtual cols=52></TEXTAREA><BR><BR><INPUT type=submit value=提交反馈意见></FORM></TD></TR></TBODY></TABLE><!-- end rate article form --></TD>
<TD vAlign=top width=5></TD></TR>
<TR vAlign=top height=5>
<TD></TD>
<TD></TD>
<TD></TD></TR></TBODY></TABLE><!-- end content --></TD></TR></TABLE><!-- ---------------footer------------------- -->
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD align=right width="100%" colSpan=2 height=30>(c) Copyright IBM Corp.
2001, (c) Copyright IBM China 2001, All Right Reserved</TD></TR>
<TR>
<TD width=150>
<TABLE cellSpacing=0 cellPadding=0 width=150 border=0>
<TBODY>
<TR bgColor=#000000>
<TD align=middle width=49><A class=nav style="COLOR: #ffffff"
href="http://www.ibm.com/privacy/"><FONT face="Arial, sans-serif"
color=#ffffff size=-1>隐私</FONT></A></TD>
<TD width=1 bgColor=#959595><IMG height=20 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=1 border=0></TD>
<TD align=middle width=49><A class=nav style="COLOR: #ffffff"
href="http://www.ibm.com/legal/"><FONT face="Arial, sans-serif"
color=#ffffff size=-1>法律</FONT></A></TD>
<TD width=1 bgColor=#959595><IMG height=20 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=1 border=0></TD>
<TD align=middle width=49><A class=nav style="COLOR: #ffffff"
href="http://www.cn.ibm.com/Main.nsf/HTMLS/aboutibm&contactus"><FONT
face="Arial, sans-serif" color=#ffffff size=-1>联系</FONT></A></TD>
<TD width=1 bgColor=#959595><IMG height=21 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif"
width=1 border=0></TD></TR></TBODY></TABLE></TD>
<TD width="100%" bgColor=#000000><IMG height=1 alt=""
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/c.gif" width=1
border=0></TD></TR></TBODY></TABLE>
<SCRIPT language=JavaScript1.2
src="MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files/stats.js"
type=text/javascript></SCRIPT>
<NOSCRIPT><IMG height=1 alt=""
src="D:\新建文件夹\MiniGUI 体系结构之四 图形抽象层和输入抽象层及 Native Engine 的实现(二).files\c(2).gif"
width=1 border=0></NOSCRIPT> </BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -