Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / skia / platform_tools / android / apps / androidkitdemo / src / main / java / org / skia / androidkitdemo1 / samples / RuntimeSample.java
1 /*
2  * Copyright 2021 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 org.skia.androidkitdemo1.samples;
9
10 import android.content.res.Resources;
11
12 import java.io.InputStream;
13
14 import org.skia.androidkit.Canvas;
15 import org.skia.androidkit.Matrix;
16 import org.skia.androidkit.Paint;
17 import org.skia.androidkit.RuntimeShaderBuilder;
18
19 import org.skia.androidkitdemo1.samples.Sample;
20
21 public class RuntimeSample implements Sample {
22     private RuntimeShaderBuilder mShaderBuilder;
23
24     public RuntimeSample(Resources res, int resId) {
25         String sksl = "";
26         try {
27             InputStream is = res.openRawResource(resId);
28             byte[] data = new byte[is.available()];
29             is.read(data);
30
31             sksl = new String(data);
32         } catch (Exception e) {}
33
34         mShaderBuilder = new RuntimeShaderBuilder(sksl);
35     }
36
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);
41
42         Paint paint = new Paint().setShader(mShaderBuilder.makeShader());
43
44         canvas.save();
45         canvas.concat(new Matrix().translate(left, top));
46         canvas.drawRect(0, 0, right - left, bottom - top, paint);
47         canvas.restore();
48     }
49 }