blob: 260a3f551cdbfa8d89a69ed56536aceb493cac3b [file] [log] [blame]
// 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 <jni.h>
#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<AwDrawGLInfo::Mode>(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<AwDrawGLFunction*>(draw_gl);
draw_func(view, &draw_info, 0);
}
}