2 * Copyright 2021 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
8 package org.skia.androidkitdemo1.samples;
10 import android.content.res.Resources;
12 import java.io.InputStream;
14 import org.skia.androidkit.Canvas;
15 import org.skia.androidkit.Matrix;
16 import org.skia.androidkit.Paint;
17 import org.skia.androidkit.RuntimeShaderBuilder;
19 import org.skia.androidkitdemo1.samples.Sample;
21 public class RuntimeSample implements Sample {
22 private RuntimeShaderBuilder mShaderBuilder;
24 public RuntimeSample(Resources res, int resId) {
27 InputStream is = res.openRawResource(resId);
28 byte[] data = new byte[is.available()];
31 sksl = new String(data);
32 } catch (Exception e) {}
34 mShaderBuilder = new RuntimeShaderBuilder(sksl);
37 public void render(Canvas canvas, long ms, float left, float top, float right, float bottom) {
38 mShaderBuilder.setUniform("u_time", ms / 1000.0f)
39 .setUniform("u_w", right - left)
40 .setUniform("u_h", bottom - top);
42 Paint paint = new Paint().setShader(mShaderBuilder.makeShader());
45 canvas.concat(new Matrix().translate(left, top));
46 canvas.drawRect(0, 0, right - left, bottom - top, paint);