5
5
#define GOGGLES_V1_VOFFSET 575
6
6
#define GOGGLES_V2_VOFFSET 215
7
7
8
- static uint8_t which_fb = 0 ;
9
-
10
8
static duss_result_t pop_func (duss_disp_instance_handle_t * disp_handle ,duss_disp_plane_id_t plane_id , duss_frame_buffer_t * frame_buffer ,void * user_ctx ) {
11
9
dji_display_state_t * display_state = (dji_display_state_t * )user_ctx ;
12
- display_state -> frame_waiting = 0 ;
10
+ display_state -> frame_drawn = 0 ;
13
11
printf ("fbdebug pop_func\n" );
14
12
return 0 ;
15
13
}
@@ -21,7 +19,7 @@ dji_display_state_t *dji_display_state_alloc(uint8_t is_v2_goggles) {
21
19
display_state -> fb_1 = (duss_frame_buffer_t * )calloc (1 ,sizeof (duss_frame_buffer_t ));
22
20
display_state -> pb_0 = (duss_disp_plane_blending_t * )calloc (1 , sizeof (duss_disp_plane_blending_t ));
23
21
display_state -> is_v2_goggles = is_v2_goggles ;
24
- display_state -> frame_waiting = 0 ;
22
+ display_state -> frame_drawn = 0 ;
25
23
return display_state ;
26
24
}
27
25
@@ -280,22 +278,19 @@ void dji_display_open_framebuffer_injected(dji_display_state_t *display_state, d
280
278
}
281
279
282
280
void dji_display_push_frame (dji_display_state_t * display_state ) {
283
- // print which_fb
284
- printf ("fbdebug which_fb: %d\n" , which_fb );
285
- if (display_state -> frame_waiting == 0 ) {
286
- which_fb = !which_fb ;
287
- duss_frame_buffer_t * fb = which_fb ? display_state -> fb_1 : display_state -> fb_0 ;
281
+ if (display_state -> frame_drawn == 0 ) {
282
+ duss_frame_buffer_t * fb = display_state -> fb_0 ;
288
283
duss_hal_mem_sync (fb -> buffer , 1 );
289
- display_state -> frame_waiting = 1 ;
284
+ display_state -> frame_drawn = 1 ;
290
285
printf ("fbdebug pushing frame\n" );
291
286
duss_hal_display_push_frame (display_state -> disp_instance_handle , display_state -> plane_id , fb );
292
287
} else {
293
288
DEBUG_PRINT ("!!! Dropped frame due to pending frame push!\n" );
294
- printf ("fbdebug dropping frame\n" );
295
289
}
290
+ memcpy (display_state -> fb0_virtual_addr , display_state -> fb1_virtual_addr , sizeof (uint32_t ) * 1440 * 810 );
296
291
}
297
292
298
293
void * dji_display_get_fb_address (dji_display_state_t * display_state ) {
299
- return which_fb ? display_state -> fb1_virtual_addr : display_state -> fb0_virtual_addr ;
294
+ return display_state -> fb1_virtual_addr ;
300
295
}
301
296
0 commit comments