// Copyright (c) 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include #include "android_webview/public/browser/draw_gl.h" extern "C" { JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { return JNI_VERSION_1_4; } // This code goes into its own dynamic library, so we cannot depend on // any other components like base. JNIEXPORT void JNICALL Java_org_chromium_android_1webview_shell_DrawGL_nativeDrawGL( JNIEnv*, jclass, jlong draw_gl, jlong view, jint width, jint height, jint scroll_x, jint scroll_y, jint mode) { AwDrawGLInfo draw_info; draw_info.mode = static_cast(mode); draw_info.version = kAwDrawGLInfoVersion; draw_info.is_layer = false; draw_info.width = width; draw_info.height = height; draw_info.clip_left = 0; draw_info.clip_top = 0; draw_info.clip_bottom = height; draw_info.clip_right = width; draw_info.transform[0] = 1.0; draw_info.transform[1] = 0.0; draw_info.transform[2] = 0.0; draw_info.transform[3] = 0.0; draw_info.transform[4] = 0.0; draw_info.transform[5] = 1.0; draw_info.transform[6] = 0.0; draw_info.transform[7] = 0.0; draw_info.transform[8] = 0.0; draw_info.transform[9] = 0.0; draw_info.transform[10] = 1.0; draw_info.transform[11] = 0.0; draw_info.transform[12] = -scroll_x; draw_info.transform[13] = -scroll_y; draw_info.transform[14] = 0.0; draw_info.transform[15] = 1.0; AwDrawGLFunction* draw_func = reinterpret_cast(draw_gl); draw_func(view, &draw_info, 0); } }