DrawGlInfo.h revision 08aa2cbd5e62e7ca140f78f8bea0477a19880fd9
108aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy/*
208aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * Copyright (C) 2011 The Android Open Source Project
308aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy *
408aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * Licensed under the Apache License, Version 2.0 (the "License");
508aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * you may not use this file except in compliance with the License.
608aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * You may obtain a copy of the License at
708aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy *
808aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy *      http://www.apache.org/licenses/LICENSE-2.0
908aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy *
1008aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * Unless required by applicable law or agreed to in writing, software
1108aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * distributed under the License is distributed on an "AS IS" BASIS,
1208aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1308aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * See the License for the specific language governing permissions and
1408aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * limitations under the License.
1508aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy */
1608aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
1708aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy#ifndef ANDROID_HWUI_DRAW_GL_INFO_H
1808aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy#define ANDROID_HWUI_DRAW_GL_INFO_H
1908aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
2008aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guynamespace android {
2108aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guynamespace uirenderer {
2208aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
2308aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy/**
2408aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * Structure used by OpenGLRenderer::callDrawGLFunction() to pass and
2508aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy * receive data from OpenGL functors.
2608aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy */
2708aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guystruct DrawGlInfo {
2808aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    // Input: current clip rect
2908aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    int clipLeft;
3008aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    int clipTop;
3108aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    int clipRight;
3208aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    int clipBottom;
3308aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
3408aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    // Input: is the render target an FBO
3508aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    bool isLayer;
3608aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
3708aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    // Input: current transform matrix, in OpenGL format
3808aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    float transform[16];
3908aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
4008aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    // Output: dirty region to redraw
4108aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    float dirtyLeft;
4208aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    float dirtyTop;
4308aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    float dirtyRight;
4408aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy    float dirtyBottom;
4508aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy}; // struct DrawGlInfo
4608aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
4708aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy}; // namespace uirenderer
4808aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy}; // namespace android
4908aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy
5008aa2cbd5e62e7ca140f78f8bea0477a19880fd9Romain Guy#endif // ANDROID_HWUI_DRAW_GL_INFO_H
51