| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright 2012 Google Inc. | |
| 3 * | |
| 4 * Use of this source code is governed by a BSD-style license that can be | |
| 5 * found in the LICENSE file. | |
| 6 */ | |
| 7 | |
| 8 package com.skia; | |
| 9 | |
| 10 import android.opengl.GLSurfaceView; | |
| 11 import android.os.Handler; | |
| 12 import android.util.Log; | |
| 13 | |
| 14 import javax.microedition.khronos.egl.EGLConfig; | |
| 15 import javax.microedition.khronos.opengles.GL10; | |
| 16 import javax.microedition.khronos.opengles.GL11; | |
| 17 | |
| 18 public class SkiaSampleRenderer implements GLSurfaceView.Renderer { | |
| 19 | |
| 20 private final SkiaSampleView mSampleView; | |
| 21 private Handler mHandler = new Handler(); | |
| 22 private int mMSAASampleCount; | |
| 23 private String mCmdLineFlags; | |
| 24 | |
| 25 SkiaSampleRenderer(SkiaSampleView view, String cmdLineFlags) { | |
| 26 mSampleView = view; | |
| 27 mCmdLineFlags = cmdLineFlags; | |
| 28 } | |
| 29 | |
| 30 @Override | |
| 31 public void onDrawFrame(GL10 gl) { | |
| 32 draw(); | |
| 33 } | |
| 34 | |
| 35 @Override | |
| 36 public void onSurfaceChanged(GL10 gl, int width, int height) { | |
| 37 updateSize(width, height); | |
| 38 } | |
| 39 | |
| 40 @Override | |
| 41 public void onSurfaceCreated(GL10 gl, EGLConfig config) { | |
| 42 if (gl instanceof GL11) { | |
| 43 int value[] = new int[1]; | |
| 44 ((GL11) gl).glGetIntegerv(GL11.GL_SAMPLES, value, 0); | |
| 45 if (value[0] == 1) { | |
| 46 mMSAASampleCount = 0; | |
| 47 } else { | |
| 48 mMSAASampleCount = value[0]; | |
| 49 } | |
| 50 } | |
| 51 | |
| 52 gl.glClearStencil(0); | |
| 53 gl.glClear(GL10.GL_STENCIL_BUFFER_BIT); | |
| 54 | |
| 55 init((SkiaSampleActivity)mSampleView.getContext(), mCmdLineFlags, mMSAAS
ampleCount); | |
| 56 } | |
| 57 | |
| 58 // Called by JNI and the view. | |
| 59 synchronized public int getMSAASampleCount() { | |
| 60 return mMSAASampleCount; | |
| 61 } | |
| 62 | |
| 63 // Called by JNI | |
| 64 private void startTimer(int ms) { | |
| 65 // After the delay, queue an event to the Renderer's thread | |
| 66 // to handle the event on the timer queue | |
| 67 mHandler.postDelayed(new Runnable() { | |
| 68 @Override | |
| 69 public void run() { | |
| 70 mSampleView.queueEvent(new Runnable() { | |
| 71 @Override | |
| 72 public void run() { | |
| 73 serviceQueueTimer(); | |
| 74 } | |
| 75 }); | |
| 76 } | |
| 77 }, ms); | |
| 78 } | |
| 79 | |
| 80 // Called by JNI | |
| 81 private void queueSkEvent() { | |
| 82 mSampleView.queueEvent(new Runnable() { | |
| 83 @Override | |
| 84 public void run() { | |
| 85 processSkEvent(); | |
| 86 } | |
| 87 }); | |
| 88 } | |
| 89 | |
| 90 // Called by JNI | |
| 91 private void requestRender() { | |
| 92 mSampleView.requestRender(); | |
| 93 } | |
| 94 | |
| 95 native void init(SkiaSampleActivity activity, String flags, int msaaSampleCo
unt); | |
| 96 native void term(); | |
| 97 native void draw(); | |
| 98 native void updateSize(int w, int h); | |
| 99 native void handleClick(int owner, float x, float y, int state); | |
| 100 native void showOverview(); | |
| 101 native void nextSample(); | |
| 102 native void previousSample(); | |
| 103 native void goToSample(int position); | |
| 104 native void toggleRenderingMode(); | |
| 105 native void toggleSlideshow(); | |
| 106 native void toggleFPS(); | |
| 107 native void toggleTiling(); | |
| 108 native void toggleBBox(); | |
| 109 native void processSkEvent(); | |
| 110 native void serviceQueueTimer(); | |
| 111 native void saveToPDF(); | |
| 112 native void postInval(); | |
| 113 } | |
| OLD | NEW |