JIL Game SDK 入门

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篇

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值