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