Android 在显示帧缓冲区之前对其应用过滤器
我想对android设备屏幕上显示的任何内容应用某种图像过滤器。图像过滤器的最简单示例可以是在帧缓冲区显示在屏幕上之前应用到帧缓冲区的深褐色过滤器。为了确保这一点,我希望在整个系统范围内,而不仅仅是在我的应用程序中使用此效果。要在整个系统范围内使用此效果,您需要修改SurfaceFlinger以应用过滤器 在Android 5.0棒棒糖中,您可以看到一个原型代码实现,该代码修改输出以改善色盲人群的对比度。请参阅中的代码及其如何连接到Dodisplay Composition中。注意:这将在曲面合成期间应用效果,并因此禁用Hardware ComposerAndroid 在显示帧缓冲区之前对其应用过滤器,android,graphics,surfaceflinger,Android,Graphics,Surfaceflinger,我想对android设备屏幕上显示的任何内容应用某种图像过滤器。图像过滤器的最简单示例可以是在帧缓冲区显示在屏幕上之前应用到帧缓冲区的深褐色过滤器。为了确保这一点,我希望在整个系统范围内,而不仅仅是在我的应用程序中使用此效果。要在整个系统范围内使用此效果,您需要修改SurfaceFlinger以应用过滤器 在Android 5.0棒棒糖中,您可以看到一个原型代码实现,该代码修改输出以改善色盲人群的对比度。请参阅中的代码及其如何连接到Dodisplay Composition中。注意:这将在曲面合
从一个应用程序无法在整个系统范围内完成此操作。如果有,可能会对系统造成各种破坏。在android 5.0中,他们使用RenderEngine使用颜色矩阵渲染颜色效果。我实际上是在安卓4.3上工作…我尝试了一些事情,比如修改onFrameAvailable中的缓冲区和一些其他功能,但似乎没有任何效果…考虑到我想在安卓4.3上这样做,你能给我指出正确的方向吗?你可能需要支持GLES2。RenderEngine被分解为允许GLES1和GLES2工作,但GLES1仅用于非GPU加速的仿真器。GLES2更新的动机之一是能够产生你想要的效果。另一种选择是找出如何在GLES1中实现你想要的效果。我不知道OpenGL或GLES。不过我肯定会研究它。。。我更感兴趣的是某种非单字符缓冲区,我可以直接应用任何类型的过滤器,因为我以前不知道OpenGL或GLE。在现代设备上,软件渲染合成缓冲区是不存在的。即使有,考虑到当前显示器上的像素数,性能也会非常糟糕。有关详细信息,请参阅。