You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					49 lines
				
				1018 B
			
		
		
			
		
	
	
					49 lines
				
				1018 B
			| 
											6 years ago
										 | #include <stdio.h>
 | ||
|  | #include <stdlib.h>
 | ||
|  | #include <stdbool.h>
 | ||
|  | 
 | ||
|  | #include <GLES3/gl3.h>
 | ||
|  | #include <EGL/egl.h>
 | ||
|  | #include <EGL/eglext.h>
 | ||
|  | 
 | ||
|  | #include "common/framebuffer.h"
 | ||
|  | #include "common/touch.h"
 | ||
|  | 
 | ||
|  | typedef struct UIState {
 | ||
|  |   FramebufferState *fb;
 | ||
|  |   int fb_w, fb_h;
 | ||
|  |   EGLDisplay display;
 | ||
|  |   EGLSurface surface;
 | ||
|  | } UIState;
 | ||
|  | 
 | ||
|  | TouchState touch = {0};
 | ||
|  | 
 | ||
|  | void wait_for_touch() {
 | ||
|  |   int touch_x = -1, touch_y = -1;
 | ||
|  |   while (1) {
 | ||
|  |     int touched = touch_poll(&touch, &touch_x, &touch_y, 0);
 | ||
|  |     if (touched == 1) { break; }
 | ||
|  |   }
 | ||
|  | }
 | ||
|  | 
 | ||
|  | int main() {
 | ||
|  |   UIState uistate;
 | ||
|  |   UIState *s = &uistate;
 | ||
|  | 
 | ||
|  |   memset(s, 0, sizeof(UIState));
 | ||
|  |   s->fb = framebuffer_init("ui", 0x00010000, true,
 | ||
|  |                            &s->display, &s->surface, &s->fb_w, &s->fb_h);
 | ||
|  | 
 | ||
|  |   touch_init(&touch);
 | ||
|  | 
 | ||
|  |   printf("waiting for touch with screen on\n");
 | ||
|  |   framebuffer_set_power(s->fb, HWC_POWER_MODE_NORMAL);
 | ||
|  |   wait_for_touch();
 | ||
|  | 
 | ||
|  |   printf("waiting for touch with screen off\n");
 | ||
|  |   framebuffer_set_power(s->fb, HWC_POWER_MODE_OFF);
 | ||
|  |   wait_for_touch();
 | ||
|  |   printf("done\n");
 | ||
|  | }
 | ||
|  | 
 |