我目前正在研究使用OpenGL和OpenGL ES从SVG文件渲染vectorgraphics的可能性。 我打算针对Windows和Android。 我的理想解决scheme是从一个给定的SVG文件生成一个多边形三angular剖分的最小C库。 然后这将生成标准的OpenGL或OpenGL ES调用,并在重绘时使用显示列表或vbo进行优化。 我只需绘制一个显示列表,在翻译和旋转之后绘制vector图,从而可以将其与其他OpenGL调用混合使用。 到目前为止,我看到的build议是首先使用QT或开罗。 – 这不是一个选项,因为我希望pipe理我自己的OpenGL上下文而不是臃肿的库(在我试图实现的上下文中)。 这也不适用于Android。 第二个select是使用渲染纹理的库。 虽然这对于静态vectorgraphics来说可能是好的,但对于经常出现缩放和旋转的游戏来说,这并不是一个有效或可行的select。 第三,有使用OpenVG的可能性。 OpenVG规范(ShivaVG等)的一些开源实现,但我还没有find一个能够在运行时从给定的SVG文件生成适当的OpenVG调用的库,我看不到如何优化我们不妨用显示列表或vbo。 所有三种方法都受到限制。 如果没有其他解决scheme,我认为最有希望的select是使用OpenVG实现。 所以我的问题是,有没有图书馆可以做我想要的,或者接近我想要的? 如果没有,为什么不呢? 试试从头开始做更好吗?
dojo中的getBoundingBox()的文档说: 返回形状的边界框。 文字形状是一个基于点的对象,所以它没有定义一个边界框。 我不明白。 为web的vectorgraphics的任何理智的实现包括文本对象的边框(raphaelJS和jQuery的SVG)! 这里,“基于点的对象”是什么意思? 我没有发现Group对象的边界框的引用,但是当使用最新的Dojo版本时, getBoundingbox对Groups也返回null 我可以很容易地为矩形自己做边界框,但唯一真正有问题的形状我需要边界框是组和文本。 我结束了hotdojo dojo: dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();}); dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();}); 这当然只适用于SVG输出前端。 但我想知道,我错过了什么? 有没有更好的方法来做到这一点?
Android Studio现在支持21+以上的vector素材,并且会在编译时生成较低版本的png。 我有一个vector资源(从材料图标),我想改变填充颜色。 这适用于21+,但生成的PNG不会改变颜色。 有没有办法做到这一点? <vector android:height="48dp" android:viewportHeight="24.0" android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android"> <path android:fillColor="@color/primary" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>