我正在使用SDL创建c ++的GUI库,该库遵循Google Material Design指南。我需要对FAB按钮的波纹进行圆形剪切(对于常规按钮也需要进行圆角矩形剪切),但是我找不到一种很好的方法。
我的第一个想法是首先复制将要绘制视图的区域的像素,然后绘制视图,然后使用先前复制的,在视图顶部带有右alpha的像素绘制圆周围的像素,使它看起来像修剪成一个锯齿状的圆圈。问题是,SDL_RenderReadPixels函数非常慢,我想以一种非常快的方式执行此操作,因为它只是较大的GUI系统的一小部分。
Chrome渲染器如何执行此操作?它是否绘制需要裁剪的每个div,然后遮罩该纹理并将其复制到背景上?那不是很慢吗?它使用着色器吗?