165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn/* 265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Copyright (C) 2011 The Android Open Source Project 365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * 465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Licensed under the Apache License, Version 2.0 (the "License"); 565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * you may not use this file except in compliance with the License. 665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * You may obtain a copy of the License at 765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * 865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * http://www.apache.org/licenses/LICENSE-2.0 965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * 1065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * Unless required by applicable law or agreed to in writing, software 1165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * distributed under the License is distributed on an "AS IS" BASIS, 1265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * See the License for the specific language governing permissions and 1465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn * limitations under the License. 1565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn */ 1665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 1765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#ifndef ANDROID_FILTERFW_JNI_SHADER_PROGRAM_H 1865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#define ANDROID_FILTERFW_JNI_SHADER_PROGRAM_H 1965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 2065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#include <jni.h> 2165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 2265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#include "native/core/value.h" 2365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 2465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#ifdef __cplusplus 2565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Rennextern "C" { 2665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#endif 2765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 2865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 2965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_allocate(JNIEnv* env, 3065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 3165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject gl_env, 3265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jstring vertex_shader, 3365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jstring fragment_shader); 3465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 3565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 3665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_deallocate(JNIEnv* env, jobject thiz); 3765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 3865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 3965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_compileAndLink(JNIEnv* env, jobject thiz); 4065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 4165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 4265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setUniformValue(JNIEnv* env, 4365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 4465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jstring key, 4565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject value); 4665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 4765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jobject JNICALL 4865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_getUniformValue(JNIEnv* env, 4965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 5065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jstring key); 5165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 5265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 5365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_shaderProcess(JNIEnv* env, 5465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 5565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobjectArray inputs, 5665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject output); 5765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 5865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jobject JNICALL 5965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_nativeCreateIdentity(JNIEnv* env, 6065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jclass clazz, 6165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject gl_env); 6265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 6365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 6465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setSourceRegion(JNIEnv* env, 6565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 6665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x0, 6765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y0, 6865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x1, 6965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y1, 7065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x2, 7165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y2, 7265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x3, 7365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y3); 7465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 7565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 7665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setTargetRegion(JNIEnv* env, 7765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 7865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x0, 7965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y0, 8065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x1, 8165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y1, 8265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x2, 8365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y2, 8465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat x3, 8565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat y3); 8665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 8765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 8865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderClearsOutput(JNIEnv* env, 8965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 9065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jboolean clears); 9165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 9265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 9365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderClearColor(JNIEnv* env, 9465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 9565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat r, 9665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat g, 9765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloat b); 9865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 9965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 10065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderBlendEnabled(JNIEnv* env, 10165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 10265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jboolean enable); 10365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 10465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 10565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderBlendFunc(JNIEnv* env, 10665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 10765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint sfactor, 10865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint dfactor); 10965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 11065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderDrawMode(JNIEnv* env, 11165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 11265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint draw_mode); 11365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 11465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 11565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderTileCounts(JNIEnv* env, 11665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 11765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint x_count, 11865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint y_count); 11965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 12065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 12165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderVertexCount(JNIEnv* env, 12265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 12365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint vertex_count); 12465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 12565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 12665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_beginShaderDrawing(JNIEnv* env, jobject thiz); 12765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 12865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 12965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderAttributeValues(JNIEnv* env, 13065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 13165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jstring attr_name, 13265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jfloatArray values, 13365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint component_count); 13465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 13565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJNIEXPORT jboolean JNICALL 13665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius RennJava_android_filterfw_core_ShaderProgram_setShaderAttributeVertexFrame(JNIEnv* env, 13765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject thiz, 13865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jstring attr_name, 13965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jobject vertex_frame, 14065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint type, 14165953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint component_count, 14265953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint stride, 14365953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jint offset, 14465953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn jboolean normalize); 14565953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 14665953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#ifdef __cplusplus 14765953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn} 14865953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#endif 14965953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn 15065953da4636fbf5f0a24b8f5f2b5fa7d76ff13d9Marius Renn#endif // ANDROID_FILTERFW_JNI_SHADER_PROGRAM_H 151