显卡之opengl(一)OpenGL | ES 移植(装载)

开发平台:友善之臂micro2440开发板+Fedora9
主机操作系统内核版本:2.6.25-14-fc9-i686
参考文献:(1)清秋梧桐  日志:“opengl&SDL” http://qqwt.blog.sohu.com/91060365.html
资料准备:picogl-20051108.tar;SDL-1.2.14.tar;arm-softfloat-linux.tar

1)    参照开发板说明书第5.3节,建立交叉编译环境
2)    参照开发板说明书第5.4节,解压安装源代码及其他工具
3)    将arm-softfloat-linux.tar解压到根目录下;
tar xvf arm-softfloat-linux-gcc-3.4.5.tar.bz2 -C /
说明:
a)    按照开发板说明书,所建立的交叉编译器版本为arm-linux-gcc-4.3.2;该版本编译器只支持矢量浮点,不支持软浮点。
b)    本次实验所采用的方法是:直接解压安装从网上下载来的交叉编译器;当然也可以按照参考文献中所述方法自己编译
4)    解压缩picogl,修改picogl的代码;具体如何修改代码参见参考文献
说明:
a)    本次实验中,picogl的目录为:/root/arm_Stu/opengl/PicoGL
b)    参考文献中提到:“为了让你的程序使用picogl更方便些,最好再改个地方include/GL/glx.h    #include GLX_IMPL_HEADER改为你喜欢的方式,指向backends/vesafb/glx_impl.h”
不是非常理解其中的意思,此处未作修改;
c)    修改LCD的配置,参照/opt/FriendlyARM/mini2440/linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c
5)    加入系统环境变量,运行命令gedit /root/.bashrc;添加如下内容
export PATH=$PATH:/usr/local/arm/4.3.2/bin:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux/bin/:/opt/libSDL/bin
6)    配置,进入PicoGL目录
# cd PicoGL
#./configure –with-backend=vesafb –host=arm-softfloat-linux –prefix=/root/arm_Stu/opengl/builtPicoGL
7)    make;make_install
8)    在/root/arm_Stu/opengl/builtPicoGL /lib里就有PicoGL的库了,把动态库文件拷贝到arm-linux根文件系统的/lib里面,把/root/arm_Stu/opengl/builtPicoGL /bin里的程序拷贝到arm-linux文件系统的任何地方
9)    重新制作自己的文件系统,并将该文件系统安装到开发板上;
10)    将SDL-1.2.14.tar压缩文件拷贝到/root/arm_Stu/opengl/目录,并解压。解压后目录为SDL-1.2.14
11)    进入SDL-1.2.14目录,运行:   ./configure –disable-video-qtopia –disable-video-dummy –disable-video-fbcon –disable-video-dga –disable-arts –disable-esd –disable-alsa –disable-cdrom –disable-video-x11 –disable-nasm –target=arm-linux –host=arm-linux –enable-video-fbcon
注意:此处和参考文献(1)的内容有所不同;如果按照该参考文献的命令,则会出现提示SDL不支持视频的错误提示
12)    make,make_ install
13)    这时会在/usr/local/include中出现SDL文件夹 ,同时出现/usr/local/lib文件夹

将/root/arm_Stu/opengl/ SDL-1.2.14/test/testalpha.c 文件拷贝到你的程序目录 /usr/work/test
修改testalpha.c文件
#ifdef _WIN32_WCE
/* Pocket PC */
w = 240;
h = 320;
#else
w = 640;
h = 480;
#endif
改为:
#ifdef _WIN32_WCE
/* Pocket PC */
w = 240;
h = 320;
#else
w = 640;
h = 480;
#endif

运行
arm-linux-gcc -o test test.c -I/usr/local/include/SDL/ -L/usr/local/lib/ -lSDL
生成 test可执行文件
14)将该test文件,以及/root/arm_Stu/opengl/ SDL-1.2.14/test目录中icon.bmp直接下载到开发板某一目录下(我是下载到根目录)

以下操作与开发板相关:
15)打开串口终端,我用的是secureCRT
16)将开发板设为nand flash启动 打开开发板电源
17)在控制台上运行:chmod 555 test
18)export LD_LIBRARY_PATH=/usr/local/lib
19)./test
现在就可以在屏幕上看到结果了!

但是在编译测试哦testgl.c文件后,当下到开发板中后,会提示“”No OpenGL support on this system”;想请问一下这是什么问题?

Testgl.c文件的基本流程如下:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

#include “SDL.h”

#ifdef __MACOS__
#define HAVE_OPENGL
#endif

#ifdef HAVE_OPENGL
#include “SDL_opengl.h”



#else /* HAVE_OPENGL */

int main(int argc, char *argv[])
{
printf(“No OpenGL support on this system\n”);
return 1;
}

#endif /* HAVE_OPENGL */

未经允许不得转载:智慧,启迪人生 » 显卡之opengl(一)OpenGL | ES 移植(装载)

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏