1// Copyright (c) 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include <jni.h> 6 7#include "android_webview/public/browser/draw_gl.h" 8 9extern "C" { 10 11JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { 12 return JNI_VERSION_1_4; 13} 14 15// This code goes into its own dynamic library, so we cannot depend on 16// any other components like base. 17JNIEXPORT void JNICALL 18 Java_org_chromium_android_1webview_shell_DrawGL_nativeDrawGL( 19 JNIEnv*, 20 jclass, 21 jlong draw_gl, 22 jlong view, 23 jint width, 24 jint height, 25 jint scroll_x, 26 jint scroll_y, 27 jint mode) { 28 AwDrawGLInfo draw_info; 29 draw_info.mode = static_cast<AwDrawGLInfo::Mode>(mode); 30 draw_info.version = kAwDrawGLInfoVersion; 31 draw_info.is_layer = false; 32 draw_info.width = width; 33 draw_info.height = height; 34 draw_info.clip_left = 0; 35 draw_info.clip_top = 0; 36 draw_info.clip_bottom = height; 37 draw_info.clip_right = width; 38 draw_info.transform[0] = 1.0; 39 draw_info.transform[1] = 0.0; 40 draw_info.transform[2] = 0.0; 41 draw_info.transform[3] = 0.0; 42 43 draw_info.transform[4] = 0.0; 44 draw_info.transform[5] = 1.0; 45 draw_info.transform[6] = 0.0; 46 draw_info.transform[7] = 0.0; 47 48 draw_info.transform[8] = 0.0; 49 draw_info.transform[9] = 0.0; 50 draw_info.transform[10] = 1.0; 51 draw_info.transform[11] = 0.0; 52 53 draw_info.transform[12] = -scroll_x; 54 draw_info.transform[13] = -scroll_y; 55 draw_info.transform[14] = 0.0; 56 draw_info.transform[15] = 1.0; 57 AwDrawGLFunction* draw_func = reinterpret_cast<AwDrawGLFunction*>(draw_gl); 58 draw_func(view, &draw_info, 0); 59} 60 61} 62