PowerVR SDK记录

最近下载了一个PowerVR的SDK,在高手的指点下玩了一把。

感觉PowerVR的Demo的效果还可以,只是没有以前看到的shuiwang的QT下的效果好,不能让人眼前一亮的感觉。不过也没关系,有3D 的Demo,总是可以玩一玩的。

 

 

记录以下信息,方便后来者使用:

 

(1) 下载PowerVR SDK。

网址比较难找:

http://www.imgtec.com/downloads.asp

http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp

下载的时候,挑WIndows版本的下载就可以了。这里的Windows版本,实际上是使用的Win32的模拟器。工程都是Opengl ES的。

 

(2) VS2008工程--> VS2005。

SDK里边的工程,都是VS2008搭建的,需要转化为VS2005,才可以使用。

这里不要担心,因为,VS2008转化到VS2005,实在太Easy了~

修改方法:

1.  修改.sln文件:

Microsoft Visual Studio Solution File, Format Version 10.00   --> 改为 8.00
# Visual C++ Express 2008                                                           --> 改为 2005

2. 修改.vcproj 文件:

 ProjectType="Visual C++"
 Version="9.00"                                                                               --> 改为 8.00

 

(3) 运行模拟器,在PC端查看Opengl ES的效果。

在VS2008的工程修改完之后,使用Win32的PC端的SDK,就可以build出一个exe了。

在高手的指点下,我的第一个exe是:OGLES2IntroducingPFX.exe。

首先,将 libEGL.dll   libGLESv2.dll,2个dll,拷贝到 C :/windows/system32/  

(源文件位于:D:\PowerVR Insider SDK\OGLES2_WINDOWS_X86EMULATION_2.10\Builds\OGLES2\WindowsX86\Lib)

然后,运行build出的exe就可以了。

如果这个时候看不到效果,有可能是你的显卡不支持。目前的主流显卡,都应该是支持的。NVDIA的显卡,基本都是支持的。

 

(4) SDK版本:WIN32(PC) -->> WINCE。

当然,这一步是很繁琐的,下边就娓娓道来吧~

换成WINCE的SDK,工程的很多东西,是要修改的,下边记录我工程碰到的一些问题,以备后来者参考:

 

1.  error PRJ0004 : Could not generate command line for the 'VCCLCompilerTool' tool.

攻略:Project Settings->C/C++->General->Debug Information Format = 4,       change it to      /Zi

 

2. fatal error C1083: Cannot open include file: 'crtdbg.h'

攻略:Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions,加入变量:_UNDER_CE;UNDER_CE;

 

3. error C3861: 'bsearch': identifier not found

攻略:在PVRTPrint3D.cpp文件中,加入如下以下代码:

//function: bsearch.

void *bsearch(const void *key,
               const void *base,
               size_t num,
               size_t width,
               int ( __cdecl *compare ) ( const void *, const void *))
{
    void * pRet = NULL;
    size_t i = 0;
    for (i = 0; i < num; i++)
    {
        if (!compare((unsigned char*)key + width * i, (unsigned char*)base + width * i))
        {
            pRet = (unsigned char*)base + width * i;
            break;
        }
    }
    return pRet;
}

void *lfind(const void *key,
             const void *base,
             unsigned int *num,
             unsigned int width,
             int (__cdecl *compare)(const void *, const void *))
{
    return bsearch(key, base, *num, width, compare);
}

 

4. PVRTPrint3D.cpp(608) : error C2660: 'vswprintf' : function does not take 4 arguments

攻略: 

vswprintf(s_Text,/* MAX_LETTERS+1,*/ pszFormat, args);
 或者使用,vswprintf_s(s_Text, MAX_LETTERS+1, pszFormat, args);

 

5. error C2731: 'WinMain' : function cannot be overloaded

攻略:Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions,加入变量:_UNICODE;UNICODE;

 

6. fatal error LNK1181: cannot open input file 'OGLES2Tools.lib'

攻略:Configuration Properties -> Linker -> General -> Additional Library Directories,设置为:

..\..\..\..\..\Builds\OGLES2\WinCE\Lib; ..\..\..\..\..\Tools\OGLES2\Build\WindowsVC2008\Debug

(需要将WINCE平台的lib,先copy到\WINCE\lib下,然后再设置路径;

OGLES2Tools工程的output路径先设置为:$(ProjectDir)$(ConfigurationName)

 

7. fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'THUMB'

攻略:Configuration Properties -> Linker -> System-> SubSystem,设置为:WindowsCE。

 

8. OGLES2Tools.lib(PVRTResourceFile.obj) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'THUMB'

攻略:原因是WINCE的工程,链接了win32的lib。重复第6个step,设置为对应build生成的'OGLES2Tools.lib'即可。

 

 

(5) 下边,就是见证奇迹的时刻。

把编译生成的exe,放到支持Opengl ES的WINCE平台上,Run。(ESC可以退出)

 

转载请说明出处,谢谢~

你可能感兴趣的:(生活,退却的激情)