首页 > 其他分享 >Android 使用opengles部分记录

Android 使用opengles部分记录

时间:2023-03-10 14:11:58浏览次数:45  
标签:__ glm 记录 opengles jfloat float TAG Android include

关于旋转和旋转轴

参考:Android使用OpenGL ES 3.0实现随手指旋转3D立方体

glm库

https://github.com/g-truc/glm

下载 https://github.com/g-truc/glm/releases/download/0.9.9.8/glm-0.9.9.8.zip

使用

新建一个cpp项目或者module

解压glm 把 glm拷贝到include目录

配置CMakeLists.txt

使用

#include <jni.h>
#include <string>
#include <android/log.h>

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

#define TAG "GLM-JNI-TAG"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG , __VA_ARGS__);
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG , __VA_ARGS__);
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG , __VA_ARGS__);extern "C"
JNIEXPORT jfloatArray JNICALL
Java_com_xx_libglm_GlmLib_cross(JNIEnv *env, jobject thiz, jfloat x, jfloat y, jfloat z,
                                  jfloat x2, jfloat y2, jfloat z2) {
    glm::vec3 cross = glm::cross(glm::vec3(x,y,z), glm::vec3(x2,y2, z2));
    jfloatArray result = env->NewFloatArray(3);
    float* data = glm::value_ptr(cross);
    env->SetFloatArrayRegion(result,0,3,data);
    return result;
}

Java

public class GlmLib {

    // Used to load the 'libglm' library on application startup.
    static {
        System.loadLibrary("libglm");
    }

    /**
     * A native method that is implemented by the 'libglm' native library,
     * which is packaged with this application.
     */
    public native String stringFromJNI();

    public native float[] cross(float x,float y, float z,float x2,float y2,float z2);
}

标签:__,glm,记录,opengles,jfloat,float,TAG,Android,include
From: https://www.cnblogs.com/Jieth/p/17203149.html

相关文章

  • androidstudio去掉更新提示
    Ctrl+shift+s打开设置......
  • 记录一个服务器数据库被偷事件
    在项目中突然发现服务器中数据库连不上了,然后去服务器中登陆也不好使,报错误密码然后设置了跳过密码校验,进去之后查看用户,发现root用户不在了又通过这位老哥的方法添加了r......
  • 了解以下RFID(关于我Android端竞赛方面的)
    射频识别(RFID)是RadioFrequencyIdentification的缩写。无线射频识别即射频识别技术(RadioFrequencyIdentification,RFID),是自动识别技术的一种,通过无线射频方式进行非接......
  • [vp记录] 2021 Summer Petrozavodsk Camp, Day 3: IQ test (XXII Open Cup, Grand Pri
    2021SummerPetrozavodskCamp,Day3:IQtest(XXIIOpenCup,GrandPrixofIMO)A(性质,转化)发现如果存在\(b\)中存在\(0\),那么直接构造\(b_1,0,b_2,0,\dots......
  • AmpliGraph1.4 使用记录
    参考官方文档:https://docs.ampligraph.org/en/1.4.0/index.html由于笔者的电脑装最新的Ampligrah2.0时总会报错,所以装的老版本1.4。安装:conda、CUDA和CUDnn的安......
  • 【LeetCode回溯算法#05】分割回文串(复习双指针判断回文以及substr函数使用记录)
    分割回文串力扣题目链接给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。回文串是正着读和反着读都一样的字符串。示例......
  • 学习记录(3.9)
    学习时长:6h代码行数:约60行今天上午继续学习工程数学,学习了几种算法,并且深刻了解了二次函数的美。由于上午在忙卫生联查,所以没有进行其它学习工作。今天......
  • 记录一下linux系统编译C++版opencv
    安装:https://blog.csdn.net/NeoZng/article/details/126065521装完后:查看头文件和库文件目录:pkg-config--libsopencv4pkg-config--cflagsopencv4查看OpenCV版本......
  • js的一些设计模式概念记录
    工厂模式functioncreatePerson(name,age,job){leto=newObject();o.name=name;o.age=age;o.job=job;o.sayName=function(){console.lo......
  • spring mvc 学习记录
    2023年3月9日0.工作流程1.spring-boot-starter-web在pom.xml中加入,用于快速配置web项目,加入该配置后运行就可做web后台使用<dependency> <groupId>org.springframe......