Render Control接口
| 指令流对外Render Control接口原型 | goldfish-opengl调用此接口的Egl函数原型 | 
|---|---|
| uint32_t CreateVmiRenderControlEncoder(uint32_t stream); | goldfish与指令流引擎建立连接时,调用此函数用于绑定两者的rc接口。 | 
| void DeleteVmiRenderControlEncoder(uint32_t handle); | goldfish与指令流引擎断开连接时,调用此函数用于将两者的rc接口解绑。 | 
| GLint GetRendererVersion(uint32_t handle); | EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) | 
| EGLint GetEGLVersion(uint32_t handle, EGLint *major, EGLint *minor); | EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) | 
| EGLint QueryEGLString(uint32_t handle, EGLenum name, void *buffer, EGLint bufferSize); | const char* eglQueryString(EGLDisplay dpy, EGLint name) | 
| EGLint GetGLString(uint32_t handle, EGLenum name, void *buffer, EGLint bufferSize); | EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) | 
| EGLint GetNumConfigs(uint32_t handle, uint32_t *numAttribs); | EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) | 
| EGLint GetConfigs(uint32_t handle, uint32_t bufSize, GLuint *buffer); | EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor) | 
| EGLint ChooseConfig(uint32_t handle, EGLint *attribs, uint32_t attribSize, uint32_t *configs, uint32_t configSize); | EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config) | 
| EGLint GetFBParam(uint32_t handle, EGLint param); | static int gralloc_device_open(const hw_module_t* module, const char* name, hw_device_t** device) | 
| uint32_t CreateContext(uint32_t handle, uint32_t config, uint32_t share, uint32_t glVersion, const EGLint *attribList); | EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) | 
| void DestroyContext(uint32_t handle, uint32_t context); | EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx) | 
| uint32_t CreateWindowSurface(uint32_t handle, uint32_t config, uint32_t width, uint32_t height, void *window, int32_t type); | EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list) | 
| EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) | |
| uint32_t CreateColorBuffer(uint32_t handle, uint32_t width, uint32_t height, GLenum internalFormat, GLenum internalType, int32_t pixelFormat); | EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) | 
| void DestroyWindowSurface(uint32_t handle, uint32_t windowSurface); | EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface eglSurface) | 
| void OpenColorBuffer(uint32_t handle, uint32_t colorBuffer); | static int gralloc_register_buffer(gralloc_module_t const* module, buffer_handle_t handle) | 
| EGLint MakeCurrent(uint32_t handle, uint32_t context, uint32_t drawSurf, uint32_t readSurf); | EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx) | 
| void FBSetSwapInterval(uint32_t handle, EGLint interval); | EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval) | 
| static int fb_setSwapInterval(struct framebuffer_device_t* dev, int interval) | |
| EGLint ColorBufferCacheFlush(uint32_t handle, uint32_t colorBuffer, EGLint postCount, int forRead); | static int gralloc_lock(gralloc_module_t const* module, buffer_handle_t handle, int usage, int l, int t, int w, int h, void** vaddr) | 
| uint32_t CreateClientImage(uint32_t handle, uint32_t context, EGLenum target, GLuint buffer); | EGLImageKHR eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list) | 
| int DestroyClientImage(uint32_t handle, uint32_t image); | EGLBoolean eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR img) | 
| void SelectChecksumHelper(uint32_t handle, uint32_t newProtocol, uint32_t reserved); | void SelectChecksumHelper(uint32_t newProtocol, uint32_t reserved) | 
| void CreateSyncKHR(uint32_t handle, EGLenum type, EGLint *attribs, uint32_t numAttribs, int destroyWhenSignaled, uint64_t *glsyncOut, uint64_t *syncThreadOut); | EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list) | 
| int DestroySyncKHR(uint32_t handle, uint64_t sync); | EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR eglsync) | 
| void WaitSyncKHR(uint32_t handle, uint64_t sync, EGLint flags); | EGLint eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR eglsync, EGLint flags) | 
| EGLint ClientWaitSyncKHR(uint32_t handle, uint64_t sync, EGLint flags, uint64_t timeout); | EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR eglsync, EGLint flags, EGLTimeKHR timeout) | 
| void SetGLESMaxVersion(uint32_t handle, GLESMaxVersion ver); | goldfish-opengl与指令流引擎建立连接时,用于设定GLES版本号。 | 
| GLESMaxVersion GetGLESMaxVersion(uint32_t handle); | EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list) | 
| void SetSyncImpl(uint32_t handle, SyncImpl syncImpl); | goldfish-opengl与指令流引擎建立连接时,设定Sync的版本。 | 
| bool HasNativeSync(uint32_t handle); | EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface eglSurface) | 
| EGLBoolean eglSwapBuffersWithDamageKHR(EGLDisplay dpy, EGLSurface eglSurface, EGLint *rects, EGLint n_rects) | |
| EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list) | |
| EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR eglsync) | |
| EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR eglsync, EGLint flags, EGLTimeKHR timeout) | |
| bool HasNativeSyncV3(uint32_t handle); | EGLint eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR eglsync, EGLint flags) | 
| 指令流对外Render Control接口原型 | goldfish-opengl调用此接口的Egl函数原型 | 
|---|---|
| void CloseColorBuffer(uint32_t handle, uint32_t colorBuffer, uint32_t order); | static int gralloc_unregister_buffer(gralloc_module_t const* module, buffer_handle_t handle) | 
| void SetWindowColorBuffer(uint32_t handle, uint32_t windowSurface, uint32_t colorBuffer, uint32_t order); | EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list) | 
| EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list) | |
| EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface eglSurface) | |
| EGLBoolean eglSwapBuffersWithDamageKHR(EGLDisplay dpy, EGLSurface eglSurface, EGLint *rects, EGLint n_rects) | |
| int FlushWindowColorBuffer(uint32_t handle, uint32_t windowSurface, uint32_t colorBuffer, uint32_t order, EGLint *rects, EGLint rectsNum); | EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface eglSurface) | 
| EGLBoolean eglSwapBuffersWithDamageKHR(EGLDisplay dpy, EGLSurface eglSurface, EGLint *rects, EGLint n_rects) | |
| void FBPost(uint32_t handle, uint32_t colorBuffer, uint32_t order); | static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer) | 
| void BindTexture(uint32_t handle, uint32_t colorBuffer, uint32_t order, uint32_t isPost); | EGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface eglSurface, EGLint buffer) | 
| void glEGLImageTargetTexture2DOES(void * self, GLenum target, GLeglImageOES img) | |
| void BindRenderbuffer(uint32_t handle, uint32_t colorBuffer, uint32_t order); | void glEGLImageTargetRenderbufferStorageOES(void *self, GLenum target, GLeglImageOES img) | 
| void ReadColorBuffer(uint32_t handle, uint32_t colorBuffer, uint32_t order, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void *pixels); | static int gralloc_lock(gralloc_module_t const* module, buffer_handle_t handle, int usage, int l, int t, int w, int h, void** vaddr) | 
| int OpenColorBuffer2(uint32_t handle, uint32_t colorBuffer, uint32_t order); | static int gralloc_register_buffer(gralloc_module_t const* module, buffer_handle_t handle) | 
| int UpdateColorBuffer(uint32_t handle, uint32_t colorBuffer, uint32_t order, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void *pixels); | static int gralloc_unlock(gralloc_module_t const* module, buffer_handle_t handle) | 
| void FlushWindowColorBufferAsync(uint32_t handle, uint32_t windowSurface, uint32_t colorbuffer, uint32_t order, EGLint *rects, EGLint rectsNum); | EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface eglSurface) | 
| EGLBoolean eglSwapBuffersWithDamageKHR(EGLDisplay dpy, EGLSurface eglSurface, EGLint *rects, EGLint n_rects) |