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年前看过这篇文章,今天又看到了,还是有些感慨的.上课的时间虽然已经永远远去,用整块的时间去学习已经不可能,但道理还是要记着的,没准依然有用,自勉.------------------------- ...
随机推荐
- Python(变量、数据类型)
常量:python中没有常量,只能通过名字特征来提示例如:全部大写,如 : OLDBOY_AGE=57 一.变量 变量声明变量#!/usr/bin/env python age=18gender1=' ...
- 【转】Linux 下取进程占用 cpu/内存 最高的前10个进程
# Linux 下 取进程占用 cpu 最高的前10个进程ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 取进程占用内存 ...
- mybatis 复习笔记02
1. 一对一查询: 1). 实体类: 2). 定义resultMap <!-- 订单查询关联用户的resultMap 将整个查询的结果映射到cn.itcast.mybatis.po.Orders ...
- CF335B
/*CF335B 这个题目的n达到50000,但是串只是有小写字母组成,所以如果字符串的长度大于2600,那么 肯定存在,所开始输入就判断如果长度大于2600,那么直接找当个字母输出100个 否则执行 ...
- 基于SSM的单点登陆04
jdbc.properties JDBC_DRIVER=org.mariadb.jdbc.Driver JDBC_URL=jdbc:mariadb://127.0.0.1:3306/market JD ...
- java没有指针
先说结论:java没有指针,它使用对象引用来替代指针 备注:c/c++的引用和java的引用完全不是一个东西 c/c++的引用是同一块内存的不同名字 java的引用指向一个对象,引用本身也占用了内存 ...
- Linux系统下配置squid代理服务器的过程详解
简单记录一下Squid透明代理服务器的配置 环境:VirtualBox + CentOS 6.0 + squid-3.1.4-1.el6.i686 0.检查squid是否默认安装,没有安装的先安装 [ ...
- sqoop数据导入到Hdfs 或者hive
用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql http://www.cnblogs.com/xuyou551/p/7999773.html 用sqoop将mysql ...
- php变量简单介绍
1.isset() 判断变量是否存在 ==================================================================== 2.unset()清除变 ...
- python递归列出目录及其子目录下所有文件
python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...