{"id":113237,"date":"2025-02-27T11:36:30","date_gmt":"2025-02-27T11:36:30","guid":{"rendered":"https:\/\/peraltafinancing.com\/animation\/getting-started-with-opengl-es-for-android\/"},"modified":"2025-02-27T11:36:30","modified_gmt":"2025-02-27T11:36:30","slug":"getting-started-with-opengl-es-for-android","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=113237","title":{"rendered":"Getting Started with OpenGL ES for Android"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"post-body-7502325807771165015\" itemprop=\"description articleBody\">\n<p>All Android devices have graphics processing unit (GPU), which used for handling the graphics processing. OpenGL is one of the API used in Android which support all devices, other is Vulkan which support only Android 7.0 and above. In this post we will getting stated with OpenGL ES for Android. This is simple Android OpenGL ES tutorial for beginners.<\/p>\n<p><span face=\"arial, sans-serif\" style=\"background-color: white; color: #202124; font-size: 36px;\">Prerequisite<\/span><\/p>\n<p><span face=\"arial, sans-serif\" style=\"background-color: white; color: #202124;\">Before we get started with OpenGL ES Tutorial for Android, we should know about the prerequisite like pre-learning, software, tools, plugins required and other information and definition about graphics APIs.<\/span><\/p>\n<p><b>What is OpenGL ES?<\/b><\/p>\n<p>As defined in our many posts, OpenGL is acronym of Open Graphics Library which is cross platform which means, platform-independent graphics API. OpenGL ES means OpenGL for Embedded Systems, API for computer graphics in embedded systems like mobile phones.<\/p>\n<p>As we proceed further in this\u00a0<span style=\"background-color: white; color: #202124;\">OpenGL ES Tutorial for Android, we assume that reader are aware of basics of Java, xml, Opengl and Android ecosystem. If you have some idea about Android you must have Android Studio installed which have Android SDK, AVD and all other tools required for Android App development.<\/span><\/p>\n<p><span style=\"background-color: white; color: #202124;\"><b>Project Setup<\/b><\/span><\/p>\n<p><span style=\"background-color: white;\"><span style=\"color: #202124;\">Create a new project in android studio, name it OpenGLESTutorial choose basic template. Android\u00a0 studio will create the all required code including\u00a0the java files and xml files.\u00a0<\/span><\/span><\/p>\n<p><span style=\"background-color: white;\"><span style=\"color: #202124;\">1. OpenGL ES Check<\/span><\/span><\/p>\n<p><span style=\"color: #202124;\"><span style=\"background-color: white;\">As we are working with OpenGL ES we need to <a href=\"https:\/\/www.openglprojects.in\/2015\/07\/how-to-check-if-android-device-supports-opengl-es-2.0.html\">check if android\u00a0device the support OpenGL ES 2.0<\/a> or not.\u00a0<\/span><\/span><\/p>\n<p><code class=\"java keyword\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #006699; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; font-weight: bold; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">final<\/code> <code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #006699; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; font-weight: bold; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">final<\/code> <code class=\"java keyword\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #006699; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; font-weight: bold; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">boolean<\/code> <code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">supportsEs2 = configurationInfo.reqGlEsVersion &gt;= <\/code><code class=\"java value\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #009900; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">0x20000<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">;<\/code><\/p>\n<p>\u00a0<\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #006699; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; font-weight: bold; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">if<\/code> <code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">(supportsEs2)<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">{<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">mGLSurfaceView.setEGLContextClientVersion(<\/code><code class=\"java value\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #009900; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">2<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">);<\/code><\/p>\n<p>\u00a0<\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">mGLSurfaceView.setRenderer(<\/code><code class=\"java keyword\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #006699; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; font-weight: bold; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">new<\/code> <code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">LessonOneRenderer());<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">}<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #006699; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; font-weight: bold; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">else<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">{<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #006699; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; font-weight: bold; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">return<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">;<\/code><\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">}<\/code><\/p>\n<p>\u00a0<\/p>\n<p><code class=\"java spaces\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\">setContentView(mGLSurfaceView);<\/code><\/p>\n<p><span style=\"background-color: transparent;\">Earlier Android emulator does not support OpenGL ES 2.0, to test real device was required, but now now Android emulator does support\u00a0<\/span>OpenGL ES 2.0. Hence we can test our tutorial on\u00a0<span style=\"background-color: transparent;\">the\u00a0<\/span>Android emulator as well as real Android phones.<span style=\"background-color: transparent;\">\u00a0\u00a0<\/span><\/p>\n<p><span style=\"background-color: transparent;\">Moreover, to stop Android user who don&#8217;t have phone\/device supporting OpenGL ES Version,\u00a0<\/span><uses-feature> tag need to be added in the project <uses-feature> tag. Add the following code in AndroidManifest.xml file.<\/uses-feature><\/uses-feature><\/p>\n<div class=\"line number28 index27 alt1\" style=\"background: none white; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em 0px 0em; position: static; vertical-align: baseline; width: auto;\">\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">uses-feature <span style=\"color: #660e7a; font-weight: bold;\">android<\/span><span style=\"color: blue; font-weight: bold;\">:glEsVersion<\/span><span style=\"color: green; font-weight: bold;\">=\"0x00020000\"<br\/><\/span><span style=\"color: green; font-weight: bold;\">    <\/span><span style=\"color: #660e7a; font-weight: bold;\">android<\/span><span style=\"color: blue; font-weight: bold;\">:required<\/span><span style=\"color: green; font-weight: bold;\">=\"true\" <\/span>\/&gt;<\/pre>\n<\/div>\n<p><span style=\"background-color: transparent;\">2. Create Class<\/span><\/p>\n<p>First create a class name\u00a0<span style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">OpenGLView Overide the class with\u00a0<\/span><span style=\"background-color: transparent; font-family: Consolas, monospace; font-size: 9.8pt;\">GLSurfaceView<\/span><span style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">. Add all the overide methord. Create init methord as shown below.<\/span><\/p>\n<div class=\"line number28 index27 alt1\" style=\"background: none white; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em 0px 0em; position: static; vertical-align: baseline; width: auto;\">\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\"><span style=\"color: navy; font-weight: bold;\">public class <\/span>OpenGLView <span style=\"color: navy; font-weight: bold;\">extends <\/span>GLSurfaceView {<p><span style=\"color: navy; font-weight: bold;\">public <\/span>OpenGLView(Context context) {<br\/><span style=\"color: navy; font-weight: bold;\">super<\/span>(context);<br\/>init();<br\/>}<\/p><p><span style=\"color: navy; font-weight: bold;\">public <\/span>OpenGLView(Context context, AttributeSet attrs) {<br\/><span style=\"color: navy; font-weight: bold;\">super<\/span>(context, attrs);<br\/>init();<br\/>}<br\/><span style=\"color: navy; font-weight: bold;\">private void <\/span>init(){<br\/>setEGLContextClientVersion(<span style=\"color: blue;\">2<\/span>);<br\/>setPreserveEGLContextOnPause(<span style=\"color: navy; font-weight: bold;\">true<\/span>);<br\/>setRenderer(<span style=\"color: navy; font-weight: bold;\">new <\/span>OpenGLRenderer());<br\/>}<br\/>}<\/p><\/pre>\n<\/div>\n<div class=\"line number28 index27 alt1\" style=\"background: none white; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: #1a1a1a; direction: ltr; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 16px; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em 0px 0em; position: static; vertical-align: baseline; white-space: pre; width: auto;\"><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\"><\/p>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\"><br\/><\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">Now create a class OpenGLRenderer and implement interface GLSurfaceView.Renderer and write all methord.<\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\"><span style=\"color: navy; font-weight: bold;\">public class <\/span>OpenGLRenderer <span style=\"color: navy; font-weight: bold;\">implements <\/span>GLSurfaceView.Renderer {<br\/><span style=\"color: olive;\">@Override<br\/><\/span><span style=\"color: olive;\">    <\/span><span style=\"color: navy; font-weight: bold;\">public void <\/span>onSurfaceCreated(GL10 gl, EGLConfig config) {<br\/>GLES20.<span style=\"font-style: italic;\">glClearColor<\/span>(<span style=\"color: blue;\">1f<\/span>,<span style=\"color: blue;\">0<\/span>,<span style=\"color: blue;\">0<\/span>,<span style=\"color: blue;\">1f<\/span>);<br\/>}<p><span style=\"color: olive;\">@Override<br\/><\/span><span style=\"color: olive;\">    <\/span><span style=\"color: navy; font-weight: bold;\">public void <\/span>onSurfaceChanged(GL10 gl, <span style=\"color: navy; font-weight: bold;\">int <\/span>width, <span style=\"color: navy; font-weight: bold;\">int <\/span>height) {<\/p><p>}<\/p><p><span style=\"color: olive;\">@Override<br\/><\/span><span style=\"color: olive;\">    <\/span><span style=\"color: navy; font-weight: bold;\">public void <\/span>onDrawFrame(GL10 gl) {<br\/>GLES20.<span style=\"font-style: italic;\">glClear<\/span>(GLES20.<span style=\"color: #660e7a; font-style: italic; font-weight: bold;\">GL_COLOR_BUFFER_BIT<\/span>);<br\/>}<br\/>}<\/p><\/pre>\n<p><\/code><\/div>\n<p><code class=\"java plain\" style=\"background: none; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; color: black; direction: ltr; display: inline; float: none; font-family: Monaco, Consolas, &quot;Bitstream Vera Sans Mono&quot;, &quot;Courier New&quot;, Courier, monospace; font-size: 1em; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto;\"><span style=\"font-family: &quot;Times New Roman&quot;; font-size: medium; white-space: normal;\">3<\/span><\/code><span style=\"background-color: initial; color: black; font-family: &quot;Times New Roman&quot;; font-size: medium; white-space: normal;\">. Main Activity XML<\/span><\/p>\n<p>In activity_main layout create an widget for creating canvas. Add the following code-\u00a0<\/p>\n<div class=\"line number28 index27 alt1\" style=\"background: none white; border-radius: 0px; border: 0px; box-shadow: none; box-sizing: content-box; direction: ltr; float: none; height: auto; inset: auto; line-height: 1.1em; margin: 0px; outline: 0px; overflow: visible; padding: 0px 1em 0px 0em; position: static; vertical-align: baseline; width: auto;\">\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">com.india.myapplication.OpenGLView<br\/><span style=\"color: navy; font-weight: bold;\">    <\/span><span style=\"color: #660e7a; font-weight: bold;\">android<\/span><span style=\"color: blue; font-weight: bold;\">:id<\/span><span style=\"color: green; font-weight: bold;\">=\"@+id\/openglview\"<br\/><\/span><span style=\"color: green; font-weight: bold;\">    <\/span><span style=\"color: #660e7a; font-weight: bold;\">android<\/span><span style=\"color: blue; font-weight: bold;\">:layout_height<\/span><span style=\"color: green; font-weight: bold;\">=\"match_parent\"<br\/><\/span><span style=\"color: green; font-weight: bold;\">    <\/span><span style=\"color: #660e7a; font-weight: bold;\">android<\/span><span style=\"color: blue; font-weight: bold;\">:layout_width<\/span><span style=\"color: green; font-weight: bold;\">=\"match_parent\"<\/span>\/&gt;<\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\"><br\/><\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">Now call the widget in Main Activity class<\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">OpenGLView <span style=\"color: #660e7a; font-weight: bold;\">openGLView<\/span>;<\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">Initalize the OpenGL View in main activity class<\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\"><span style=\"color: #660e7a; font-weight: bold;\">openGLView <\/span>=(OpenGLView) findViewById(R.id.<span style=\"color: #660e7a; font-style: italic; font-weight: bold;\">openglview<\/span>);<\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\"><br\/><\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">Now the app, test it on emulator or on real device. You will see a red color surface which is rendered by OpenGL ES. <\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\">You can change the color of surface by changing in the -  GLES20.<span style=\"font-size: 9.8pt; font-style: italic;\">glClearColor<\/span><span style=\"font-size: 9.8pt;\">(<\/span><span style=\"color: blue; font-size: 9.8pt;\">1f<\/span><span style=\"font-size: 9.8pt;\">,<\/span><span style=\"color: blue; font-size: 9.8pt;\">0<\/span><span style=\"font-size: 9.8pt;\">,<\/span><span style=\"color: blue; font-size: 9.8pt;\">0<\/span><span style=\"font-size: 9.8pt;\">,<\/span><span style=\"color: blue; font-size: 9.8pt;\">1f<\/span><span style=\"font-size: 9.8pt;\">);<\/span><\/pre>\n<pre style=\"font-family: Consolas, monospace; font-size: 9.8pt;\"><br\/><\/pre>\n<\/div>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>All Android devices have graphics processing unit (GPU), which used for handling the graphics processing. OpenGL is one of the API used in Android which support all devices, other is Vulkan which support only Android 7.0 and above. In this post we will getting stated with OpenGL ES for Android. This is simple Android OpenGL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12035],"tags":[1046,17996,4796],"dealstore":[],"offerexpiration":[],"class_list":["post-113237","post","type-post","status-publish","format-standard","hentry","category-animation","tag-android","tag-opengl","tag-started"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Getting Started with OpenGL ES for Android - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=113237\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting Started with OpenGL ES for Android - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"All Android devices have graphics processing unit (GPU), which used for handling the graphics processing. OpenGL is one of the API used in Android which support all devices, other is Vulkan which support only Android 7.0 and above. In this post we will getting stated with OpenGL ES for Android. This is simple Android OpenGL [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=113237\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-27T11:36:30+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=113237#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=113237\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Getting Started with OpenGL ES for Android\",\"datePublished\":\"2025-02-27T11:36:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=113237\"},\"wordCount\":359,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"keywords\":[\"Android\",\"OpenGL\",\"started\"],\"articleSection\":[\"Animation\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=113237#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=113237\",\"url\":\"https:\/\/fivemor.com\/?p=113237\",\"name\":\"Getting Started with OpenGL ES for Android - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"datePublished\":\"2025-02-27T11:36:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=113237#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=113237\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=113237#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting Started with OpenGL ES for Android\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting Started with OpenGL ES for Android - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=113237","og_locale":"en_US","og_type":"article","og_title":"Getting Started with OpenGL ES for Android - Som2ny Network","og_description":"All Android devices have graphics processing unit (GPU), which used for handling the graphics processing. OpenGL is one of the API used in Android which support all devices, other is Vulkan which support only Android 7.0 and above. In this post we will getting stated with OpenGL ES for Android. This is simple Android OpenGL [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=113237","og_site_name":"Som2ny Network","article_published_time":"2025-02-27T11:36:30+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=113237#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=113237"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Getting Started with OpenGL ES for Android","datePublished":"2025-02-27T11:36:30+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=113237"},"wordCount":359,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"keywords":["Android","OpenGL","started"],"articleSection":["Animation"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=113237#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=113237","url":"https:\/\/fivemor.com\/?p=113237","name":"Getting Started with OpenGL ES for Android - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"datePublished":"2025-02-27T11:36:30+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=113237#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=113237"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=113237#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Getting Started with OpenGL ES for Android"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/113237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=113237"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/113237\/revisions"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=113237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=113237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=113237"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=113237"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=113237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}