1 /* 2 * Copyright (C) 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.systemui.glwallpaper; 18 19 import android.util.Size; 20 21 import java.io.FileDescriptor; 22 import java.io.PrintWriter; 23 24 /** 25 * A renderer which is responsible for making OpenGL calls to render a frame. 26 */ 27 public interface GLWallpaperRenderer { 28 29 /** 30 * Check if the content to render is a WCG content. 31 */ isWcgContent()32 boolean isWcgContent(); 33 34 /** 35 * Called when the surface is created or recreated. 36 */ onSurfaceCreated()37 void onSurfaceCreated(); 38 39 /** 40 * Called when the surface changed size. 41 * @param width surface width. 42 * @param height surface height. 43 */ onSurfaceChanged(int width, int height)44 void onSurfaceChanged(int width, int height); 45 46 /** 47 * Called to draw the current frame. 48 */ onDrawFrame()49 void onDrawFrame(); 50 51 /** 52 * Ask renderer to report the surface size it needs. 53 */ reportSurfaceSize()54 Size reportSurfaceSize(); 55 56 /** 57 * Called when no need to render any more. 58 */ finish()59 void finish(); 60 61 /** 62 * Called to dump current state. 63 * @param prefix prefix. 64 * @param fd fd. 65 * @param out out. 66 * @param args args. 67 */ dump(String prefix, FileDescriptor fd, PrintWriter out, String[] args)68 void dump(String prefix, FileDescriptor fd, PrintWriter out, String[] args); 69 70 } 71