????????????ARM?????????OpenGL????????OpenGL|ES????????????????????????????????????????????????????????????
?????????????£??????????OpenGL??OpenGL|ES??OpenGL?????????????????OpenGL|ES??OpenGL????????????????????????OpenGL|ES??????http://www.khronos.org/opengles/?? ?????и???????????????????OpenGL?????????????????????OpenGL???????????????????ЩOpenGL??????????????????? ??????ARM????????????μ????????????OpenGL|ES????????????????????OpenGL|ES??????У?Klimt??Vincent (ogles)??TinyGL???Google??£????????????????????Щ??????????????X11??Qt/E???????????????????????????? PicoGL??????TinyGL????????????????????PicoGL????????Framebuffer????????PicoGL???λ??????д??? ???????http://jserv.sayya.org/??????????????????????????????????λ???????????????????http://people.openmoko.org/jserv/graphics/picogl-20051108.tar.bz2??
???????????????????????????????????????????????????????arm-linux-gcc 2.95.3/3.3.2/3.4.1???????????????????????????±??????????????????????????????Crosstool????Dan Kegel?????used to be a scary prospect??requiring iron will??days if not weeks of effort……?????Crosstool????????????????????????????????????1????С?????????????crosstool?????http://kegel.com/crosstool/????????http://kegel.com/crosstool/crosstool-0.43.tar.gz??
???????????????????????????root????????????????????????????????????????????????????
????# mkdir /opt/crosstool
????# chown /opt/crosstool lxz
????# chgrp /opt/crosstool users
?????????????????????????????
????# tar xvzf crosstool-0.43.tar.gz
????# cd crosstool-0.43
????# ./demo-arm-softfloat.sh
????crosstool?????????????????????????????????crosstool????????????http://kegel.com/crosstool/current/doc/crosstool-howto.html???????/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu?????????????????????????????
???????????picogl?????picogl?????
??????????picogl?????bug????backends/vesafb/tk.c???????????
????#define _FB_TK_
????????backends/vesafb/glx_impl.h?????
????struct fb_fix_screeninfo FixedInfo;
????struct fb_var_screeninfo VarInfo?? OrigVarInfo;
????????
????#ifdef _FB_TK_
????struct fb_fix_screeninfo FixedInfo;
????struct fb_var_screeninfo VarInfo?? OrigVarInfo;
????#else
????extern struct fb_fix_screeninfo FixedInfo;
????extern struct fb_var_screeninfo VarInfo?? OrigVarInfo;
????#endif
????????????кü????????????backends/vesafb/glx_impl.h???????????????????????????
?????????????????????picogl??????Щ???????????include/GL/glx.h
????#include GLX_IMPL_HEADER
?????????????????????backends/vesafb/glx_impl.h
???????backends/vesafb/tk.c?У?initialize_fbdev?????й?VarInfo????????????????LCD???
???????????
????# cd PicoGL
????# CC=/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-gcc ./configure --with-backend=vesafb --host=arm-softfloat-linux-gnu --prefix=/home/lxz/builtPicoGL
????????£?CC=???y??????????λ???--with-backend=vesafb??????FB???????豸??host=arm- softfloat-linux-gnu?趨???????--prefix=/home/lxz/builtPicoGL?趨???????????????λ?á?
???????
????# make
????# make install
??????/home/lxz/builtPicoGL/lib????PicoGL?????????????????????arm-linux?????????/lib ???棬??/home/lxz/builtPicoGL/bin??????????arm-linux????????κε???????????????д????????????? ??NFS??????У??????????????
?????????????????PicoGL?????????????hello.c????????????
????# arm-softfloat-linux-gnu-gcc -c -I /home/lxz/PicoGL/include -I /usr/include hello.c
????# arm-softfloat-linux-gnu-gcc -o hello -L /home/lxz/builtPicoGL/lib/libPicoGL.so -L /home/lxz/builtPicoGL/lib/libPicoGLU.so -lm hello.o /home/lxz/builtPicoGL/lib/libPicoGL.a /home/lxz/builtPicoGL/lib/libPicoGLU.a