102f4aeb0Sopenharmony_ciName 202f4aeb0Sopenharmony_ci 302f4aeb0Sopenharmony_ci TIZEN_image_native_surface 402f4aeb0Sopenharmony_ci 502f4aeb0Sopenharmony_ciName Strings 602f4aeb0Sopenharmony_ci 702f4aeb0Sopenharmony_ci EGL_TIZEN_image_native_surface 802f4aeb0Sopenharmony_ci 902f4aeb0Sopenharmony_ciContributors 1002f4aeb0Sopenharmony_ci 1102f4aeb0Sopenharmony_ci Dongyeon Kim 1202f4aeb0Sopenharmony_ci Zeeshan Anwar 1302f4aeb0Sopenharmony_ci Minsu Han 1402f4aeb0Sopenharmony_ci Inpyo Kang 1502f4aeb0Sopenharmony_ci 1602f4aeb0Sopenharmony_ciContact 1702f4aeb0Sopenharmony_ci 1802f4aeb0Sopenharmony_ci Dongyeon Kim, Samsung Electronics (dy5.kim 'at' samsung.com) 1902f4aeb0Sopenharmony_ci Zeeshan Anwar, Samsung Electronics (z.anwar 'at' samsung.com) 2002f4aeb0Sopenharmony_ci 2102f4aeb0Sopenharmony_ciStatus 2202f4aeb0Sopenharmony_ci 2302f4aeb0Sopenharmony_ci Complete 2402f4aeb0Sopenharmony_ci 2502f4aeb0Sopenharmony_ciVersion 2602f4aeb0Sopenharmony_ci 2702f4aeb0Sopenharmony_ci Version 3, August 13, 2014 2802f4aeb0Sopenharmony_ci 2902f4aeb0Sopenharmony_ciNumber 3002f4aeb0Sopenharmony_ci 3102f4aeb0Sopenharmony_ci EGL Extension #77 3202f4aeb0Sopenharmony_ci 3302f4aeb0Sopenharmony_ciDependencies 3402f4aeb0Sopenharmony_ci 3502f4aeb0Sopenharmony_ci EGL 1.2 is required. 3602f4aeb0Sopenharmony_ci 3702f4aeb0Sopenharmony_ci EGL_KHR_image_base is required. 3802f4aeb0Sopenharmony_ci 3902f4aeb0Sopenharmony_ci This extension is written against the wording of the EGL 1.2 4002f4aeb0Sopenharmony_ci Specification. 4102f4aeb0Sopenharmony_ci 4202f4aeb0Sopenharmony_ciOverview 4302f4aeb0Sopenharmony_ci 4402f4aeb0Sopenharmony_ci Tizen Buffer Manager (TBM) is a user space, generic memory 4502f4aeb0Sopenharmony_ci management framework to create and share memory buffers between 4602f4aeb0Sopenharmony_ci different system components. This extension enables using a Tizen 4702f4aeb0Sopenharmony_ci Buffer Manager (TBM) surface object (struct tbm_surface_h) as an 4802f4aeb0Sopenharmony_ci EGLImage source. 4902f4aeb0Sopenharmony_ci 5002f4aeb0Sopenharmony_ciNew Types 5102f4aeb0Sopenharmony_ci 5202f4aeb0Sopenharmony_ci None. 5302f4aeb0Sopenharmony_ci 5402f4aeb0Sopenharmony_ciNew Procedures and Functions 5502f4aeb0Sopenharmony_ci 5602f4aeb0Sopenharmony_ci None. 5702f4aeb0Sopenharmony_ci 5802f4aeb0Sopenharmony_ciNew Tokens 5902f4aeb0Sopenharmony_ci 6002f4aeb0Sopenharmony_ci Accepted by the <target> parameter of eglCreateImageKHR: 6102f4aeb0Sopenharmony_ci 6202f4aeb0Sopenharmony_ci EGL_NATIVE_SURFACE_TIZEN 0x32A1 6302f4aeb0Sopenharmony_ci 6402f4aeb0Sopenharmony_ciChanges to Chapter 3 of the EGL 1.2 Specification (EGL Functions and Errors) 6502f4aeb0Sopenharmony_ci 6602f4aeb0Sopenharmony_ci Add to section 2.5.1 "EGLImage Specification" (as defined by the 6702f4aeb0Sopenharmony_ci EGL_KHR_image_base specification), in the description of 6802f4aeb0Sopenharmony_ci eglCreateImageKHR: 6902f4aeb0Sopenharmony_ci 7002f4aeb0Sopenharmony_ci "Values accepted for <target> are listed in Table aaa, below. 7102f4aeb0Sopenharmony_ci 7202f4aeb0Sopenharmony_ci +---------------------------+------------------------------------+ 7302f4aeb0Sopenharmony_ci | <target> | Notes | 7402f4aeb0Sopenharmony_ci +---------------------------+------------------------------------+ 7502f4aeb0Sopenharmony_ci | EGL_NATIVE_SURFACE_TIZEN | Used for Tizen tbm_surface_h objects | 7602f4aeb0Sopenharmony_ci +---------------------------+------------------------------------+ 7702f4aeb0Sopenharmony_ci Table aaa. Legal values for eglCreateImageKHR <target> parameter 7802f4aeb0Sopenharmony_ci 7902f4aeb0Sopenharmony_ci ... 8002f4aeb0Sopenharmony_ci 8102f4aeb0Sopenharmony_ci If <target> is EGL_NATIVE_SURFACE_TIZEN, <dpy> must be a valid 8202f4aeb0Sopenharmony_ci display, <ctx> must be EGL_NO_CONTEXT, <buffer> must be a pointer 8302f4aeb0Sopenharmony_ci to a valid tbm_surface_h object (cast into the type EGLClientBuffer), 8402f4aeb0Sopenharmony_ci and attributes other than EGL_IMAGE_PRESERVED_KHR are ignored." 8502f4aeb0Sopenharmony_ci 8602f4aeb0Sopenharmony_ci Add to the list of error conditions for eglCreateImageKHR: 8702f4aeb0Sopenharmony_ci 8802f4aeb0Sopenharmony_ci "* If <target> is EGL_NATIVE_SURFACE_TIZEN and <buffer> is not 8902f4aeb0Sopenharmony_ci a pointer to a valid tbm_surface_h, the error EGL_BAD_PARAMETER 9002f4aeb0Sopenharmony_ci is generated. 9102f4aeb0Sopenharmony_ci 9202f4aeb0Sopenharmony_ci * If <target> is EGL_NATIVE_SURFACE_TIZEN and <ctx> is not 9302f4aeb0Sopenharmony_ci EGL_NO_CONTEXT, the error EGL_BAD_CONTEXT is generated. 9402f4aeb0Sopenharmony_ci 9502f4aeb0Sopenharmony_ci * If <target> is EGL_NATIVE_SURFACE_TIZEN and <buffer> was 9602f4aeb0Sopenharmony_ci created with properties (format, usage, dimensions, etc.) not 9702f4aeb0Sopenharmony_ci supported by the EGL implementation, the error 9802f4aeb0Sopenharmony_ci EGL_BAD_PARAMETER is generated." 9902f4aeb0Sopenharmony_ci 10002f4aeb0Sopenharmony_ciIssues 10102f4aeb0Sopenharmony_ci 10202f4aeb0Sopenharmony_ci 1. Should this extension define what combinations of tbm_surface_h 10302f4aeb0Sopenharmony_ci properties implementations are required to support? 10402f4aeb0Sopenharmony_ci 10502f4aeb0Sopenharmony_ci RESOLVED: No. 10602f4aeb0Sopenharmony_ci 10702f4aeb0Sopenharmony_ci The requirements have evolved over time and will continue to change 10802f4aeb0Sopenharmony_ci with future Tizen releases. The minimum requirements for a given 10902f4aeb0Sopenharmony_ci Tizen version should be documented by that version. 11002f4aeb0Sopenharmony_ci 11102f4aeb0Sopenharmony_ci 11202f4aeb0Sopenharmony_ciRevision History 11302f4aeb0Sopenharmony_ci#3 (Zeeshan Anwar, August 13, 2014) 11402f4aeb0Sopenharmony_ci - Changed tbm_surface to tbm_surface_h 11502f4aeb0Sopenharmony_ci 11602f4aeb0Sopenharmony_ci#2 (Zeeshan Anwar, July 23, 2014) 11702f4aeb0Sopenharmony_ci - Changed extension name and target name 11802f4aeb0Sopenharmony_ci - Assigned value to EGL_NATIVE_SURFACE_TIZEN 11902f4aeb0Sopenharmony_ci 12002f4aeb0Sopenharmony_ci#1 (Zeeshan Anwar, July 18, 2014) 12102f4aeb0Sopenharmony_ci - Initial draft. 122