第一个QNX图形程序

本文介绍了如何在QNX Momentics环境下开发第一个图形程序,通过gf_dev_attach()连接设备,遇到的链接配置问题及解决办法,并详细展示了从创建显示表面到在QNX虚拟机上成功显示一个方框的完整过程。

理清了思路以后开始通过实例测试GF的使用过程,为了简化测试环境,这次使用的是QNX Momentics环境和QNX虚拟机环境,没有使用BeagleBoard作为运行目标,主要是怕直接在板子上运行会有其他因素影响测试。

在QNX momentics环境中创建了一个新的QNX C Project, 在main.c里先加上gf头文件的引用:

#include <gf/gf.h>

 

然后在main方法里加上第一步操作,就是通过fg_dev_attach()方法连接到设备上去,代码如下:

 

      if (gf_dev_attach(&gdev, GF_DEVICE_INDEX(0), &gdev_info) != GF_ERR_OK)          {

            printf("gf_dev_attach() failed\n");

            return (-1);

      }

 

不管后面是否成功,先测试一下能否连接设备,很气馁地发现编译都不通过,方法gf_dev_attach的引用有问题。

不是已经将fg.h引入了吗?

在网上找了一轮,发现是链接配置有问题,需要在链接选项里加上gf库的引用,配置在项目属性的“QNX c/c++”一栏,在“Linker”页面的“Other Options”项中填写“-lgf”,如下图:

 

 

然后的测试就一路顺风顺水:

连接设备成功!

连接显示器成功!

连接显示层成功!

 

具体的代码在文章后面有,这里就不贴了。

 

到了显示表面的地方卡了,有点问题,首先是使用那个方法有点搞不清,看了文档才发现应该是调用

gf_surface_create_layer()方法创建显示表面,然后才调用gf_layer_set_surfaces()将显示表面和显示层连接起来。

然后就是一直无法创建显示表面,测试的时候总是报错。

最后从openqnx网站上找到答案,去年的贴子,和我的问题一模一样,贴子链接如下:

 http://www.openqnx.com/chinese/viewtopic.php?t=2656

  

贴子中提到问题的原因是QNX虚拟机启动Photon界面后将资源占住了,我们的测试程序无法使用。</

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值