155bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
255bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui/*
355bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * Copyright (C) 2013 The Android Open Source Project
455bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui *
555bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * Licensed under the Apache License, Version 2.0 (the "License");
655bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * you may not use this file except in compliance with the License.
755bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * You may obtain a copy of the License at
855bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui *
955bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui *      http://www.apache.org/licenses/LICENSE-2.0
1055bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui *
1155bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * Unless required by applicable law or agreed to in writing, software
1255bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * distributed under the License is distributed on an "AS IS" BASIS,
1355bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1455bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * See the License for the specific language governing permissions and
1555bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * limitations under the License.
1655bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui */
1755bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
1855bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui#ifndef ANDROID_HWUI_AMBIENT_SHADOW_H
1955bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui#define ANDROID_HWUI_AMBIENT_SHADOW_H
2055bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
2155bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui#include "Debug.h"
2250ecf849cb7ccc3482517b74d2214b347927791eztenghui#include "OpenGLRenderer.h"
2355bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui#include "Vector.h"
2455bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui#include "VertexBuffer.h"
2555bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
2655bfb4e728fe1db619af5d2c287f4abe711b3343ztenghuinamespace android {
2755bfb4e728fe1db619af5d2c287f4abe711b3343ztenghuinamespace uirenderer {
2855bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
2955bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui/**
3055bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui * AmbientShadow is used to calculate the ambient shadow value around a polygon.
3155bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui */
3255bfb4e728fe1db619af5d2c287f4abe711b3343ztenghuiclass AmbientShadow {
3355bfb4e728fe1db619af5d2c287f4abe711b3343ztenghuipublic:
3405f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5Chris Craik    static void createAmbientShadow(bool isCasterOpaque, const Vector3* poly,
3550ecf849cb7ccc3482517b74d2214b347927791eztenghui            int polyLength, const Vector3& centroid3d, float heightFactor,
3650ecf849cb7ccc3482517b74d2214b347927791eztenghui            float geomFactor, VertexBuffer& shadowVertexBuffer);
3755bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui}; // AmbientShadow
3855bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
3955bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui}; // namespace uirenderer
4055bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui}; // namespace android
4155bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui
4255bfb4e728fe1db619af5d2c287f4abe711b3343ztenghui#endif // ANDROID_HWUI_AMBIENT_SHADOW_H
43