自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 摆脱语言之争

不管在哪个技术论坛,总是会看到一些关于语言的争论,有人力挺c语言,也有人骂c语言,有人说C#比C++好,同时又有人说C++比C#好。。。如此种种,似乎永远不会结束。我相信我个人是无法停止这种争论的,只希望通过这一篇短文,让你可以早日跳出这个怪圈,摆脱语言之争。因为只有跳出语言的界

2011-09-30 00:05:55 2120 2

原创 在BlackBerry上使用OpenGL绘图(汇总)

为了方便大家阅读,现在将《BlackBerry上使用OpenGL绘图》一文的所有章节汇总起来,点击链接可以直接访问。 BlackBerry上使用OpenGL绘图在BlackBerry上进行图像相关的编程有很多方式,开发人员可以通过Graphics编程接口在屏幕上完成复

2011-09-27 14:20:13 2179

原创 在BlackBerry上使用OpenGL绘图(十二):光照

12光照光照在3D世界中非常重要,在不设置光照的情况下很多模型都无法体现它的真正体积。在OpenGLDemo样例中,当立方体旋转时我们可以看到立方体不同面的明暗效果,这就是光照的作用。 要在OpenGL中使用光照,首先要启用光照支持。启用光照支持同样是通过调用glEn

2011-09-27 14:10:39 2613

原创 在BlackBerry上使用OpenGL绘图(十一):纹理数组

11 纹理数组现实世界中的物体由不同的材质组成,表面可能会有不同的花纹,这些特性在模拟的3D世界中无法通过简单的平面实现。为了更好地在3D世界中模拟现实物体,设计人员引入了纹理的概念,主要思路是通过2维图片绘制类似于某种材质表面的图像,然后将2维图片贴附在平面上,形成与现实物

2011-09-27 14:06:59 4537 1

原创 在BlackBerry上使用OpenGL绘图(十):视口变换

10 视口变换相对于以上变换,视口变换更为简单一些,视口变换最终决定显示出来的图片大小。视口变换类似于冲印的照片底片后最终决定放大还是缩小照片,还决定照片放在相框的哪个位置。 视口变换通过方法glViewport实现,该方法接受四个参数,第一个参数和第二个参数指定图片

2011-09-26 11:16:10 2566

原创 在BlackBerry上使用OpenGL绘图(九):投影变换

9 投影变换以上讲解的是“视图模型模式”,主要是如何对观察点或者是模型进行变换,下面粗略了解一下“投影模式”。 “投影模式”变换的作用是控制3D模型如何投影到2D的屏幕上。一般希望的是将3D模型投影到2D屏幕上时和我们看见现实世界的物体相同,有近大远小的透视效果,这种

2011-09-26 11:14:39 2742

原创 在BlackBerry上使用OpenGL绘图(八):模型的运动

8 模型变换:模型的运动在OpenGL ES中,对模型的变换主要有移动、伸缩和旋转三种,分别对应方法glTranslatef、glScalef和glRotatef三个方法。 glTranslatef方法用于模型的平移,接受三个参数,分别对应X、Y和Z轴上的移动值,正数

2011-09-26 11:10:34 3143

原创 在BlackBerry上使用OpenGL绘图(七):视图变换:观察点的运动

7 视图变换:观察点的运动对视图的操作主要表现为对观察点的操作,形象的比喻就是在3D世界中摆放“相机”,你可以指定“相机”的位置,也可以指定“相机”镜头的朝向,还可以指定“相机”机身的朝向。在OpenGL中,开发人员可以通过gluLookAt方法设置观察点,不过在标准的Ope

2011-09-24 21:32:50 3332

原创 在BlackBerry上使用OpenGL绘图(六):3D变换介绍

6 3D变换介绍以上通过简单地复制OpenGLDemo中的glRotatef方法实现了3D模型的旋转。然而,为了在自己的程序中得心应手地实现各种复杂的运动,仅仅复制样例代码是不够的,读者需要更深入一层地了解OpenGL中的变换方式。 OpenGL中的基本变换方式有视图

2011-09-24 21:28:27 2472

原创 在BlackBerry上使用OpenGL绘图(五):动画的产生

5 动画的产生上一节我们讨论了3D模型的建立,所建立的3D模型是静态的,不像原来的OpenGLDemo中的立方体一样可以旋转。为了让3D模型运动起来,我们需要对程序做一些修改。不过,在开始之前,我们首先需要简单认识一下动画的产生。 用非专业的语言描述,动画是由静态图片

2011-09-24 21:25:37 2579

原创 在BlackBerry上使用OpenGL绘图(四):顶点数组与法向量数组

4 顶点数组与法向量数组我们分析样例的目的是希望了解样例中各部分代码的作用以及它们之间的关系。而实现这一目的的有效方法是对样例进行简化,解析出其中最基本的语句,并分析它们的用法。 从样例的运行结果我们知道OpenGLDemo显示了一个转动的立方体,在立方体的表面还有黑

2011-09-23 22:40:29 3822

原创 在BlackBerry上使用OpenGL绘图(三):OpenGL样例结构分析

3 OpenGL样例结构分析运行OpenGL样例之后,需要进一步分析样例中代码,才能更好地理解样例的工作机制。在开发环境中打开包“com.rim.samples.device.opengldemo”,可以看到其中有五个类,分别是Cube、CubeRenderer、OpenGL

2011-09-23 22:37:15 4099

原创 在BlackBerry上使用OpenGL绘图(二):运行OpenGL样例

2 运行OpenGL样例学习样例是开发人员学习新技术的好方法,通过样例可以直观地了解程序的结构和使用方法,避免阅读冗长的API说明。为了让开发人员快速了解OpenGL在BlackBerry上的使用方法,RIM在BlackBerry开发环境中提供了一个完整的OpenGL样例,开

2011-09-23 17:26:14 2855

原创 在BlackBerry上使用 OpenGL绘图(一): OpenGL介绍

为了在QNX上完成3D绘图,拿回之前自己写的“在BlackBerry上使用 OpenGL绘图”阅读,同时在这里和大家分享一下。文章太长,分几篇发上来。下面是第一部分。 在BlackBerry上使用 OpenGL绘图在BlackBerry上进行图像相关的编程有很多方

2011-09-23 17:14:16 2813

原创 有关“参加一个开源项目”的建议

看了几篇高手的建议,有国外的,也有国内的,其中不约而同地提到一个建议,建议开发人员“参加一个开源项目”。对于这个建议我个人非常认同,虽然我不是一个特别有社会责任感的人,可以为开源项目作贡献怎么说都是一件令人开心的事情。不过,我的问题是,参加什么样的开源项目?国内有这样的开

2011-09-23 12:03:15 2905 2

原创 理解APCS-- ARM过程调用标准

因为需要在QNX Momentics中混合C语言和ARM汇编进行开发,于是初步了解了一下APCS。和大家分享一下我自己的学习过程,然后通过一个形象一点的类比讲述我自己的理解。 刚开始的时候我是不知道有APCS这回事,所以第一次从C语言中调用ARM汇编函数的时候返回就出错了

2011-09-22 00:15:58 15780 12

原创 QNX开发与PlayBook开发

自己最早的时候动了念头学习QNX是因为RIM的BlackBerry PlayBook的发布,还有传闻的BlackBerry SuperPhone的消息。关于BlackBerry SuperPhone的消息到现在仍然只是消息,暂且放下。PlayBook已经可以在市场上看到了,虽然中

2011-09-21 16:07:26 4119

原创 第一个QNX图形程序

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

2011-09-20 11:17:20 5501 8

原创 开始QNX上的图形编程,了解GF

进行了一些QNX编程的学习后,开始尝试QNX图形编程。在文本界面上输出各种字符串确实有点枯燥,很希望在QNX系统上显示一些图形界面。首先看了一下资料,了解有那些方法可以实现图形编程。QNX官方文档里有三本是和图形相关的。第一本是:《QNXR Neutrino Device

2011-09-19 19:58:23 7957 3

原创 程序员,不要让微博占用你太多时间。

不管我们是否意识到,我们无法否认一个事实,微博火了,微博和其它新兴的互联网工具一样在改变着我们的生活。不过,我个人想对程序员们说一句话,不要让微博占用你太多时间。 为什么? 要回答这个问题,你可以停下刷新微博的手指,靠在电脑椅上仔细回想一下微博给你带来了什么。热门

2011-09-18 01:49:32 21816 142

原创 QNX Momentics 中Target Navigator视图的使用。

在QNX Momentics环境中,Target Navigator视图是非常有用的一个视图。在QNX Momentics中编程,肯定需要在目标系统中调试应用,而Target Navigator视图就是管理目标系统的最有效工具。 在QNX Momentics中选择“W

2011-09-16 17:57:50 3639

原创 平台之上还是平台之下?QNX学习的分水岭。

学习QNX有一段时间了,应该回过头总结一下学习过程,理一理思路,为下一步学习理清方向,同时也可以给各位共同学习的朋友(我心中“同学”的概念)提供参考。 看一看自己的文章和目前学习的内容,发现QNX学习涉及了两个大的方面,一方面是QNX平台的使用以及QNX平台上的开发工作,

2011-09-16 00:24:38 10719

原创 QNX学习者,向ARM汇编进发!

既然BeagleBoard是ARM的板子,自己又有想法了解学习一下ARM体系结构和ARM汇编,有机会肯定要在这个板子上跑跑ARM汇编程序。在网上了解了一下,一般的做法是搭建一个Linux环境设置混编环境,编译后将程序传到板子上运行。搭建这些环境有些麻烦,而且自己手上的QNX

2011-09-15 12:20:28 4980 2

原创 第一个BeagleBoard上的QNX程序

成功在BeagleBoard上运行QNX系统后,尝试在BealgeBoard上跑一个Hello World程序吧。 测试发现整个程序编写过程和虚拟机上的第一个QNX程序类似,只是选择目标系统的时候要选择ARM,而不是X86。所以以下过程有些简略,如果有不清楚地地方请参考之

2011-09-15 10:57:47 4650 4

原创 QNX多线程同步之Semaphore

之前讲了QNX上Mutex的使用,Mutex作用是锁住一个资源,保证同一时间只有一个线程可以使用该资源。不过,有些情况下Mutex不能满足需求,比如某个资源可以允许两个线程同时访问,但是不允许超过两个线程访问它。这种情况下如果还是使用Mutex的话只有一个线程可以访问该资源,没有

2011-09-14 13:38:57 3792

原创 QNX上毫秒级的线程休眠:delay

在前几篇博文的样例中大家可能留意到了一个线程休眠方法:delay。这个方法接受一个参数,就是休眠时间,不过和QNX上的sleep方法不同,delay方法的休眠时间以毫秒为单位,不是以秒为单位。这样大家就可以通过delay(200)使线程等待200毫秒了,可以细致地控制线程的运行。

2011-09-14 10:54:55 4042

原创 在BeagleBoard上运行QNX系统(总结)

为了让同学们更好地了解在BeagleBoard上运行QNX系统的方法,我将前几天的工作总结了一下。需要完成的主要步骤如下: 1. BeagleBoard的准备:首先是准备好BeagleBoard和周边的设备。 我个人使用的是BeagleBoard XM Rev C,然后再加Chipsee 的BeagleBoard XM 扩展板。如果同学们使用的是BeagleBoard XM Rev B或之前的版本

2011-09-13 11:50:41 12346 21

原创 在BeagleBoard上运行QNX系统(二)

在BeagelBoard上成功运行QNX系统后,本以为可以很快开始进一步的学习,没想到遇到麻烦的问题。又经过几天的努力才把问题弄清楚,下面继续记录折腾过程。 第一次成功地在BeagleBoard上运行QNX系统后首先注意到的问题是QNX系统不能够自动启动,需要在串口上运行装载ifs文件的命令才能启动。针对这个问题,需要研究一下u-boot如何自动装载系统影像文件。 发现的第二个问题更严重一些,就是

2011-09-13 09:44:24 7695 5

原创 在BeagleBoard上运行QNX系统(一)

折腾了好几天,终于成功在BeagleBoard上运行QNX系统,如果说在BeagleBoard上运行Android费了一些手脚的话,在BeagleBoard上运行QNX可以说是费尽周折。秉承本博客的主旨,将折腾过程记录下来,供各位同学参考,以后可以少绕一些弯子。  为了在BeagleBoard上运行QNX系统,我参考了一些书和网上的资料,同时将制作Android系统的sh文件打开仔细读了一下,得出

2011-09-12 10:10:37 6384 3

原创 QNX多线程同步之Mutex

之前提到了QNX上的线程创建方法,现在进一步学习QNX上多线程的同步。曾经编写过多线程应用的同学们都知道线程之间的同步在多线程环境中特别重要,线程之间如果没有同步好,经常会出现逻辑错误。有关QNX线程同步在QNX官方文档《QNX Neutrino Programmer’s G

2011-09-09 14:30:00 3889 1

原创 在BeagleBoard XM 开发板上运行Android

虽然购买BeagleBoard的最终目的是想在上面运行QNX系统,不过既然BeagleBoard板支持Androind而且ChipSee在附带的关盘里提供了Android系统,就先运行测试一下吧。 在BeagleBoard上运行Android就不像运行WinCE那么简单了,因为附带的测试SD卡里没有部署好的Android系统,需要自己做一张有Android系统的SD卡。 和大家分享一下我自己制作A

2011-09-09 09:59:53 4956 1

原创 BeagleBoard XM 开发板入手

老是在虚拟机上折腾总觉得不过瘾,希望可以找个ARM的开发板跑跑QNX,一方面可以真实感受QNX系统,另一方面也可以学习一下ARM架构。经高人指点,决定选择BeagleBoard 开发板,有QNX的BSP,是ARM体系的,符合我的两个要求。剩下的就是如何购买了,网上找了一轮

2011-09-08 22:02:06 7754 5

原创 QNX 多线程样例分析

在QNX Momentics环境中有几个样例供初学者参考,学习QNX多线程编程的一个好方法是导入QNX的多线程样例,测试运行后分析样例代码,和自己编写测试样例相比,这种方法可以减少输入错误,配置错误等低级错误带来的问题。 在QNX Momentics中选择“File-

2011-09-08 18:26:06 3609

原创 QNX 中的线程休眠

在多线程环境中,经常会需要让一个线程等待一段时间。象我这样之前使用java编程的人第一时间想到的当然是sleep()方法,因为它使用很方便。在QNX环境中也有sleep()方法,调用方式也很简单,在sleep()方法中传入一个整型参数就好了,如:sleep(10);以上方

2011-09-08 11:39:33 3133

原创 QNX 上的多线程编程

在QNX 文本界面编程除了简单的键盘输入,控制台输出以外,还有好多重要的知识点需要学习,包括多线程,线程同步,进程通讯,资源管理器(硬件驱动)等等。首先了解一下QNX环境下的多线程编程。QNX环境实现了多线程并发,多线程切换时的复杂处理已经由内核实现了,开发人员需要做的就是创

2011-09-08 11:35:53 3238

原创 QNX程序的键盘输入与控制台输出

第一个QNX程序已经写完,测试了QNX应用的开发过程,开始写一些复杂一点点的程序。最先想到的是获取键盘输入和通过控制台进行输出,这些都是当初学习C语言的时候必做的功课。 和标准的C语言一样,QNX C语言实现也是通过printf()进行控制台输出,通过scanf()获

2011-09-08 11:31:38 6654 8

原创 QNX Momentics里Target File System Navigator 视图的使用。

有关如何将编译好的文件上传到QNX虚拟机上,前两篇博文提到了两种方法,一种是使用FTP将文件上传到QNX虚拟机,另一种是通过QNX Momentics的运行设置,使应用在测试之后留在目标虚拟机上。看了上面提到的博文后,有网友告诉我说可以使用QNX Momentics里的Tar

2011-09-08 09:50:36 4131 1

原创 通过QNX Momentics直接将程序上传到QNX虚拟机上

昨天写了博文讲述如何通过FTP将编译好的程序上传到QNX虚拟机上,过程比较复杂,今天就发现原来有更好的方法。 在QNX Momentics环境中,可以通过“Run -> Run Configuration”配置运行目标,这个在之前的博文提到过。今天发现在配置运行目标页面中

2011-09-08 09:34:32 4911 4

原创 将QNX应用上传到QNX虚拟机上

已经完成了第一个QNX应用的开发和测试,进一步需要将应用直接上传到QNX虚拟机上运行。 我猜想QNX Momentics应该有工具直接进行部署,不过找了一轮没找到,就决定使用最笨的办法:FTP 先从我的WIN 7 CMD命令行窗口通过FTP命令进入FTP界面,输入

2011-09-07 21:43:13 6640 5

原创 第一个QNX程序

QNX开发环境和QNX虚拟机都搭建好了,开始写第一个QNX程序。 关于QNX程序开发的最好参考是QNX官网上的pdf书《10 Steps to Developing a QNX Program: Quickstart Guide 》,清晰地说明了如何通过十个步骤开发第一个

2011-09-07 15:43:18 15448 16

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除