Home
last modified time | relevance | path

Searched refs:egl (Results 1 – 25 of 333) sorted by relevance

12345678910>>...14

/external/deqp/framework/egl/wrapper/
DeglwImpl.inl4 …* Generated from Khronos EGL API description (egl.xml) revision 3338ed0db494d6a4db7f76627b38f0b189…
9 const eglw::Library* egl = eglw::getCurrentThreadLibrary(); local
10 if (!egl)
12 return egl->bindAPI(api);
17 const eglw::Library* egl = eglw::getCurrentThreadLibrary(); local
18 if (!egl)
20 return egl->bindTexImage(dpy, surface, buffer);
25 const eglw::Library* egl = eglw::getCurrentThreadLibrary(); local
26 if (!egl)
28 return egl->chooseConfig(dpy, attrib_list, configs, config_size, num_config);
[all …]
DeglwImplExt.inl4 …* Generated from Khronos EGL API description (egl.xml) revision 3338ed0db494d6a4db7f76627b38f0b189…
9 const eglw::Library* egl = eglw::getCurrentThreadLibrary(); local
10 if (!egl)
12 return egl->clientWaitSyncKHR(dpy, sync, flags, timeout);
17 const eglw::Library* egl = eglw::getCurrentThreadLibrary(); local
18 if (!egl)
20 return egl->createImageKHR(dpy, ctx, target, buffer, attrib_list);
25 const eglw::Library* egl = eglw::getCurrentThreadLibrary(); local
26 if (!egl)
28 return egl->createPlatformPixmapSurfaceEXT(dpy, config, native_pixmap, attrib_list);
[all …]
/external/deqp/framework/egl/
DegluConfigInfo.cpp87 void queryCoreConfigInfo (const Library& egl, EGLDisplay display, EGLConfig config, ConfigInfo* dst) in queryCoreConfigInfo() argument
89 egl.getConfigAttrib(display, config, EGL_BUFFER_SIZE, &dst->bufferSize); in queryCoreConfigInfo()
90 egl.getConfigAttrib(display, config, EGL_RED_SIZE, &dst->redSize); in queryCoreConfigInfo()
91 egl.getConfigAttrib(display, config, EGL_GREEN_SIZE, &dst->greenSize); in queryCoreConfigInfo()
92 egl.getConfigAttrib(display, config, EGL_BLUE_SIZE, &dst->blueSize); in queryCoreConfigInfo()
93 egl.getConfigAttrib(display, config, EGL_LUMINANCE_SIZE, &dst->luminanceSize); in queryCoreConfigInfo()
94 egl.getConfigAttrib(display, config, EGL_ALPHA_SIZE, &dst->alphaSize); in queryCoreConfigInfo()
95 egl.getConfigAttrib(display, config, EGL_ALPHA_MASK_SIZE, &dst->alphaMaskSize); in queryCoreConfigInfo()
96 egl.getConfigAttrib(display, config, EGL_BIND_TO_TEXTURE_RGB, (EGLint*)&dst->bindToTextureRGB); in queryCoreConfigInfo()
97 egl.getConfigAttrib(display, config, EGL_BIND_TO_TEXTURE_RGBA, (EGLint*)&dst->bindToTextureRGBA); in queryCoreConfigInfo()
[all …]
DegluUtil.cpp61 Version getVersion (const Library& egl, EGLDisplay display) in getVersion() argument
66 EGLU_CHECK_CALL(egl, initialize(display, &major, &minor)); in getVersion()
71 vector<string> getExtensions (const Library& egl, EGLDisplay display) in getExtensions() argument
73 const char* const extensionStr = egl.queryString(display, EGL_EXTENSIONS); in getExtensions()
75 EGLU_CHECK_MSG(egl, "Querying extensions failed"); in getExtensions()
80 bool hasExtension (const Library& egl, EGLDisplay display, const string& str) in hasExtension() argument
82 const vector<string> extensions = getExtensions(egl, display); in hasExtension()
86 vector<string> getClientExtensions (const Library& egl) in getClientExtensions() argument
88 const char* const extensionStr = egl.queryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); in getClientExtensions()
89 const EGLint eglError = egl.getError(); in getClientExtensions()
[all …]
DegluGLContextFactory.cpp99 GetProcFuncLoader (const Library& egl) in GetProcFuncLoader() argument
100 : m_egl(egl) in GetProcFuncLoader()
280 EGLSurface createPBuffer (const Library& egl, EGLDisplay display, EGLConfig eglConfig, const glu::R… in createPBuffer() argument
292 surface = egl.createPbufferSurface(display, eglConfig, &(attribList[0])); in createPBuffer()
293 EGLU_CHECK_MSG(egl, "eglCreatePbufferSurface()"); in createPBuffer()
300 const Library& egl = m_display->getLibrary(); in makeCurrent() local
302 EGLU_CHECK_CALL(egl, makeCurrent(m_eglDisplay, m_eglSurface, m_eglSurface, m_eglContext)); in makeCurrent()
326 const Library& egl = m_display->getLibrary(); in create() local
331 EGLU_CHECK_CALL(egl, initialize(m_eglDisplay, &major, &minor)); in create()
334 m_eglConfig = chooseConfig(egl, m_eglDisplay, config); in create()
[all …]
DegluUtil.hpp57 Version getVersion (const eglw::Library& egl, eglw::EGLDisplay display);
59 std::vector<std::string> getClientExtensions (const eglw::Library& egl);
60 std::vector<std::string> getDisplayExtensions (const eglw::Library& egl, eglw::EGLDisplay display…
61 bool hasExtension (const eglw::Library& egl, eglw::EGLDisplay display, const std::string& …
63 std::vector<eglw::EGLConfig> getConfigs (const eglw::Library& egl, eglw::EGLDisplay display);
64 std::vector<eglw::EGLConfig> chooseConfigs (const eglw::Library& egl, eglw::EGLDisplay display, …
65 std::vector<eglw::EGLConfig> chooseConfigs (const eglw::Library& egl, eglw::EGLDisplay display, …
66 std::vector<eglw::EGLConfig> chooseConfigs (const eglw::Library& egl, eglw::EGLDisplay display, …
67 eglw::EGLConfig chooseSingleConfig (const eglw::Library& egl, eglw::EGLDisplay display, const…
68 eglw::EGLConfig chooseSingleConfig (const eglw::Library& egl, eglw::EGLDisplay display, const…
[all …]
/external/swiftshader/src/OpenGL/libEGL/
Dmain.cpp40 namespace egl namespace
174 egl::attachProcess(); in DllMain()
177 egl::attachThread(); in DllMain()
180 egl::detachThread(); in DllMain()
183 egl::detachProcess(); in DllMain()
193 namespace egl namespace
235 void setCurrentContext(egl::Context *ctx) in setCurrentContext()
252 NO_SANITIZE_FUNCTION egl::Context *getCurrentContext() in getCurrentContext()
259 void setCurrentDrawSurface(egl::Surface *surface) in setCurrentDrawSurface()
276 egl::Surface *getCurrentDrawSurface() in getCurrentDrawSurface()
[all …]
DlibEGL.cpp36 namespace egl namespace
40 bool validateDisplay(egl::Display *display) in validateDisplay()
55 bool validateConfig(egl::Display *display, EGLConfig config) in validateConfig()
70 bool validateContext(egl::Display *display, egl::Context *context) in validateContext()
85 bool validateSurface(egl::Display *display, egl::Surface *surface) in validateSurface()
132 EGLint error = egl::getCurrentError(); in GetError()
136 egl::setCurrentError(EGL_SUCCESS); in GetError()
168 egl::Display *display = egl::Display::get(dpy); in Initialize()
195 egl::Display *display = egl::Display::get(dpy); in Terminate()
220 egl::Display *display = egl::Display::get(dpy); in QueryString()
[all …]
/external/deqp/modules/egl/
DteglConfigList.cpp36 namespace egl namespace
62 const Library& egl = m_eglTestCtx.getLibrary(); in iterate() local
65 vector<EGLConfig> configs = eglu::getConfigs(egl, display); in iterate()
81 egl.getConfigAttrib(display, configs[i], EGL_BUFFER_SIZE, &val); in iterate()
84 egl.getConfigAttrib(display, configs[i], EGL_RED_SIZE, &val); in iterate()
87 egl.getConfigAttrib(display, configs[i], EGL_GREEN_SIZE, &val); in iterate()
90 egl.getConfigAttrib(display, configs[i], EGL_BLUE_SIZE, &val); in iterate()
93 egl.getConfigAttrib(display, configs[i], EGL_LUMINANCE_SIZE, &val); in iterate()
96 egl.getConfigAttrib(display, configs[i], EGL_ALPHA_SIZE, &val); in iterate()
99 egl.getConfigAttrib(display, configs[i], EGL_ALPHA_MASK_SIZE, &val); in iterate()
[all …]
DteglNegativePartialUpdateTests.cpp45 namespace egl namespace
100 EGLConfig getEGLConfig (const Library& egl, EGLDisplay eglDisplay, NegativePartialUpdateTest::Surfa… in getEGLConfig() argument
115 return chooseSingleConfig(egl, eglDisplay, filters); in getEGLConfig()
118 EGLContext initAndMakeCurrentEGLContext (const Library& egl, EGLDisplay eglDisplay, EGLSurface eglS… in initAndMakeCurrentEGLContext() argument
122 egl.bindAPI(EGL_OPENGL_ES_API); in initAndMakeCurrentEGLContext()
123 eglContext = egl.createContext(eglDisplay, eglConfig, EGL_NO_CONTEXT, attribList); in initAndMakeCurrentEGLContext()
124 EGLU_CHECK_MSG(egl, "eglCreateContext"); in initAndMakeCurrentEGLContext()
126 egl.makeCurrent(eglDisplay, eglSurface, eglSurface, eglContext); in initAndMakeCurrentEGLContext()
127 EGLU_CHECK_MSG(egl, "eglMakeCurrent"); in initAndMakeCurrentEGLContext()
150 const Library& egl = m_eglTestCtx.getLibrary(); in init() local
[all …]
DteglMutableRenderBufferTests.cpp43 namespace egl namespace
61 deUint32 drawAndSwap (const Library& egl,
93 const Library& egl = m_eglTestCtx.getLibrary(); in init() local
98 if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_KHR_mutable_render_buffer")) in init()
127 m_eglConfig = eglu::chooseSingleConfig(egl, m_eglDisplay, attribs); in init()
131 const vector<EGLConfig> configs = eglu::chooseConfigs(egl, m_eglDisplay, attribsNoBit); in init()
136 EGLU_CHECK_CALL(egl, getConfigAttrib(m_eglDisplay, *config, EGL_SURFACE_TYPE, &surfaceType)); in init()
162 egl.bindAPI(EGL_OPENGL_ES_API); in init()
163 m_eglContext = egl.createContext(m_eglDisplay, m_eglConfig, EGL_NO_CONTEXT, contextAttribList); in init()
164 EGLU_CHECK_MSG(egl, "eglCreateContext"); in init()
[all …]
DteglCreateSurfaceTests.cpp48 namespace egl namespace
67 void checkEGLPlatformSupport (const Library& egl) in checkEGLPlatformSupport() argument
69 const vector<std::string> extensions = eglu::getClientExtensions(egl); in checkEGLPlatformSupport()
74 void checkEGL15Support (const Library& egl, EGLDisplay display) in checkEGL15Support() argument
79 std::vector<std::string> tokens = de::splitString(egl.queryString(display, EGL_VERSION), ' '); in checkEGL15Support()
89 const Library& egl = nativeDisplay.getLibrary(); in createWindowSurface() local
96 surface = egl.createWindowSurface(display, config, window.getLegacyNative(), DE_NULL); in createWindowSurface()
97 EGLU_CHECK_MSG(egl, "eglCreateWindowSurface() failed"); in createWindowSurface()
102 checkEGLPlatformSupport(egl); in createWindowSurface()
104 surface = egl.createPlatformWindowSurfaceEXT(display, config, nativeWindow, DE_NULL); in createWindowSurface()
[all …]
DteglQuerySurfaceTests.cpp49 namespace egl namespace
64 static void logSurfaceAttributes (tcu::TestLog& log, const Library& egl, EGLDisplay display, EGLSur… in logSurfaceAttributes() argument
67 …logSurfaceAttribute(log, attributes[ndx], eglu::querySurfaceInt(egl, display, surface, attributes[… in logSurfaceAttributes()
70 static void logCommonSurfaceAttributes (tcu::TestLog& log, const Library& egl, EGLDisplay display, … in logCommonSurfaceAttributes() argument
87 logSurfaceAttributes(log, egl, display, surface, attributes, DE_LENGTH_OF_ARRAY(attributes)); in logCommonSurfaceAttributes()
90 static void logPbufferSurfaceAttributes (tcu::TestLog& log, const Library& egl, EGLDisplay display,… in logPbufferSurfaceAttributes() argument
101 logSurfaceAttributes(log, egl, display, surface, attributes, DE_LENGTH_OF_ARRAY(attributes)); in logPbufferSurfaceAttributes()
120 const Library& egl = m_eglTestCtx.getLibrary(); in checkCommonAttributes() local
127 const EGLint id = eglu::querySurfaceInt(egl, display, surface, EGL_CONFIG_ID); in checkCommonAttributes()
138 const EGLint width = eglu::querySurfaceInt(egl, display, surface, EGL_WIDTH); in checkCommonAttributes()
[all …]
DteglWideColorTests.cpp67 namespace egl namespace
290 const Library& egl = m_eglTestCtx.getLibrary(); in checkPixelFloatSupport() local
292 if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_pixel_format_float")) in checkPixelFloatSupport()
298 const Library& egl = m_eglTestCtx.getLibrary(); in checkColorSpaceSupport() local
300 if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_KHR_gl_colorspace")) in checkColorSpaceSupport()
306 const Library& egl = m_eglTestCtx.getLibrary(); in checkDisplayP3Support() local
308 if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_gl_colorspace_display_p3")) in checkDisplayP3Support()
314 const Library& egl = m_eglTestCtx.getLibrary(); in checkDisplayP3PassthroughSupport() local
316 if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_gl_colorspace_display_p3_passthrough")) in checkDisplayP3PassthroughSupport()
322 const Library& egl = m_eglTestCtx.getLibrary(); in checkSCRGBSupport() local
[all …]
DteglSyncTests.cpp59 namespace egl namespace
163 const Library& egl = m_eglTestCtx.getLibrary(); in hasRequiredEGLVersion() local
165 eglu::Version version = eglu::getVersion(egl, m_eglDisplay); in hasRequiredEGLVersion()
235 const Library& egl = m_eglTestCtx.getLibrary(); in init() local
253 m_eglConfig = eglu::chooseSingleConfig(egl, m_eglDisplay, displayAttribList); in init()
262 EGLU_CHECK_CALL(egl, bindAPI(EGL_OPENGL_ES_API)); in init()
263 m_eglContext = egl.createContext(m_eglDisplay, m_eglConfig, EGL_NO_CONTEXT, contextAttribList); in init()
264 EGLU_CHECK_MSG(egl, "Failed to create GLES2 context"); in init()
270 EGLU_CHECK_CALL(egl, makeCurrent(m_eglDisplay, m_eglSurface, m_eglSurface, m_eglContext)); in init()
286 const Library& egl = m_eglTestCtx.getLibrary(); in deinit() local
[all …]
DteglRenderCase.cpp51 namespace egl namespace
60 static void postSurface (const Library& egl, EGLDisplay display, EGLSurface surface, EGLint typeBit) in postSurface() argument
63 EGLU_CHECK_CALL(egl, swapBuffers(display, surface)); in postSurface()
65 EGLU_CHECK_CALL(egl, waitClient()); in postSurface()
67 EGLU_CHECK_CALL(egl, waitClient()); in postSurface()
119 const Library& egl = m_eglTestCtx.getLibrary(); in executeForConfig() local
123 const EGLint configId = eglu::getConfigID(egl, display, config); in executeForConfig()
144 eglu::UniqueSurface surface (egl, display, eglSurface); in executeForConfig()
168 eglu::UniqueSurface surface (egl, display, eglSurface); in executeForConfig()
194 …eglu::UniqueSurface surface(egl, display, egl.createPbufferSurface(display, config, surfaceAttribs… in executeForConfig()
[all …]
DteglCreateContextTests.cpp36 namespace egl namespace
83 const Library& egl = m_eglTestCtx.getLibrary(); in executeForConfig() local
85 EGLint id = eglu::getConfigAttribInt(egl, display, config, EGL_CONFIG_ID); in executeForConfig()
86 EGLint apiBits = eglu::getConfigAttribInt(egl, display, config, EGL_RENDERABLE_TYPE); in executeForConfig()
94 EGLU_CHECK_MSG(egl, "init"); in executeForConfig()
96 EGLU_CHECK_CALL(egl, bindAPI(s_apis[apiNdx].api)); in executeForConfig()
98 EGLContext context = egl.createContext(display, config, EGL_NO_CONTEXT, s_apis[apiNdx].ctxAttrs); in executeForConfig()
99 EGLenum err = egl.getError(); in executeForConfig()
109 EGLU_CHECK_CALL(egl, destroyContext(display, context)); in executeForConfig()
125 const eglw::Library& egl = m_eglTestCtx.getLibrary(); in iterate() local
[all …]
DteglNativeColorMappingTests.cpp65 namespace egl namespace
70 EGLContext createGLES2Context (const Library& egl, EGLDisplay display, EGLConfig config) in createGLES2Context() argument
79 EGLU_CHECK_CALL(egl, bindAPI(EGL_OPENGL_ES_API)); in createGLES2Context()
81 context = egl.createContext(display, config, EGL_NO_CONTEXT, attribList); in createGLES2Context()
82 EGLU_CHECK_MSG(egl, "eglCreateContext() failed"); in createGLES2Context()
248 bool validate (TestLog& log, const Library& egl, EGLDisplay display, EGLConfig config, const tcu::T… in validate() argument
250 …const tcu::UVec4 eglBitDepth((deUint32)eglu::getConfigAttribInt(egl, display, config, EGL_RED_SIZE… in validate()
251 (deUint32)eglu::getConfigAttribInt(egl, display, config, EGL_GREEN_SIZE), in validate()
252 (deUint32)eglu::getConfigAttribInt(egl, display, config, EGL_BLUE_SIZE), in validate()
253 (deUint32)eglu::getConfigAttribInt(egl, display, config, EGL_ALPHA_SIZE)); in validate()
[all …]
DteglResizeTests.cpp59 namespace egl namespace
131 EGLConfig getEGLConfig (const Library& egl, const EGLDisplay eglDisplay, EGLenum surfaceType) in getEGLConfig() argument
138 return eglu::chooseSingleConfig(egl, eglDisplay, attribMap); in getEGLConfig()
145 const Library& egl = m_eglTestCtx.getLibrary(); in init() local
148 const EGLConfig eglConfig = getEGLConfig(egl, eglDisplay, surfaceType()); in init()
154 EGLContext eglContext = egl.createContext(eglDisplay, in init()
158 EGLU_CHECK_MSG(egl, "eglCreateContext()"); in init()
159 MovePtr<UniqueContext> context (new UniqueContext(egl, eglDisplay, eglContext)); in init()
160 const EGLint configId = eglu::getConfigAttribInt(egl, in init()
180 MovePtr<UniqueSurface> surface (new UniqueSurface(egl, eglDisplay, eglSurface)); in init()
[all …]
DteglGetFrameTimestampsTests.cpp87 namespace egl namespace
276 EGLContext createGLES2Context (const Library& egl, EGLDisplay display, EGLConfig config) in createGLES2Context() argument
285 EGLU_CHECK_CALL(egl, bindAPI(EGL_OPENGL_ES_API)); in createGLES2Context()
287 context = egl.createContext(display, config, EGL_NO_CONTEXT, attribList); in createGLES2Context()
288 EGLU_CHECK_MSG(egl, "eglCreateContext() failed"); in createGLES2Context()
302 void initializeExtension (const Library& egl);
333 void GetFrameTimestampTest::initializeExtension (const Library& egl) in initializeExtension() argument
335 …m_eglGetNextFrameIdANDROID = reinterpret_cast<eglGetNextFrameIdANDROIDFunc>(egl.getProcAddress("eg… in initializeExtension()
336 EGLU_CHECK_MSG(egl, "getProcAddress of eglGetNextFrameIdANDROID failed."); in initializeExtension()
337 …m_eglGetCompositorTimingANDROID = reinterpret_cast<eglGetCompositorTimingANDROIDFunc>(egl.getProcA… in initializeExtension()
[all …]
DteglSwapBuffersWithDamageTests.cpp61 namespace egl namespace
129 EGLConfig getEGLConfig (const Library& egl, EGLDisplay eglDisplay, bool preserveBuffer);
275 virtual EGLConfig getConfig (const Library& egl, EGLDisplay eglDisplay);
276 virtual void checkExtension (const Library& egl, EGLDisplay eglDisplay);
312 EGLConfig SwapBuffersWithDamageTest::getConfig (const Library& egl, EGLDisplay eglDisplay) in getConfig() argument
314 return getEGLConfig(egl, eglDisplay, false); in getConfig()
317 void SwapBuffersWithDamageTest::checkExtension (const Library& egl, EGLDisplay eglDisplay) in checkExtension() argument
319 if (!eglu::hasExtension(egl, eglDisplay, "EGL_KHR_swap_buffers_with_damage")) in checkExtension()
325 const Library& egl = m_eglTestCtx.getLibrary(); in init() local
328 m_eglConfig = getConfig(egl, m_eglDisplay); in init()
[all …]
/external/webrtc/webrtc/modules/video_render/android/java/src/org/webrtc/videoengine/
DViEAndroidGLES20.java15 import javax.microedition.khronos.egl.EGL10;
16 import javax.microedition.khronos.egl.EGLConfig;
17 import javax.microedition.khronos.egl.EGLContext;
18 import javax.microedition.khronos.egl.EGLDisplay;
88 public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) { in createContext() argument
90 checkEglError("Before eglCreateContext", egl); in createContext()
92 EGLContext context = egl.eglCreateContext(display, eglConfig, in createContext()
94 checkEglError("After eglCreateContext", egl); in createContext()
98 public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) { in destroyContext() argument
99 egl.eglDestroyContext(display, context); in destroyContext()
[all …]
/external/webrtc/talk/app/webrtc/java/android/org/webrtc/
DEglBase10.java36 import javax.microedition.khronos.egl.EGL10;
37 import javax.microedition.khronos.egl.EGLConfig;
38 import javax.microedition.khronos.egl.EGLContext;
39 import javax.microedition.khronos.egl.EGLDisplay;
40 import javax.microedition.khronos.egl.EGLSurface;
50 private final EGL10 egl; field in EglBase10
67 this.egl = (EGL10) EGLContext.getEGL(); in EglBase10()
157 eglSurface = egl.eglCreateWindowSurface(eglDisplay, eglConfig, nativeWindow, surfaceAttribs); in createSurfaceInternal()
176 eglSurface = egl.eglCreatePbufferSurface(eglDisplay, eglConfig, surfaceAttribs); in createPbufferSurface()
195 egl.eglQuerySurface(eglDisplay, eglSurface, EGL10.EGL_WIDTH, widthArray); in surfaceWidth()
[all …]
/external/swiftshader/src/OpenGL/libGLESv2/
DRenderbuffer.h49 virtual egl::Image *getRenderTarget() = 0;
50 virtual egl::Image *createSharedImage() = 0;
80 egl::Image *getRenderTarget() override;
81 egl::Image *createSharedImage() override;
107 egl::Image *getRenderTarget() override;
108 egl::Image *createSharedImage() override;
130 egl::Image *getRenderTarget() override;
131 egl::Image *createSharedImage() override;
158 egl::Image *getRenderTarget() override;
159 egl::Image *createSharedImage() override;
[all …]
/external/swiftshader/src/OpenGL/libGLES_CM/
DRenderbuffer.h45 virtual egl::Image *getRenderTarget() = 0;
46 virtual egl::Image *createSharedImage() = 0;
75 egl::Image *getRenderTarget() override;
76 egl::Image *createSharedImage() override;
102 egl::Image *getRenderTarget() override = 0;
103 egl::Image *createSharedImage() override = 0;
135 egl::Image *getRenderTarget();
136 virtual egl::Image *createSharedImage();
161 explicit Colorbuffer(egl::Image *renderTarget);
166 egl::Image *getRenderTarget() override;
[all …]

12345678910>>...14