# pragma once 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  struct  FramebufferState  FramebufferState ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FramebufferState *  framebuffer_init ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    const  char *  name ,  int32_t  layer ,  int  alpha , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    int  * out_w ,  int  * out_h ) ; 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  framebuffer_set_power ( FramebufferState  * s ,  int  mode ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  framebuffer_swap ( FramebufferState  * s ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								bool  set_brightness ( int  brightness ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* Display power modes */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								enum  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /* The display is turned off (blanked). */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HWC_POWER_MODE_OFF       =  0 , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /* The display is turned on and configured in a low power state
  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  that  is  suitable  for  presenting  ambient  information  to  the  user , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  possibly  with  lower  fidelity  than  normal  but  greater  efficiency .  */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HWC_POWER_MODE_DOZE      =  1 , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /* The display is turned on normally. */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HWC_POWER_MODE_NORMAL    =  2 , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    /* The display is configured as in HWC_POWER_MODE_DOZE but may
  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  stop  applying  frame  buffer  updates  from  the  graphics  subsystem . 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  This  power  mode  is  effectively  a  hint  from  the  doze  dream  to 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  tell  the  hardware  that  it  is  done  drawing  to  the  display  for  the 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  time  being  and  that  the  display  should  remain  on  in  a  low  power 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  state  and  continue  showing  its  current  contents  indefinitely 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  until  the  mode  changes . 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     * 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  This  mode  may  also  be  used  as  a  signal  to  enable  hardware - based  doze 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  functionality .   In  this  case ,  the  doze  dream  is  effectively 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  indicating  that  the  hardware  is  free  to  take  over  the  display 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  and  manage  it  autonomously  to  implement  low  power  always - on  display 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								     *  functionality .  */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    HWC_POWER_MODE_DOZE_SUSPEND   =  3 , 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ;