![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 59
Niap.pr
邮箱:niap.pr@gmail.com
展开
-
Android JNI利用opengl渲染文字 (三)
这篇文章需要渲染一个文字渲染出来。文章的来源参考https://learnopengl-cn.github.io/06%20In%20Practice/02%20Text%20Rendering/opengl渲染文字的原理freetype的作用是把字体文件从一个文件变成一个点阵图,并且会计算出文字的大小。对于opengl,只需要把这个点阵图转换成texture传入显卡中,当渲染的时候,把点阵图加上颜色即可。渲染文字的shader这里,创建shader,创建program等等操作就不再赘述了,可以.原创 2021-09-09 12:04:24 · 509 阅读 · 0 评论 -
Android JNI利用opengl渲染文字 (二)
上篇文章准备了opengl渲染图像的环境。这片文章要做的是把freetype加载到程序中,并可以从路径中加载字体。编译Android平台上的freetypehttps://www.cnblogs.com/freedreamnight/p/14930341.html这篇文章写的十分详细,要注意的是,他这里用的是静态库,我自己使用的是动态库,只需要删除–enable-static这个参数就行了。集成freetype到项目中在项目app/src/main/cpp,把头文件放入对应的目录,其实不用在意,.原创 2021-09-09 11:28:06 · 499 阅读 · 0 评论 -
Android JNI利用opengl渲染文字 (一)
Learning opengl 中关于文字渲染的部分,写的非常详细,但是在android jni环境下如何利用opengl的能力,渲染出文字,找了一圈,确实没有特别讲这块的内容,这里涉及到几点比较重要的点,首先如何把surface设置到c++层,其次如何家在freetype库,第三,渲染文字shader在android下如何写。创建Native C++项目名字可以随便起,不过语言最好选择Kotilin,跑起来的话修改activity_main.xml删除label组建,添加一个surfacev.原创 2021-09-09 10:07:48 · 653 阅读 · 0 评论 -
Opengl中NV12和YUV420p的fragment Shader(Android平台)
项目中在android平台上,需要对nv12的yuv数据支持,其实在cpu中利用libyuv可以很快速的转换,但是为了性能,能直接从渲染器中支持是再好不过了。Fragment Shader的代码texture2D()函数生成的对象有rgba四个成员变量,在yuv中,rgb是一样的(猜的,因为别人的shader用的r,我这个用的是g),这里需要非常注意的是,在代码中glTexImage2D函数,就是创建texture的函数中,nv12因为是uv放在一起的,所以它的类型应该是GL_LUMINANCE_.原创 2021-09-01 10:09:59 · 605 阅读 · 0 评论