Windows Phone 8 Programming Considerations
OpenGL ES 2.0 Support
Marmalade supports the Open GL ES 2.0 Graphics API on Windows Phone 8 using a GL ES -> DirectX translation layer. It is not necessary to use the DirectX Graphics API directly. With Marmalade you can use GL ES directly (See s3eGL) or use IwGL (See IwGL) which is thin wrapper on top of s3eGL or you could use a higher level library like IwGx (See IwGx).
OpenGL ES 1.x is NOT supported.
Shader Support
Run-time shader compilation is not supported on Windows Phone 8. This is a restriction of the platform itself. Instead precompiled shader or program binaries must be loaded.
See s3eGL on Windows Phone 8 for more details.
Handling the Back button
Developers need to handle the Back button in their application explicitly by detecting if the s3eKeyBack event. See the S3E Keyboard API reference for more details. The Windows Phone 8 Certification Requirements detail how applications must handle the Back button. The requirements include:
- 5.2.4.1 - Back button: previous pages. Pressing the Back button must return the app to the previous page or return to any previous page within the back stack.
- 5.2.4.2 - Back button: first screen. Pressing the Back button from the first screen of an app must close the app.
These requirements also apply to applications written in GLES which do not use native UI controls. In this case the Back button shoud go back through the conceptual pages of the application.
Performance overhead when updating vertex data
It is recommended to avoid uploading vertex attribute arrays every frame and instead use vertex buffer objects (VBOs). Minimise the updating of vertex data where possible.
s3eSurface
Use of the s3eSurface API is generally not recommended for rendering and should only be used for debugging purposes. s3eSurface rendering will not work while OpenGL ES is initialised.
Orientation Support
Currently only fixed Portrait and fixed Landscape are supported by Marmalade via the DispFixRot icf setting. The screen device for Windows Phone 8 devices do not change dimensions when the orientation changed. This means that for GLES code the developer should check for the surface orientation using the s3eSurfaceGetInt(S3E_SURFACE_BLIT_DIRECTION) API and then apply any necessary rotation to the GLES device context view.
Memory Limits
App memory is capped to a value that is dependant on the type of phone, the type of application and certain Manifest file settings. The smallest cap is 150 MB, the highest cap is 380 MB. See App memory limits for Windows Phone 8 for more details.
Launching the Deployment Tool from an IDE
Developing in Visual Studio on Windows:
- Open the Active Configuration dialog/drop down. The location of this will depend on the Visual Studio version - For example, Click 'Build > Configuration Manager' in VS 2010.
- Select an ARM release build configuration (e.g. 'GCC (ARM) Release' or 'RVCT (ARM) Release').
It does not matter if you wish to deploy for these configurations or if the application has been built for them or not; this is purely to inform the IDE that you wish to launch the Deployment Tool. Any build type can subsequently be selected from within the tool itself.
- Close the Configuration dialog if necessary.
- Click 'Run'/'Start Debugging'/'Go' (or press F5) to launch the tool.
If you are building for ARM Release build, which is common, then launching the tool is simply a case of hitting F5 or the Run button from within the IDE.
Windows Phone 8 Programming Considerations的更多相关文章
- windows类书的学习心得(转载)
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- windows类书的学习心得
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...
- An Introduction to Lock-Free Programming
Lock-free programming is a challenge, not just because of the complexity of the task itself, but bec ...
- NTFS系统的ADS交换数据流
VC++ 基于NTFS的数据流创建与检测 What are Alternate Streams?(交换数据流) NTFS alternate streams , 或者叫streams,或者叫ADS(w ...
- 也来说说C/C++里的volatile关键字
去年年底的样子,何登成写了一篇关于C/C++ volatile关键字的深度剖析blog(C/C++ Volatile关键词深度剖析).全文深入分析了volatile关键字的三个特性.这里不想就已有内容 ...
- Socket介绍
一 socket协议 Socket协议的形象描述 socket的英文原义是“孔”或“插座”.在这里作为4BDS UNIX的进程通信机制,取后一种意思.socket非常类似于电话插座.以一个国家级电话网 ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- [Under the hood]---Matt Pietrek October 1996 MSJ
Matt Pietrek October 1996 MSJ Matt Pietrek is the author of Windows 95 System Programming Secrets (I ...
- 迷时师度,悟了自度(时间的边际效应),附VC参考书
12年前看过这篇文章,今天又看到了,还是有些感慨的.上课的时间虽然已经永远远去,用整块的时间去学习已经不可能,但道理还是要记着的,没准依然有用,自勉.------------------------- ...
随机推荐
- zend studio设置utf8
1. windows -> preference -> general -> workspace 2.项目右键 -> properities -> resource 3. ...
- s5_day9作业
# 1 编写 tail -f a.txt |grep 'error' |grep '404'命令,周一默写 # import time # def tail(filepath,encoding='ut ...
- Visual Studio 正则表达式替换
查找空行:^(?([^\r\n])\s)*\r?$\r?\n 查找多余的空行:^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n
- svn / git SourceTree
开发使用SourceTree 忽略文件这块老弄错,这次专门博客一下,使用CocoaPods 开发项目, 忽略步骤如下: 忽略文件内容如下 *.xcworkspace xcuserdata *.loc ...
- javascript Date对象 之 设置时间
之前对js的date对象总是感觉熟悉,而不愿细细深究其所以然,所以每当自己真正应用起来的时候,总会糊里糊涂的,今日花费2个小时的时间仔细钻研了一下,感觉 豁然开朗,故,以此记录,一来 供以后查阅,二来 ...
- winform + INotifyPropertyChanged + IDataErrorInfo + ErrorProvider实现自动验证功能
一个简单的Demo.百度下载链接:http://pan.baidu.com/s/1sj4oM2h 话不多说,上代码. 1.实体类定义: class Student : INotifyPropertyC ...
- 【笔记】Maven使用入门
参考<maven实战> 1.编写POM 2.编写主代码 3.编写测试代码 4.打包和运行 具体如下: 1.编写POM. <!-- XML头,指定了该xml文档的版本和编辑方式 --& ...
- 项目中使用better-scroll实现移动端滚动,报错:Cannot read property 'children' of undefined better-scroll
就是外面的盒子和要滚动的元素之间要有一层div, 插件挂载的元素是menuWrapper,可以滚动的元素是ul,在这两个元素之间加一个div元素即可解决问题.
- shell编程学习笔记之正则表达式初识
1.对单字符的查找: 1.1单字符: ‘X’ $ grep ‘q’ passwd //查找单个字符 1.2 范围字符 [] [^] 1.3 任意字符 . $ grep '[1-9]' passwd / ...
- JAVA基础补漏--抽象类
抽象类使用的四点注意事项: 1.抽象类不能创建对象. 2.抽象类可以没有抽象方法,但有抽象方法一定得是抽象类. 3.抽象类可以有构造方法,是供子象创建对象时,初始化父类成员使用的. 4.抽象类的子类, ...