0
給定一個GraphicBufferProducer,我創建一個Surface,然後檢索ANativeWindow。使用ANativeWindow_lock我得到一個指向緩衝區的指針。使用緩衝區,我在緩衝區中執行一個memcpy。問題是,我在這個緩衝區上繪製的任何東西都被限制在少於25%的屏幕上。請記住,buffer.width和buffer.height的尺寸非常接近屏幕本身的分辨率。使用ANativeWindow繪製表面貼圖/表面貼圖
我的問題是,爲什麼緩衝區只覆蓋屏幕的一小部分?我如何確保它覆蓋了大部分(如果不是全部)屏幕?對於參考下面的代碼:
ANativeWindow_Buffer buffer;
// window is created from a "new Surface(sp<IGraphicBufferProducer>)"
if (ANativeWindow_lock(window, &buffer, NULL) == 0) {
// For testing purposes just put grey in the buffer
memcpy(buffer.bits, 0x99, buffer.width * buffer.height);
ANativeWindow_unlockAndPost(window);
}
您是絕對正確的。我應該乘以4。 –