当前位置:  编程技术>移动开发
本页文章导读:
    ▪OpenGL ES 3.0 增多大量新特性        OpenGL ES 3.0 增加大量新特性  OpenGL 规范被广泛用于 PC 和移动设备。在昨天的 SIGGRAPH 2012 大会上,OpenGL 背后公益性组织科纳斯组织(Khronos Group)公布了新版本: 面对移动领域的 OpenGL ES 版本.........
    ▪ 在线所有免费技术视频        在线全部免费技术视频 http://gotomao.com 在线全部免费技术视频、在线查看API文档,无广告、速度快,请大家多提宝贵意见~~~ ......
    ▪ Dojo mobile TweetView 系列课程之二 —— TweetView 启程       Dojo mobile TweetView 系列教程之二 —— TweetView 启程 [xhtml] view plaincopy   <!-- tweets 视图 -->   <div id="tweets" dojoType="dojox.mobile.ScrollableView" selected="true">       <h1 dojoType="dojo.........

[1]OpenGL ES 3.0 增多大量新特性
    来源: 互联网  发布时间: 2014-02-18
OpenGL ES 3.0 增加大量新特性



 OpenGL 规范被广泛用于 PC 和移动设备。在昨天的 SIGGRAPH 2012 大会上,OpenGL 背后公益性组织科纳斯组织(Khronos Group)公布了新版本:

  • 面对移动领域的 OpenGL ES 版本更新到 3.0;
  • 面对桌面领域的 OpenGL 版本更新到 4.3;
  • 可运用在增强现实领域的图形接口 OpenVL。

三者中,OpenGL ES 3.0 成为主角,因为它是 Android、iOS 等主流移动平台上的图形接口标准。

OpenGL ES 3.0 带来很多新特性,根据 AnandTech 的解释:

  • 支持更多缓冲区对象。在 OpenGL ES 2.0 时中,缓冲区对象的规范有模糊之处。名字一样缓冲区对象,在实际渲染中对表现却有细微的差别。针对这个问题 OpenGL ES 3.0 制定了更详细对格式规范。新版 OpenGl ES 还增加对 Uniform Buffer Object 的支持;
  • 新版 GLSL ES 3.0 着色语言,支持 32 位整数和浮点数据类型以及操作。之前版本的着色语言只支持精度更低的,这样虽然能够加快计算的速度,所需的资源也更少,但当着色器的复杂度增加,出错也随之增加。同时,新版着色语言的语法更贴近  GLSL;
  • 支持遮挡查询(Occlusion Query)以及几何体实例化(Geometry Instancing)。通过遮挡查询,能够让 GPU 知道 3D 场景中,哪些物体被其它物体完全遮挡,这些完全被遮挡的物体 GPU 不会去渲染。几何体实例化是通过对具有相同顶点数据的几何体,赋予不同的空间位置、颜色或纹理等特征,从而创造出不同实例对象的技术。这两个特性都能够节省硬件资源,提高 3D 图形渲染的性能。
  • 增加多个纹理的支持。包括浮点纹理、深度纹理、顶点纹理等等。
  • 多重渲染目标(Multiple Render Targets),让 GPU 一次性渲染多个纹理。
  • 多重采样抗锯齿(MSAA Render To Texture),让 3D 物体对边缘不出现毛刺,可提升图像效果。
  • 使用统一的纹理压缩格式 ETC:多年来阻碍 OpenGL 发展的一大顽疾,就是没有统一的纹理压缩格式,包括 S3TC、GPUs、PVPRTC、ETC 等等。因为没有一个统一标准,开发者不得不因为不同的硬件环境而将纹理重复压缩多次——尤其对于 Android 开发者而言,这个过程苦不堪言。显然,统一纹理压缩格式,能够提高开发者对开发效率。但现实中,统一标准这类事情的进展从来没有快过。ETC 的推广要看之后开发者与厂商会做出怎样的反应。

     OpenGL ES 3.0 这一次更新无疑增加了大量新特性,总体而言,能够让移动平台游戏画面更加漂亮,还能让开发者更加节省力气,提高机器 3D 图像的性能。

    科纳斯回顾了 OpenGL ES 的发展历程,在 2007 年 8 月,初代 iPhone 和 Android 都内置了 OpenGL ES 1.x;2009 年 10 月,iPhone 3GS 和 Android 2.2 内置了 OpenGL ES 2.0。结果 OpenGL ES 在移动市场的占有率大增,从 2006 年的 20% 到今年的 90% 以上。

     与 OpenGL ES 在移动市场混得风生水起相比,OpenGL 在桌面市场却备受微软的 3D 图形接口 DirectX 的打压。和网景的遭遇相似,作为 1992 年就创立的 3D 图形接口标准,OpenGL 早先占领绝大多数市场份额。但 1996 年,微软推出自行开发的 3D 图形接口 DirectX,凭借 Windows 的垄断地位,最终成为第一。

    所幸 OpenGL 一直是一个开放性的标准,依靠协会成员的捐助生存,而且因为发展得要比 DirectX 早,被一些高端的图形设备和专业应用沿用,OpenGL 并未像网景那般消失在历史洪流。而这几年,由于天生的支持跨平台特性,令 OpenGL 能够适应移动时代“碎片化”的特征,成为移动开发人员的首选——这样的经历和 ARM 也有相似之处。

    因为移动市场的火爆,一些游戏公司也开始加入 OpenGL 阵营。最著名的当属开发处《虚幻》游戏引擎的 Epic Games,在 2010 年宣布加入 OpenGL 之前的十年,它一直坚持使用微软的 DirectX 开发游戏。

    最近 OpenGL 的发展速度在加快,其表现受到游戏业界的肯定。开发出《半条命》、《CS》等著名射击游戏的 Valve 最近宣称, OpenGL 要比 DirectX 性能更好。公司之前测试了《半条命 2》、《Left 4 Dead》以及《Dota 2》的游戏执行速度,在相同的硬件条件下,这些游戏在 Ubuntu 下测试 L4D2,最高帧数为 315 fps,比 Windows 快 20%。不过,Valve 对 Windows 的态度一直比较差,这个结果如何衡量,就看你自己了。

     

    题图来自 Flickr 的 roland.batroff,是他用 OpenGL 绘制的作品之一


    
[2] 在线所有免费技术视频
    来源: 互联网  发布时间: 2014-02-18
在线全部免费技术视频
http://gotomao.com 在线全部免费技术视频、在线查看API文档,无广告、速度快,请大家多提宝贵意见~~~

    
[3] Dojo mobile TweetView 系列课程之二 —— TweetView 启程
    来源: 互联网  发布时间: 2014-02-18
Dojo mobile TweetView 系列教程之二 —— TweetView 启程
作者:David Walsh

翻译:Siqi (siqi.zhong@gmail.com )

原文:Introduction to TweetView

 

在本系列的第一篇教程dojox.mobile入门 中,我们已经详细介绍了Dojo Toolkit中dojox.mobile包的基本概念和用法。在本系列接下来的教程中,我们将着手创建我们自己的强大dojox.mobile web应用程序TweetView。本篇教程将帮助你熟悉什么是TweetView,我们想用它来干什么,然后我们将开始构建这个移动应用程序的 HTML和CSS布局。

 

版本:1.6

难度:中级

系列:TweetView

 

什么是TweetView?

TweetView是我们将要使用dojox.mobile和一些我们自己定制的Dojo资源创建的应用程序。TweetView不仅仅是一个简单的dojox.mobile习作,它将是一个功能齐全并且真正有用的web应用程序。我们制作TweetView的目标有:

 

  • 利用dojox.mobile提供的widgets来创建一个跨平台、优雅的移动应用程序。
  • 为web应用程序添加我们自己的元素、控件以及我们想要的功能。
  • 使用JSONP 来从Twitter获取多个账户的微博。
  • 使用Dojo data store API 来储存微博。
  • 使用低耦合、高性能的代码。

!创建应用程序前花店时间好好计划一下是非常重要的

 

和创建所有基于Dojo的应用程序一样,一个共有的目标是保持代码的灵活、可扩展性,同时别忘了合理添加注释。

 

TweetView设计

我们将依照下面的模型来创建TweetView。本系列中接下来几篇教程将逐一介绍每个模型中视图的实现。

  

 

!你也许已经注意到这些模型只展示了iOS主题。我们的教程将专注于实现iOS主题。Android主题的图片和元素样只要根据iOS的资源依样画葫芦就可以了。由于dojox.mobile既提供Android主题又提供iOS主题,一旦我们的应用程序完成了,我们将很容易的创建Android的样式资源。

 

讲解上面所有模型的实现已经超出了本教程的范围,所以我们将先专注于创建该应用程序的全局HTML/CSS结构,也就是说你所看到的顶部标题栏和底部的控制区域。

 

TweetView HTML结构

第一篇教程提供了一个mobile web应用程序坚实的模板、所需的主题样式表以及一些SCRIPT标签。

 

 

[xhtml] view plaincopy
 
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
  • <html>  
  •     <head>  
  •     <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no"/>  
  •     <meta name="apple-mobile-web-app-capable" content="yes" />  
  •     <title>TweetView</title>  
  •     <link href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/mobile/themes/iphone/iphone.css" mce_href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/mobile/themes/iphone/iphone.css" rel="stylesheet" />  
  •     <mce:script type="text/javascript"><!--  
  •         djConfig = {  
  •             isDebug: true,  
  •             baseUrl: './',  
  •             modulePaths: {  
  •                 tweetview: 'js/tweetview'  
  •             },  
  •             parseOnLoad: true  
  •         };  
  •       
  • // --></mce:script>  
  •     <mce:script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js.uncompressed.js" mce_src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js.uncompressed.js"></mce:script>  
  •     <mce:script type="text/javascript"><!--  
  •         // 使用轻量级的mobile parser  
  •         dojo.require("dojox.mobile.parser");  
  •         // 导入 Dojo mobile  
  •         dojo.require("dojox.mobile");  
  •         // 如果客户端不是基于Webkit内核的话道出compat包  
  •         dojo.requireIf(!dojo.isWebKit,"dojox.mobile.compat");  
  •       
  • // --></mce:script>  
  •     </head>  
  •     <body>  
  •    
  •     <!-- 这里将放我们的应用程序代码 -->  
  •    
  •     </body>  
  • </html>  
  •  

     

    有了基本的应用程序模板,我们接下来将考虑怎么把三个视图整合进来(Tweets,Mentions,和Setting),还有每个视图中底部的导航条。我们先来处理视图:

     

     

    [xhtml] view plaincopy
     
  • <!-- tweets 视图 -->  
  • <div id="tweets" dojoType="dojox.mobile.ScrollableView" selected="true">  
  •     <h1 dojoType="dojox.mobile.Heading">  
  •         <!-- 刷新按钮 -->  
  •         <div dojoType="dojox.mobile.ToolBarButton"   mce_ icon="images/refresh.png"></div>  
  •         Tweets  
  •     </h1>  
  •     <ul dojoType="dojox.mobile.RoundRectList">  
  •         <li dojoType="dojox.mobile.ListItem">  
  •         Tweet item here  
  •         </li>  
  •     </ul>  
  • </div>  
  •    
  • <!-- mentions视图 -->  
  • <div id="mentions" dojoType="dojox.mobile.ScrollableView">  
  •     <h1 dojoType="dojox.mobile.Heading">  
  •         <!-- the refresh button -->  
  •         <div dojoType="dojox.mobile.ToolBarButton"   mce_ icon="images/refresh.png"></div>  
  •         Mentions  
  •     </h1>  
  •     <ul dojoType="dojox.mobile.RoundRectList">  
  •         <li dojoType="dojox.mobile.ListItem">  
  •         Mention tweet item here  
  •         </li>  
  •     </ul>  
  • </div>  
  •    
  • <!-- settings视图 -->  
  • <div id="settings" dojoType="dojox.mobile.ScrollableView">  
  •     <h1 dojoType="dojox.mobile.Heading">Settings</h1>  
  •     <h2 dojoType="dojox.mobile.RoundRectCategory">Show</h2>  
  •     <ul dojoType="dojox.mobile.RoundRectList">  
  •         <li dojoType="dojox.mobile.ListItem">  
  •         Setting item here  
  •         </li>  
  •     </ul>  
  • </div>  
  •  

     

     !注意,我们在每一个视图里放了一个示例列表。每个视图中最终内容的实现将在将来的教程中介绍。

     

    我们没有使用dojox.mobile基本的视图类View,而是选择了ScrollableView。 ScrollableView顶部有一个固定的标题栏,在底部有一个固定的控制条。ScrollableView的中间内容可以被滚动。我们还是用了ToolBarButton来实现一个刷新按钮。注意, mblDomButton CSS 类只是dojox.mobile提供的诸多按钮样式 之一。现在这个刷新按钮还没有实现任何功能——我们先简单的把它放在这里。最后,我们给这个按钮实例添加了名为tweetviewRefresh的CSS类。这个CSS类的内容是:

     

     

    [javascript] view plaincopy
     
  • <mce:style><!--  
  • /* vertically center the image */  
  • .tweetviewRefresh img   {  
  •     margin-top:6px;  
  • }  
  • --></mce:style><style mce_bogus="1">/* vertically center the image */  
  • .tweetviewRefresh img   {  
  •     margin-top:6px;  
  • }</style>  
  •  

     

    这个刷新按钮现在在标题栏中垂直居中。

     

    安置好这三个视图之后,我们可以开始使用dojox.mobile.TabBar来创建底部的菜单栏,它包含三个dojox.mobile.TabBarButton:

     

     

    [xhtml] view plaincopy
     
  • <!-- 底部的TabBar -->  
  • <ul dojoType="dojox.mobile.TabBar" iconBase="images/iconStrip.png"  mce_>  
  •     <!-- iconPos的四个参数为: top left width height -->  
  •     <li dojoType="dojox.mobile.TabBarButton" iconPos1="0,0,29,30" iconPos2="29,0,29,30" selected="true" moveTo="tweets">Tweets</li>  
  •     <li dojoType="dojox.mobile.TabBarButton" iconPos1="0,29,29,30" iconPos2="29,29,29,30" moveTo="mentions">Mentions</li>  
  •     <li dojoType="dojox.mobile.TabBarButton" iconPos1="0,58,29,30" iconPos2="29,58,29,30" moveTo="settings">Settings</li>  
  • </ul>  
  •  

     

    控制按钮的图片切片的大小为29×30,普通状态的图片在顶层,激活状态的图片在其之下。点击每个控制按钮将切换到其对应的视图。

     

    !dojox.mobile.TabBar和dojox.mobile.TabBarButton是Dojo1.6中的新控件。dojox.mobile.TabBar有两种类型:tabBar和segementControl。你可以在这里 看到他们的区别。同时请注意本例中的TabBar添加了样式 margin-top:-49px,这使得TabBar可以一直显示在当前页面上。

     

    现在我们需要的都准备好了,让我们回顾一下代码细节:

     

    • 每一个视图的ID属性对应着每一个TabBarButton的moveTo属性。
    • 如果我们不想为TabBarButton状态图片使用图片切片(sprite)的话,我们可以通过设置TabBarButton的icon1和icon2属性来设置所使用图片的路径。由于我们在例子中使用了图片切片(sprited image), 可以通过设置TabBar的iconBase属性来设置图片路径,每一个TabBarButton使用iconPos1和iconPos2属性来提供所使用的切片(sprite)的位置。
    • iconPos1和iconPos2的参数格式为:top, left, width, height。
    • ScrollableView将标题栏和控制栏分别固定在应用程序的顶端和底部。

    同时请注意,我们使用的三个widget并不是dojox.mobile内核自带的:TabBar, TabBarButton和ScrollableView。你可只需要添加下列require语句就可以为你的页面添加所需的资源。

     

     

    [javascript] view plaincopy
     
  • // 使用轻量的mobile parser  
  • dojo.require("dojox.mobile.parser");  
  • // 导入 dojox.mobile  
  • dojo.require("dojox.mobile");  
  •    
  • // 导入额外的 dojox.mobile widgets  
  • dojo.require("dojox.mobile.ScrollableView");  
  • dojo.require("dojox.mobile.TabBar"); // TabBarButton 在这里被导入  
  •    
  • // 如果客户端不是Webkit内核的话导入compat包。  
  • dojo.requireIf(!dojo.isWebKit,"dojox.mobile.compat");  
  •  

     

    !这两个额外的资源非常小并且不需要额外的样式表。所以我们的应用程序还是很“苗条”的。

     

    现在我们的应用程序的布局已经完成了!你可以看下TweetView大致长什么样!

     

    演示

     

    TweetView已经成形!

     

    创建TweetView的基本布局非常简单:添加一些ScrollingView widgets 和 TabBar。需要指出的是,TweetView应用程序的每一个部件都是dojox.mobile提供的:标题栏,工具栏,按钮...这些都已经为你准备好了。

     

    让我们期待本系列的下一篇教程!下一篇教程中我们将介绍如何创建Tweets和Mentions视图中的具体内容!


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3