Adreno SDK 详细介绍(一)

Adreno SDK 详细介绍(一)——Framework概览

《初识Qualcomm Adreno SDK》中,我们已经对Adreno SDK有了初步的印象。从现在起,我们将一起学习如何使用Adreno SDK来优化我们的应用。


Adreno SDK Framework

为了方便快捷的创建一个3D应用,Adreno SDK提供了一整套的Framework设计,基于此框架用户可以很轻松的开发出OpenGLES2/3的应用。同时SDK中还提供基于此框架的大量示例代码,以供大家学习使用。

Framework简介

此Framework通过对硬件以及操作系统的抽象,为OpenGLES的开发提供一个平台无关的基础平台,包括对一些硬件的初始化、本地显示的连接等。另外,还提供访问资源的接口,比如纹理、图像、字体库、几何网格等。
Framework的代码结构设计非常合理,把平台相关的代码独立出来,放到特定的目录下。同时,基础类也被设计成易于与其他框架集成的结构。
如果,大家有兴趣可以读一下Framework的代码(Development\Samples\Framework)。


Framework基础用法

1、定义应用主框架类

继承自CFrmApplication的框架类,可以监听并处理Resize事件,构建、更新、销毁场景,并且可以实现场景渲染等。可以在Render()中实现渲染部分。

class CSample : public CFrmApplication
{

public:
    virtual BOOL Initialize();
    virtual BOOL Resize();
    virtual VOID Destroy();
    virtual VOID Update();
    virtual VOID Render();

    CSample( const CHAR* strName );
}

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12


2、创建应用实例

使用此Framework的应用都必须实现此全局函数。

CFrmApplication* FrmCreateApplicationInstance()
{
    CSample *CreateWindow = new CSample( "CreateWindow" );

    return CreateWindow;
}

    1
    2
    3
    4
    5
    6


3、获取Input事件

可以通过FrmGetInput函数来获取输入事件。

VOID CSample::Update()
{
    UINT32 nButtons;
    UINT32 nPressedButtons;

    FrmGetInput( &m_Input, &nButtons, &nPressedButtons );
    if( nButtons & INPUT_KEY_0 )
    {
        // Do something if the '0' key is pressed
    }
}

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11


4、资源包

可以通过打包工具ResourcePacker将纹理的资源文件打包成.pak文件,自动将TGA、BMP、JPG等格式的文件转换为OpenGLES使用的纹理格式(比如ATC等)。在运行时可以通过CFrmPackedResource 类动态加载访问。

CFrmPackedResource resource;
if( FALSE == resource.LoadFromFile( "Media\\Textures.pak" ) )
    return FALSE;
....
CFrmTexture* pLogoTexture = resource.GetTexture( "Logo" );
}

    1
    2
    3
    4
    5
    6


5、文字渲染

可以通过工具FontMaker 将文字光栅化成bitmap图像文件,会输出三个文件:TGA图像文件、字体数据文件、xml描述文件。然后可以通过ResourcePacker将这三个文件打包成.pak格式文件,用来动态加载显示文字信息。

CFrmFont Font; 
BOOL bResult = Font.Create( "Media\\Fonts\\SomeFont16.pak" );
...
Font.DrawText( 10, 10, FRMCOLOR_WHITE, "Draw this text." );

    1
    2
    3
    4


6、几何网格

Framework提供了一种保存几何网格的数据结构,这个比较复杂,后面我们会专门讨论。

CFrmMesh Mesh;
if( FALSE == Mesh.Load( "Media\\Meshes\\Test.mesh" ) )
    return FALSE;

if( FALSE == Mesh.MakeDrawable( &resource ) )
     return FALSE;

    1
    2
    3
    4
    5
    6


7、UI界面

Framework提供一套UI界面实现方案,用户可以通过FrmUserInterface类在渲染场景上显示一个UI界面。

CFrmFont Font;
if( FALSE == Font.Create( "Media\\Fonts\\Font.pak" ) )
       return FALSE;

CFrmPackedResource resource;
if( FALSE == resource.LoadFromFile( "Media\\Textures.pak" ) )
        return FALSE;

CFrmTexture* pTexture;
pTexture = resource.GetTexture( "Overlay" );

CFrmUserInterface UI;
if( FALSE == UI.Initialize( &Font, "Title" ) )
        return FALSE;

FLOAT32 fVariable   = 10.0f;
const CHAR* strVariable = "Some value"
UI.AddHelpFloatVariable( &fVariable, "Var1", "%3.1f" );
UI.AddHelpStringVariable( &strVariable, "Var2" );
UI.AddHelpKeyInfo( FRM_FONT_KEY_0, "Toggle Info Pane" );
UI.AddHelpKeyInfo( FRM_FONT_KEY_1, "Do something" );
UI.AddHelpKeyInfo( FRM_FONT_KEY_2, "Do something else" );
UI.AddOverlay( pTexture->m_hTextureHandle, -5, -5, 128, 64 );

 ...

UI.Render();

原文地址:http://blog.csdn.net/cuichuankai/article/details/49660577

Adreno 660是高通公司的最新一代GPU,下面是Adreno 660的详细规格: 1. GPU架构:Adreno 600系列的第三代GPU架构,采用7nm工艺制程,具有更高的效率和性能。 2. GPU核心数:Adreno 660有512个计算单元,比前一代Adreno 650多了35%,可以提供更快的图形渲染速度和更高的图形质量。 3. 最高主频:840MHz,比Adreno 650的最高主频提高了20MHz,可以提供更快的图形处理速度。 4. 支持的API和标准:Adreno 660支持OpenGL ES 3.2、Vulkan 1.1、OpenCL 2.0等图形和计算API和标准,可以满足各种应用的需求。 5. 支持的分辨率:Adreno 660最高支持4K分辨率,可以提供更高清的图形显示效果。 6. 支持的显示接口:Adreno 660支持HDMI 2.1、DisplayPort 1.4、USB-C等多种显示接口,可以满足各种设备的需求。 7. 支持的存储器类型:Adreno 660支持LPDDR5、LPDDR4X等多种存储器类型,可以提供更高的存储器带宽和更快的数据传输速度。 8. 支持的存储器带宽:Adreno 660最高支持275GB/s的存储器带宽,比Adreno 650提高了25%,可以提供更快的数据传输速度和更流畅的图形渲染效果。 9. 支持的视频编解码器:Adreno 660支持H.264、H.265/HEVC、VP9等多种视频编解码器,可以提供高效的视频处理和更清晰的视频显示效果。 10. 支持的AI加速器:Adreno 660内置了Hexagon 780 DSP,提供26TOPS的AI性能,可以提供更快的AI计算速度和更高的AI计算效率。 以上是Adreno 660的详细规格,它具有更高的计算单元数量、更高的存储器带宽和更强的AI性能,可以提供更出色的图形处理和深度学习性能,适用于高端移动设备和虚拟现实、增强现实等应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值