Home | History | Annotate | Download | only in graphics
      1 page.title=3D with OpenGL
      2 parent.title=2D and 3D Graphics
      3 parent.link=index.html
      4 @jd:body
      5 
      6 
      7 <p>Android includes support for high performance 3D graphics 
      8 via the OpenGL API &mdash; specifically, the OpenGL ES API.</p>
      9 
     10 <p>OpenGL ES is a flavor of the OpenGL specification intended for embedded
     11 devices. Versions of <a href="http://www.khronos.org/opengles/">OpenGL ES</a> are loosely peered to versions of the primary
     12 OpenGL standard. Android currently supports OpenGL ES 1.0, which corresponds
     13 to OpenGL 1.3. So, if the application you have in mind is possible with OpenGL
     14 1.3 on a desktop system, it should be possible on Android.</p>
     15 
     16 <p>The specific API provided by Android is similar to the J2ME JSR239 OpenGL
     17 ES API. However, it may not be identical, so watch out for deviations.</p>
     18 
     19 <h2>Using the API</h2>
     20 
     21 <p>Here's how to use the API at an extremely high level:</p>
     22 
     23 <ol>
     24 <li>Write a custom View subclass.</li>
     25 <li>Obtain a handle to an OpenGLContext, which provides access to the OpenGL functionality.</li>
     26 <li>In your View's onDraw() method, get a handle to a GL object, and use its methods to perform GL operations.</li>
     27 </ol>
     28 
     29 <p>For an example of this usage model (based on the classic GL ColorCube), showing how to use
     30 it with threads can be found in 
     31 <a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/graphics/GLSurfaceViewActivity.html">com.android.samples.graphics.GLSurfaceViewActivity.java</a>.
     32 </p>
     33 
     34 <p>Writing a summary of how to actually write 3D applications using OpenGL is
     35 beyond the scope of this text and is left as an exercise for the reader.</p>
     36 
     37 <h2>Links to Additional Information</h2>
     38 
     39 <p>Information about OpenGL ES can be
     40 found at <a title="http://www.khronos.org/opengles/"
     41 href="http://www.khronos.org/opengles/">http://www.khronos.org/opengles/</a>.</p> 
     42 
     43 <p>Information specifically
     44 about OpenGL ES 1.0 (including a detailed specification) can be found
     45 at <a title="http://www.khronos.org/opengles/1_X/"
     46 href="http://www.khronos.org/opengles/1_X/">http://www.khronos.org/opengles/1_X/</a>.</p>
     47 
     48 <p>The documentation for the Android {@link javax.microedition.khronos.opengles
     49 OpenGL ES implementations} are also available.</p>
     50 
     51 <p>Finally, note that though Android does include some basic support for
     52 OpenGL ES 1.1, the support is <strong>not complete</strong>, and should not be relied
     53 upon at this time.</p>
     54