项目场景:
因为无线投屏项目的反向传屏OPS和Mac端的时候,需要显示鼠标,当前方案是在Native层将坐标通过反射发到Java层进行绘制,由于这是一个高频调用的方法(虽然我知道JVM对高频的反射会)。所以,打算编译个Skia,自己在Native层画一下简单图形。
问题描述:
编译完Skia的动态链接库,把头文件CV到项目里,使用GrContext::MakeGL时发现这个函数用不了。
原因分析:
查看了下头文件,使用SK_GL宏定义进行选择编译了,这部分代码就没包进来。
解决方案:
还是按解决过程重现下吧:
- 在编译自己的库的时候,加上这个宏定义
—> 这当然不行,这部分的实现代码在libskia.so里(先这么认为,可能放在其他链接库里,但这并不重要),毕竟实际上h只是帮助查找的,编译成目标文件.o,链接进elf的是.c/.cpp
<不过,话说回来,如果是你自己当前源码里有这种宏定义操作,保证其在该头文件调用前,加上需要的宏定义是可以解决的> - 看了下BUILD.gn,这不是有个skia_use_gl可以配置的嘛