1f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin/*
2f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * Copyright (C) 2010 The Android Open Source Project
3f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin *
4f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * Licensed under the Apache License, Version 2.0 (the "License");
5f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * you may not use this file except in compliance with the License.
6f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * You may obtain a copy of the License at
7f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin *
8f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin *      http://www.apache.org/licenses/LICENSE-2.0
9f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin *
10f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * Unless required by applicable law or agreed to in writing, software
11f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * distributed under the License is distributed on an "AS IS" BASIS,
12f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * See the License for the specific language governing permissions and
14f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin * limitations under the License.
15f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin */
16f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin
17f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Linpackage com.android.gallery3d.ui;
18f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin
19b1a28418848ce0adeb8a845a78e246b01913d176John Reckimport android.content.Context;
202ef46ed28b28b355d7f3f1432c7b1196b832a859Chih-Chung Changimport android.graphics.Matrix;
2179cf902f4cc602774e90bc2040f0029978becb61Owen Lin
22f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Linimport com.android.gallery3d.anim.CanvasAnimation;
23a4eae1abb4f2547dfbda84301ee764ce35464881John Reckimport com.android.gallery3d.glrenderer.GLCanvas;
24f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin
25f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Linpublic interface GLRoot {
26f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin
27d8fb81f601830385a2343d08ad5dd171e4c7bfe0Owen Lin    // Listener will be called when GL is idle AND before each frame.
28d8fb81f601830385a2343d08ad5dd171e4c7bfe0Owen Lin    // Mainly used for uploading textures.
29f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public static interface OnGLIdleListener {
30d8fb81f601830385a2343d08ad5dd171e4c7bfe0Owen Lin        public boolean onGLIdle(
31d8fb81f601830385a2343d08ad5dd171e4c7bfe0Owen Lin                GLCanvas canvas, boolean renderRequested);
32f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    }
33f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin
34f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public void addOnGLIdleListener(OnGLIdleListener listener);
35f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public void registerLaunchedAnimation(CanvasAnimation animation);
3671c177759c7aa10082c8fdf909b701cf0047beadAngus Kong    public void requestRenderForced();
37f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public void requestRender();
38f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public void requestLayoutContentPane();
39f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin
40f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public void lockRenderThread();
41f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public void unlockRenderThread();
42f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin
43f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin    public void setContentPane(GLView content);
442ef46ed28b28b355d7f3f1432c7b1196b832a859Chih-Chung Chang    public void setOrientationSource(OrientationSource source);
452ef46ed28b28b355d7f3f1432c7b1196b832a859Chih-Chung Chang    public int getDisplayRotation();
462ef46ed28b28b355d7f3f1432c7b1196b832a859Chih-Chung Chang    public int getCompensation();
472ef46ed28b28b355d7f3f1432c7b1196b832a859Chih-Chung Chang    public Matrix getCompensationMatrix();
481ade1266d8e13830e3b07c1ebd8c95f4e859e129Chih-Chung Chang    public void freeze();
491ade1266d8e13830e3b07c1ebd8c95f4e859e129Chih-Chung Chang    public void unfreeze();
500b2486cff0c1b951c54325596256b986307f7f3aChih-Chung Chang    public void setLightsOutMode(boolean enabled);
51b1a28418848ce0adeb8a845a78e246b01913d176John Reck
52b1a28418848ce0adeb8a845a78e246b01913d176John Reck    public Context getContext();
53f9a0a4306d589b4a4e20554fed512a603426bfa1Owen Lin}
54