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:

  1. 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.
  2. 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.
  3. Close the Configuration dialog if necessary.
  4. 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的更多相关文章

  1. windows类书的学习心得(转载)

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  2. windows类书的学习心得

    原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千 ...

  3. An Introduction to Lock-Free Programming

    Lock-free programming is a challenge, not just because of the complexity of the task itself, but bec ...

  4. NTFS系统的ADS交换数据流

    VC++ 基于NTFS的数据流创建与检测 What are Alternate Streams?(交换数据流) NTFS alternate streams , 或者叫streams,或者叫ADS(w ...

  5. 也来说说C/C++里的volatile关键字

    去年年底的样子,何登成写了一篇关于C/C++ volatile关键字的深度剖析blog(C/C++ Volatile关键词深度剖析).全文深入分析了volatile关键字的三个特性.这里不想就已有内容 ...

  6. Socket介绍

    一 socket协议 Socket协议的形象描述 socket的英文原义是“孔”或“插座”.在这里作为4BDS UNIX的进程通信机制,取后一种意思.socket非常类似于电话插座.以一个国家级电话网 ...

  7. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  8. [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 ...

  9. 迷时师度,悟了自度(时间的边际效应),附VC参考书

    12年前看过这篇文章,今天又看到了,还是有些感慨的.上课的时间虽然已经永远远去,用整块的时间去学习已经不可能,但道理还是要记着的,没准依然有用,自勉.------------------------- ...

随机推荐

  1. Linux vim 操作技巧

    ·Linux设计的重要原则是信息存储在基于文本的文件中 文本文件:无格式文件,作用类似于win的注册表(etc下的配置文件,.conf或者无扩展名)可扩展标记语言(XML),文本标记定义数据结构(et ...

  2. js颜色选择器 制作分析

    给html元素设置事件监听, 触发事件 弹出颜色选择器 颜色选择器绘制 获取上次选择的颜色(当前颜色) 绘制渐变色板(canvas) (方法: 横轴渐变ff0000, ffff00, 00ff00, ...

  3. 测试Windows live Writer

    private String GetRandomint(int codeCount) { Random random = new Random(); string min = "" ...

  4. PL/SQL编程—包

    1.PLSQL 中的包就相当于java中的package,主要好处有(1)防止命名污染,(2)功能统一,(3)允许重载,(4)可以隐藏核心代码,(5)最重要的就是断开依赖链. 2.对于一个程序需要大量 ...

  5. ThinkPHP框架之模型

    一.数据库配置 在父类配置ThinkPHP/Conf/convention.php中,找到数据库设置部分: 将这部分复制到我们模块的配置文件Home/Conf/config.php中,将需要的参数写上 ...

  6. Firebug入门指南(转)

    本文转自:http://www.ruanyifeng.com/blog/2008/06/firebug_tutorial.html 作者: 阮一峰 日期: 2008年6月 8日 据说,对于网页开发人员 ...

  7. Asp.Net中OnClientClick与OnClick的区别

    当我们当击这个按钮时,自动先执行的客户端,再执行服务器端的.如果客户端返回的是false,那么服务器端对应的方法永远不会执行.这样就达到检测,只有通过才去执行服务器端的方法.

  8. win vista系统的ReadyBoost性能测试

    如果想提高电脑的性能,大家通常会选择升级处理器.内存或是相关硬件,而新一代Windows Vista操作系统中增加的ReadyBoost功能,号称只需一个USB接口的闪存盘(俗称U盘),就能达到加快系 ...

  9. 小技巧|使用Vue.js的Mixins复用你的代码

    Vue中的混入 mixins 是一种提供分发 Vue 组件中可复用功能的非常灵活的方式.听说在3.0版本中可能会用Hooks的形式实现,但这并不妨碍它的强大. 这里主要来讨论 mixins 如何优化我 ...

  10. Spring boot + jdbc学习笔记

    pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www. ...