JIL可以说是一个非常有前景的移动平台标准,其中的核心是一层OpenKODE的通用中间层,它通过OpenGL,OpenSL等通用API可以构建出一个统一的移动开发平台。借这个贴把我的学习过程记录下来, 也希望对其他有兴趣搞这方面开发的新人会有点帮助!

--------------------------------------------------

Overview

OpenKODE is an open, royalty-free standard to enable source portability for demanding mixed media applications such as advanced user interfaces, navigation software, media players and games. OpenKODE defines a collection of native APIs to provide comprehensive system, graphics and media functionality that can be made reliably available on diverse platforms such as Linux, Brew, Symbian, Windows Mobile, WIPI and Nucleus.

OpenKODE includes the new OpenKODE Core API that provides a thin, POSIX-like, multi-threaded abstraction into operating system resources such as IO devices, files and networking to minimize source fragmentation when porting applications between devices with different operating systems.

OpenKODE 1.0 also includes the OpenGL ES and OpenVG Khronos media APIs combined with the EGL API that provides abstracted access to native windowing systems and rendering surfaces to enable state-of-the-art mixed-mode acceleration for vector 2D and 3D graphics. Subsequent versions of OpenKODE will add the OpenSL ES and OpenMAX AL media APIs to provide accelerated video and audio that is fully integrated with graphics processing.

OpenKODE brings together:

  • OpenKODE Core, an API providing an abstraction of operating system functions and libraries such as the event system, file access and memory allocation. OpenKODE Core is part of this specification.
  • Khronos media APIs (OpenGL ES and OpenVG, with OpenSL ES and OpenMAX AL to be added soon);
  • EGL, which acts as a “hub” for the media APIs;

--------------------------------------------------

OpenKODE Core篇 (OS)

OpenKODE Core is the part of OpenKODE which specifies an API to provide source-level abstraction of common operating system services in an event-driven environment, such that, combined with the Khronos media APIs into a complete OpenKODE solution, it is possible to create source-portable media and graphics applications.


OpenKODE Core functions include the following major areas:

  • Application startup and exit

An application has a single entry point called kdMain(). OpenKODE Core provides an analog of the C standard function exit.

  • Attributes and extensions

These functions allow the application to query attributes of the implementation, such as the version number of OpenKODE Core supported, and to determine the presence of extensions.

  • Threads

OpenKODE Core provides a threading API for thread creation and synchronization. Although the API is mandatory, some implementations support only a single thread and thus give an error code on an attempt to create a new thread.

  • Event system

OpenKODE Core provides an event system which abstracts the event system of the platform's OS. Examples of events generated by OpenKODE Core are quit, pause and resume, window resize, input change, timer, and socket ready to read or write.
An OpenKODE application may be written as either loop-in-application, where it contains the top-level loop processing an event each iteration, or loop-in-framework, where the framework calls an event handler for each event.

  • Utility functions

There are utility functions including conversions from string to number and vice versa, random number generation, memory allocation, memory and string copying, comparison and scanning, and assertions and logging.

  • Math

The OpenKODE Core programming environment supports 32-bit floats, and analogs of many of the C standard math library functions.

  • Time and timers

There are functions which are analogs of C standard time functions, as well as OpenKODE-specific functions for more accurate timekeeping, and for timers which generate events.

  • File system

The platform’s file system is abstracted to a virtual file system, allowing an application which accesses only certain well-known locations (such as “the files that came with the application”) to be written portably. The file functions are analogs of familiar C and [POSIX] functions.

  • Networking

OpenKODE Core provides an API similar to BSD/[POSIX] sockets, but with different API semantics such that the event system is used to notify when a socket is ready to send to or receive from.

  • Input/output

The input/output API provides functions to access inputs (such as buttons) and outputs (such as vibrate) in an extensible way, while specifying a small range of inputs and outputs that are likely to be present, such as game keys.

  • Windowing

OpenKODE Core allows an implementation to support just one full-screen window, but allows support for multiple non-full-screen windows. Simple manipulation of such windows (for example resizing and maximizing) is supported.

--------------------------------------------------

EGL篇

EGL, an interface between rendering APIs such as OpenGL ES or OpenVG (referred to collectively as client APIs ) and an underlying native platform window system(such as Sym- bian, embedded Linux, Unix, and Windows....). EGL provides mechanisms for creating rendering surfaces onto which client APIs(such as OpenGLES) can draw, creating graphics contexts for client APIs , and synchronizing drawing by client APIs as well as native platform rendering APIs.

Most EGL calls include an EGLDisplay parameter. This represents the abstract display on which graphics are drawn. In most environments a display corresponds to a single physical screen.

One of the purposes of EGL is to provide a means to create client API rendering con- texts (henceforth simply referred to as contexts), and associate them with drawing surfaces. EGL defines several types of drawing surfaces collectively referred to as EGLSurfaces . These include windows, used for onscreen rendering; pbuffers, used for offscreen rendering; and pixmaps, used for offscreen rendering into buffers that may be accessed through native APIs. EGL windows and pixmaps are tied to native window system windows and pixmaps. EGLSurfaces are created with respect to an EGLConfig. The EGLConfig describes the depth of the color buffer components and the types, quantities and sizes of the ancillary buffers (i.e., the depth, multisample, and stencil buffers).

--------------------------------------------------

OpenGL ES篇

--------------------------------------------------

OpenSL ES篇

JIL Game SDK 入门相关推荐

  1. JIL Widget开发入门

    [原创] 张志坚 (重新编辑) 本文和大家重点学习一下JIL Widget开发入门的一些知识,基于window下开发JIL Widge只需要两个工具:一个是Java虚拟机,另一个是jilSDK开发工具 ...

  2. aws python库_适用于Alexa的新AWS Python SDK入门指南

    aws python库 by Ralu Bolovan 由Ralu Bolovan 适用于Alexa的新AWS Python SDK入门指南 (A Beginner's guide to the ne ...

  3. dapr微服务.net sdk入门

    Actors入门 先决条件 .Net Core SDK 3.0 Dapr CLI Dapr DotNet SDK 概述 本文档描述如何在客户端应用程序上创建Actor(MyActor)并调用其方法. ...

  4. 【转】Azure Messaging-ServiceBus Messaging消息队列技术系列2-编程SDK入门

    各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...

  5. Datahub Python SDK入门手册

    前言 DataHub是 MaxCompute 提供的流式数据处理(Streaming Data)服务,它提供流式数据的发布 (Publish)和订阅 (Subscribe)的功能,让您可以轻松构建基于 ...

  6. 大疆无人机DJI Mobile SDK入门(一)

    目录: 大疆无人机DJI Mobile SDK(Android)入门(一) 大道无疆,创新无限! 将您的想法变为现实! 未来,无所不能! 小Z码农有幸能接触到这么高逼格的玩具.就将这段爱恨往事作为笔记 ...

  7. python消费datahub_Datahub Python SDK入门手册

    前言 DataHub是 MaxCompute 提供的流式数据处理(Streaming Data)服务,它提供流式数据的发布 (Publish)和订阅 (Subscribe)的功能,让您可以轻松构建基于 ...

  8. android sdk入门(1)

    安装jdk 下载android sdk for windows,安装之 运行SDK Manager,下载一些库文件,并且创建Android 虚拟设备(AVD) 下载adt for eclpise,设置 ...

  9. SAP S/4HANA Cloud SDK 入门介绍

    这是 Jerry 2021 年的第 48 篇文章,也是汪子熙公众号总共第 325 篇原创文章. Jerry 之前的文章 SAP Fiori 应用索引大全 曾经介绍过一个网站,能够得到 SAP 所有 F ...

最新文章

  1. 2019 6月编程语言_今年六月您可以开始学习650项免费的在线编程和计算机科学课程...
  2. OpenCV的HOG+SVM训练程序注意事项
  3. 深拷贝与浅拷贝(mutableCopy与Copy)详解 iOS
  4. expect监控 雏形 scp用法
  5. Canada Cup 2016 C. Hidden Word 字符串构造
  6. python 方程组 整数解_用Python语言求解线性整数方程组
  7. TCP的定时器系列 — 零窗口探测定时器(有图有代码有真相!!!)
  8. 操作系统学习笔记-2.1.4进程通信
  9. 计算机二级旅游推广ppt,计算机二级PPT真题:制作旅游产品推广PPT
  10. 史上最全!用Pandas读取CSV,看这篇就够了
  11. 数字图像处理(作业一)——matlab工具箱初探
  12. linux搭建博客day2
  13. 【前缀和笔记】前缀和介绍和使用
  14. sqlite3 小记
  15. Linux命令——timeout
  16. cython混淆加密
  17. 学了一年php感觉什么都不会,php自学要多久_一个学了1年php后选择放弃
  18. mysql原理、索引、优化-【公司内部培训】
  19. 多激光雷达外参标定算法与源码解析(一):基于BLAM的建图模块
  20. 畅玩《七雄争霸》经典战国策略游戏

热门文章

  1. 实现斐波拉契的三种方法
  2. Justice(hdu6557)
  3. fedora 火狐 html5,Fedora22火狐如何安装Adobe Flash Player
  4. 什么是期权?如何从概念上理解看涨期权/看跌期权?
  5. 也来说一下和我小情人的相亲故事
  6. 如何通过TXT文件批量生成EAN14条码
  7. DELL Inspiron(灵越)14-5648拆机指南
  8. python软件测试书籍推荐_自学软件测试看什么书入门比较好呢?
  9. tio - IM集群方案设计
  10. 合并单元格如何快速填充序列