我想从本机代码提供表面缓冲区。所以我从 SurfaceView 的 SurfaceHolder 的 getSurface 方法中得到了表面。现在我想要的是从本机使用它来提供缓冲区来渲染图像。我已经包含了 SurfaceClinger/Surface.h。但是当我尝试获取 mSurface 属性时,它会抛出错误,说 java.lang.NoSuchFieldException for mSurface。在这方面的任何建议都会有所帮助。
代码片段:
Surface mSurface;
SurfaceHolder mSurfaceHolder;
mSurface = mSurfaceHolder.getSurface();
try{
class myClass = mSurface.getClass();
String fieldName = "mSurface";
Field field = myClass.getDeclaredField(fieldName);
field.setAccesssible(true);
int surfacePtr = field.getInt(mSurface);
nativeInterface.DrawOnSurface(surfacePtr);
}
catch(Exception ex){}
谢谢。