对比 KlayGE 和 MagiCube 对 OpenGLES 支持(草稿)
android:native_app_glue,EGL
openGL ES ,EGL 初始化:http://blog.sina.com.cn/s/blog_53761ba70100nklx.html
http://developer.android.com/reference/android/app/NativeActivity.html
magicube : CPVRShellVideoContext
CPVRShellVideoContext(irr::u32 width,irr::u32 height, bool stencilBufferEnable = false,ECOLOR_FORMAT colorFormat = ECF_A8R8G8B8, EGLDisplay display=0,EGLSurface surface=0,EGLContext drawContext=0);
klayge:App3DFramework::Create()
void App3DFramework::Create() { ContextCfg const & cfg = Context::Instance().Config(); Context::Instance().RenderFactoryInstance().RenderEngineInstance().CreateRenderWindow(name_, cfg.graphics_cfg); if (cfg.deferred_rendering) { Context::Instance().DeferredRenderingLayerInstance(MakeSharedPtr<DeferredRenderingLayer>()); } this->InitObjects(); this->OnResize(cfg.graphics_cfg.width, cfg.graphics_cfg.height); }
deferred shading
Multiple Render Targets (MRTs),G-buffer
Class:RenderFactory,Renderable,Renderlayout,RenderView