Skip to main content
Top
Published in: Cluster Computing 1/2015

01-03-2015

Emulating OpenGL ES 2.0 over the desktop OpenGL

Authors: Nakhoon Baek, Kwan-Hee Yoo

Published in: Cluster Computing | Issue 1/2015

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

The OpenGL has been the de facto 3D graphics standard for more than 20 years. For the newly developed embedded devices including smart phones and tablet PC’s, the OpenGL ES (Embedded Systems) 2.0 is the most suitable and the most widely used 3D graphics standard at this time. Since the embedded devices have limited computing powers, programmers met difficulties in the developing OpenGL ES application programs on the embedded systems. They prefer more convenient programming environments of PC’s, and thus, we need emulation of the OpenGL ES 2.0 library on PC’s. We present our OpenGL ES 2.0 emulation approach, which works on the Linux-based desktop PC’s. Although OpenGL ES 2.0 was derived from the desktop OpenGL 2.1, the details of these two graphics standards are different and not mutually compatible. For example, OpenGL ES 2.0 additionally provides the new floating point representation of GLfixed, which consists of a sign bit, 15 bit integer and 16 bit fractional part. The framebuffer object features are also integrated into the core profile of OpenGL ES 2.0, while it was originally an optional extension of the desktop OpenGL. For the shader language supports, OpenGL ES Shader Language (ESSL) 1.0 is more enhanced in its completeness, compared to the original OpenGL Shader Language (GLSL). More specifically, some confusing variable names are fixed, stricter syntax and semantics checks are introduced, and some built-in constants are strengthened to support more enhanced hardware. Thus, we need a more exact and detailed shader language processor. We finally make an ESSL-to-GLSL translator with stricter error check features. Our design focuses can be classified into six categories: function interface design, fixed-point data type support, core pipeline support, shader language support, framebuffer support, and extensions support. We provide totally 11 OpenGL ES extensions, which was selected for their important functionalities. Our final implementation result satisfies 97 % of official conformance tests, and also fully tested with commercial benchmark programs. Its execution speeds are equivalently fast enough in comparison with one of the widely-used commercial OpenGL ES 2.0 emulators. Using our result, programmers can develop OpenGL ES 2.0 programs on their desktop PC’s, and simply convert them into final smart phone graphics applications. Our methods can also be applied to other graphics standards such as OpenGL SC and WebGL.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literature
4.
go back to reference ARM: Fixed Point Arithmetic on the ARM, Application Note 33. ARM (1996) ARM: Fixed Point Arithmetic on the ARM, Application Note 33. ARM (1996)
5.
go back to reference Babin, S.: Developing Software for Symbian OS 2nd Edition: A Beginner’s Guide to Creating Symbian OS v9 Smartphone Applications in C++. Wiley, London (2007) Babin, S.: Developing Software for Symbian OS 2nd Edition: A Beginner’s Guide to Creating Symbian OS v9 Smartphone Applications in C++. Wiley, London (2007)
7.
go back to reference Barris, R., Koch, D.: \(\text{ ARB }\_\text{ framebuffer }\_\text{ object }\) (ARB Extention #45). OpenGL Architecture Review Board (2008) Barris, R., Koch, D.: \(\text{ ARB }\_\text{ framebuffer }\_\text{ object }\) (ARB Extention #45). OpenGL Architecture Review Board (2008)
8.
go back to reference Blythe, D.: \(\text{ OES }\_\text{ fixed }\_\text{ point }\) (OpenGL ES Extention #9). Khronos Group (2004) Blythe, D.: \(\text{ OES }\_\text{ fixed }\_\text{ point }\) (OpenGL ES Extention #9). Khronos Group (2004)
9.
go back to reference Blythe, D.: \(\text{ OES }\_\text{ single }\_\text{ precision }\) (OpenGL ES Extention #18). Khronos Group (2004) Blythe, D.: \(\text{ OES }\_\text{ single }\_\text{ precision }\) (OpenGL ES Extention #18). Khronos Group (2004)
10.
go back to reference Blythe, D.: \(\text{ OES }\_\text{ stencil }\_\text{ wrap }\) (OpenGL ES Extention #19). Khronos Group (2004) Blythe, D.: \(\text{ OES }\_\text{ stencil }\_\text{ wrap }\) (OpenGL ES Extention #19). Khronos Group (2004)
12.
go back to reference Hammerstone, R., Craighead, M., Akeley, K.: ARB_vertex_ buffer_object (ARB Extention #28). OpenGL Architecture Review Board (2003) Hammerstone, R., Craighead, M., Akeley, K.: ARB_vertex_ buffer_object (ARB Extention #28). OpenGL Architecture Review Board (2003)
16.
go back to reference ISO/IEC 9899: Programming Languages—C. International Standard Organization (1998) ISO/IEC 9899: Programming Languages—C. International Standard Organization (1998)
17.
go back to reference Johnson, S.C.: Yacc: Yet another compiler. Computing Science Technical Report No. 32 (1975) Johnson, S.C.: Yacc: Yet another compiler. Computing Science Technical Report No. 32 (1975)
18.
go back to reference Kessenich, J.: The OpenGL Shading Language, Language Version: 1.20. Khronos, Group (2006) Kessenich, J.: The OpenGL Shading Language, Language Version: 1.20. Khronos, Group (2006)
23.
go back to reference Lee, H., Yoon, J., Baek, N.: An efficient graphics framework using embedded hardware for avionics applications. Proc. ISET 40, (2013) Lee, H., Yoon, J., Baek, N.: An efficient graphics framework using embedded hardware for avionics applications. Proc. ISET 40, (2013)
25.
go back to reference Lesk, M.E., Schmidt, E.: Lex: A lexical analyzer generator. Computing Science Technical Report No. 39 (1975) Lesk, M.E., Schmidt, E.: Lex: A lexical analyzer generator. Computing Science Technical Report No. 39 (1975)
26.
go back to reference Lipchak, B.: \(\text{ OES }\_\text{ packed }\_\text{ depth }\_\text{ stencil }\) (OpenGL ES Extention #44). Khronos Group (2008) Lipchak, B.: \(\text{ OES }\_\text{ packed }\_\text{ depth }\_\text{ stencil }\) (OpenGL ES Extention #44). Khronos Group (2008)
27.
go back to reference Lipchak, B.: \(\text{ OES }\_\text{ blend }\_\text{ func }\_\text{ separate }\) (OpenGL ES Extention #2). Khronos Group (2009) Lipchak, B.: \(\text{ OES }\_\text{ blend }\_\text{ func }\_\text{ separate }\) (OpenGL ES Extention #2). Khronos Group (2009)
28.
go back to reference Lipchak, B.: \(\text{ OES }\_\text{ blend }\_\text{ subtract }\) (OpenGL ES Extention #3). Khronos Group (2009) Lipchak, B.: \(\text{ OES }\_\text{ blend }\_\text{ subtract }\) (OpenGL ES Extention #3). Khronos Group (2009)
29.
go back to reference Lipchak, B.: OpenGL ES version 3.0. Khronos, Group (2012) Lipchak, B.: OpenGL ES version 3.0. Khronos, Group (2012)
30.
go back to reference Malizia, A.: Mobile 3D Graphics. Springer, Secaucus, NJ (2006) Malizia, A.: Mobile 3D Graphics. Springer, Secaucus, NJ (2006)
31.
go back to reference Marrin, C.: WebGL Specification, Draft 16. Khronos Group (2012) Marrin, C.: WebGL Specification, Draft 16. Khronos Group (2012)
32.
go back to reference Merry, B.:\(\text{ OES }\_\text{ texture }\_\text{ npot }\) (OpenGL ES Extention #37). Khronos Group (2005) Merry, B.:\(\text{ OES }\_\text{ texture }\_\text{ npot }\) (OpenGL ES Extention #37). Khronos Group (2005)
33.
go back to reference Munshi, A.: \(\text{ OES }\_\text{ element }\_\text{ index }\_\text{ uint }\) (OpenGL ES Extention #26). Khronos Group (2005) Munshi, A.: \(\text{ OES }\_\text{ element }\_\text{ index }\_\text{ uint }\) (OpenGL ES Extention #26). Khronos Group (2005)
34.
go back to reference Munshi, A.: \(\text{ OES }\_\text{ rgb8 }\_\text{ rgba8 }\) (OpenGL ES Extention #30). Khronos Group (2005) Munshi, A.: \(\text{ OES }\_\text{ rgb8 }\_\text{ rgba8 }\) (OpenGL ES Extention #30). Khronos Group (2005)
35.
go back to reference Munshi, A.: \(\text{ OES }\_\text{ texture }\_\text{3D }\) (OpenGL ES Extention #34). Khronos Group (2005) Munshi, A.: \(\text{ OES }\_\text{ texture }\_\text{3D }\) (OpenGL ES Extention #34). Khronos Group (2005)
36.
go back to reference Munshi, A.: \(\text{ OES }\_\text{ texture }\_\text{ mirrored }\_\text{ repeat }\) (OpenGL ES Extention #22). Khronos Group (2005) Munshi, A.: \(\text{ OES }\_\text{ texture }\_\text{ mirrored }\_\text{ repeat }\) (OpenGL ES Extention #22). Khronos Group (2005)
37.
go back to reference Munshi, A.: OpenGL ES 1.1 Extension Pack Specification, Version 1.03. Khronos, Group (2005) Munshi, A.: OpenGL ES 1.1 Extension Pack Specification, Version 1.03. Khronos, Group (2005)
38.
go back to reference Munshi, A.: OpenGL ES Common Profile Specification, version 2.0.24 (Full Specification). Khronos, Group (2009) Munshi, A.: OpenGL ES Common Profile Specification, version 2.0.24 (Full Specification). Khronos, Group (2009)
39.
go back to reference Munshi, A., Leech, J.: OpenGL ES Common/Common-Lite Profile Specification, version 1.1.12 (Full Specification). Khronos, Group (2008) Munshi, A., Leech, J.: OpenGL ES Common/Common-Lite Profile Specification, version 1.1.12 (Full Specification). Khronos, Group (2008)
41.
go back to reference Pulli, K., Vaarala, J., Miettinen, V., Aarnio, T., Roimela, K.: Mobile 3D Graphics: With OpenGL ES and M3G. Morgan Kaufmann Publishers Inc., San Francisco, CA (2007) Pulli, K., Vaarala, J., Miettinen, V., Aarnio, T., Roimela, K.: Mobile 3D Graphics: With OpenGL ES and M3G. Morgan Kaufmann Publishers Inc., San Francisco, CA (2007)
43.
go back to reference Segal, M., Akeley, K.: The OpenGL Graphics System: A Specification, Version 1.3. Khronos, Group (2001) Segal, M., Akeley, K.: The OpenGL Graphics System: A Specification, Version 1.3. Khronos, Group (2001)
44.
go back to reference Segal, M., Akeley, K.: The OpenGL Graphics System: A Specification, Version 2.1. Khronos, Group (2006) Segal, M., Akeley, K.: The OpenGL Graphics System: A Specification, Version 2.1. Khronos, Group (2006)
45.
go back to reference Segal, M., Akeley, K.: The OpenGL Graphics System: A Specification, Version 4.4 (Core Profile). Khronos, Group (2013) Segal, M., Akeley, K.: The OpenGL Graphics System: A Specification, Version 4.4 (Core Profile). Khronos, Group (2013)
46.
go back to reference Simpson, R.J.: The OpenGL ES Shading Language, Language Version: 1.00. Khronos, Group (2008) Simpson, R.J.: The OpenGL ES Shading Language, Language Version: 1.00. Khronos, Group (2008)
47.
go back to reference Stockwell, B.: OpenGL SC: Safety-Critical Profile Specification, version 1.0.1 (difference specification). Khronos, Group (2009) Stockwell, B.: OpenGL SC: Safety-Critical Profile Specification, version 1.0.1 (difference specification). Khronos, Group (2009)
48.
go back to reference Topcuoglu, H., Hariri, S., Kim, D., Kim, Y., Bing, X., Ye, B., Ra, I., Valente, J.: The design and evaluation of a virtual distributed computing environment. Clust. Comput. 1(1), 81–93 (1998). doi:10.1023/A:1019069012307 CrossRef Topcuoglu, H., Hariri, S., Kim, D., Kim, Y., Bing, X., Ye, B., Ra, I., Valente, J.: The design and evaluation of a virtual distributed computing environment. Clust. Comput. 1(1), 81–93 (1998). doi:10.​1023/​A:​1019069012307 CrossRef
49.
go back to reference W3C Consortium: Mobile SVG Profiles: SVG Tiny and SVG Basic. W3C (2009) W3C Consortium: Mobile SVG Profiles: SVG Tiny and SVG Basic. W3C (2009)
50.
go back to reference W3C Consortium: Scalable Vector Graphics (SVG) 1.1, 2nd ed. edn. (working draft) (2010) W3C Consortium: Scalable Vector Graphics (SVG) 1.1, 2nd ed. edn. (working draft) (2010)
Metadata
Title
Emulating OpenGL ES 2.0 over the desktop OpenGL
Authors
Nakhoon Baek
Kwan-Hee Yoo
Publication date
01-03-2015
Publisher
Springer US
Published in
Cluster Computing / Issue 1/2015
Print ISSN: 1386-7857
Electronic ISSN: 1573-7543
DOI
https://doi.org/10.1007/s10586-014-0351-6

Other articles of this Issue 1/2015

Cluster Computing 1/2015 Go to the issue

Premium Partner