2015-07-11 58 views
0

我試圖通過TangoService_connectOnFrameAvailable連接我的回調函數。我能夠連接它並訪問TangoImageBuffer。但是,我注意到緩衝區是const,無法更新。爲了某些圖像處理目的,我需要修改圖像數據。像輪廓檢測並顯示它。從本機回調中獲取和修改圖像緩衝區

所以我的問題是我們如何改變TangoJNINative_render方法來更新gl buffer

這裏是renederer函數的樣子:

Java_com_project_TangoJNINative_render(
     JNIEnv*, jobject) { 
    // Let's say I have image buffer here called "uint_8t* buffer" 
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f); 
    glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); 

    glViewport(0, 0, screen_width, screen_height); 

    // UpdateTexture() 
    tango_handler.UpdateColorTexture()); 
    /// I NEED SOME CODE HERE TO set gl buffer 
    video_overlay->Render(glm::mat4(1.0f), glm::mat4(1.0f));  
} 

感謝您的幫助。

+0

這和http://stackoverflow.com/questions/31359081/modify-and-update-camera-frame-via-glsurfaceview有一些重疊 - 這是一個不同的問題嗎? – fadden

+0

@fadden您提到的鏈接指的是更普遍的問題。這個是專門爲'Tango'設計的 –

回答

0

與常規相機API類似,您可以接收TangoImageBuffer,處理像素並將它們分配給自己的紋理(不是Tango提供的紋理),並顯示此紋理而不是TextureRenderer等。