#include #include #include #include #include #include "ui.hpp" #ifndef __APPLE__ #define GLFW_INCLUDE_ES2 #else #define GLFW_INCLUDE_GLCOREARB #endif #define GLFW_INCLUDE_GLEXT #include typedef struct FramebufferState FramebufferState; typedef struct TouchState TouchState; extern "C" { FramebufferState* framebuffer_init( const char* name, int32_t layer, int alpha, int *out_w, int *out_h) { glfwInit(); #ifndef __APPLE__ glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); #else glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); #endif glfwWindowHint(GLFW_RESIZABLE, 0); GLFWwindow* window; window = glfwCreateWindow(1920, 1080, "ui", NULL, NULL); if (!window) { printf("glfwCreateWindow failed\n"); } glfwMakeContextCurrent(window); glfwSwapInterval(1); // clear screen glClearColor(0.2f, 0.2f, 0.2f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); framebuffer_swap((FramebufferState*)window); if (out_w) *out_w = 1920; if (out_h) *out_h = 1080; return (FramebufferState*)window; } void framebuffer_set_power(FramebufferState *s, int mode) { } void framebuffer_swap(FramebufferState *s) { glfwSwapBuffers((GLFWwindow*)s); glfwPollEvents(); } bool set_brightness(int brightness) { return true; } void touch_init(TouchState *s) { printf("touch_init\n"); } int touch_poll(TouchState *s, int* out_x, int* out_y, int timeout) { return -1; } int touch_read(TouchState *s, int* out_x, int* out_y) { return -1; } } #include "sound.hpp" bool Sound::init(int volume) { return true; } bool Sound::play(AudibleAlert alert) { printf("play sound: %d\n", (int)alert); return true; } void Sound::stop() {} void Sound::setVolume(int volume) {} Sound::~Sound() {} #include "common/visionimg.h" #include GLuint visionimg_to_gl(const VisionImg *img, EGLImageKHR *pkhr, void **pph) { unsigned int texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, *pph); glGenerateMipmap(GL_TEXTURE_2D); *pkhr = (EGLImageKHR)1; // not NULL return texture; } void visionimg_destroy_gl(EGLImageKHR khr, void *ph) { // empty }