Update Animation Plugin to use OpenGL.

Change-Id: Ib20fa69422a0dae804c95f71b70a65027ad8e9cf
diff --git a/samples/BrowserPlugin/jni/main.cpp b/samples/BrowserPlugin/jni/main.cpp
index 07bae66..a2dd667 100644
--- a/samples/BrowserPlugin/jni/main.cpp
+++ b/samples/BrowserPlugin/jni/main.cpp
@@ -77,6 +77,7 @@
 ANPSystemInterfaceV0        gSystemI;
 ANPTypefaceInterfaceV0      gTypefaceI;
 ANPWindowInterfaceV0        gWindowI;
+ANPOpenGLInterfaceV0        gOpenGLI;
 
 #define ARRAY_COUNT(array)      (sizeof(array) / sizeof(array[0]))
 #define DEBUG_PLUGIN_EVENTS     0
@@ -125,6 +126,7 @@
         { kSystemInterfaceV0_ANPGetValue,       sizeof(gSystemI),   &gSystemI },
         { kTypefaceInterfaceV0_ANPGetValue,     sizeof(gTypefaceI), &gTypefaceI },
         { kWindowInterfaceV0_ANPGetValue,       sizeof(gWindowI),   &gWindowI },
+        { kOpenGLInterfaceV0_ANPGetValue,       sizeof(gOpenGLI),   &gOpenGLI },
     };
     for (size_t i = 0; i < ARRAY_COUNT(gPairs); i++) {
         gPairs[i].i->inSize = gPairs[i].size;
@@ -162,6 +164,7 @@
     if (browser->version >= 14) {
         instance->pdata = browser->createobject (instance, getPluginClass());
         obj = static_cast<PluginObject*>(instance->pdata);
+        obj->pluginType = 0;
     }
     /* END: STANDARD PLUGIN FRAMEWORK */
 
@@ -176,6 +179,9 @@
             else if (!strcmp(argv[i], "Surface")) {
                model = kSurface_ANPDrawingModel;
             }
+            else if (!strcmp(argv[i], "OpenGL")) {
+               model = kOpenGL_ANPDrawingModel;
+            }
             gLogI.log(kDebug_ANPLogType, "------ %p DrawingModel is %d", instance, model);
             break;
         }
@@ -228,7 +234,6 @@
                 obj->pluginType = kVideo_PluginType;
                 obj->activePlugin = new VideoPlugin(instance);
             }
-            gLogI.log(kDebug_ANPLogType, "------ %p PluginType is %d", instance, obj->pluginType);
             break;
         }
     }
@@ -240,6 +245,8 @@
         obj->activePlugin = new BallAnimation(instance);
     }
 
+    gLogI.log(kDebug_ANPLogType, "------ %p PluginType is %d", instance, obj->pluginType);
+
     // check to ensure the pluginType supports the model
     if (!obj->activePlugin->supportsDrawingModel(model)) {
         gLogI.log(kError_ANPLogType, "------ %p Unsupported DrawingModel (%d)", instance, model);
@@ -247,7 +254,7 @@
     }
 
     // if the plugin uses the surface drawing model then set the java context
-    if (model == kSurface_ANPDrawingModel) {
+    if (model == kSurface_ANPDrawingModel || model == kOpenGL_ANPDrawingModel) {
         SurfaceSubPlugin* surfacePlugin = static_cast<SurfaceSubPlugin*>(obj->activePlugin);
 
         jobject context;
@@ -434,7 +441,8 @@
         PluginObject* obj = static_cast<PluginObject*>(instance->pdata);
         if (obj && obj->activePlugin) {
 
-            if(obj->activePlugin->supportsDrawingModel(kSurface_ANPDrawingModel)) {
+            if(obj->activePlugin->supportsDrawingModel(kSurface_ANPDrawingModel)
+                    || obj->activePlugin->supportsDrawingModel(kOpenGL_ANPDrawingModel)) {
                 SurfaceSubPlugin* plugin = static_cast<SurfaceSubPlugin*>(obj->activePlugin);
                 jobject* surface = static_cast<jobject*>(value);
                 *surface = plugin->getSurface();