1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef __eglplatform_shim_h_ 6 #define __eglplatform_shim_h_ 7 8 #include <stdbool.h> 9 #include <stdint.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #define SHIM_EXPORT __attribute__((visibility("default"))) 16 17 // Simple integral native window identifier. 18 // NB: Unlike EGLNativeWindowType, this will be shipped between processes. 19 typedef int ShimNativeWindowId; 20 #define SHIM_NO_WINDOW_ID ((ShimNativeWindowId)0) 21 22 // Opaque versions of EGL types (as used by ozone). 23 typedef intptr_t ShimEGLNativeDisplayType; 24 typedef intptr_t ShimEGLNativeWindowType; 25 26 // QueryString targets 27 #define SHIM_EGL_LIBRARY 0x1001 28 #define SHIM_GLES_LIBRARY 0x1002 29 30 // CreateWindow / QueryWindow attributes 31 #define SHIM_WINDOW_WIDTH 0x0001 32 #define SHIM_WINDOW_HEIGHT 0x0002 33 34 // Query global implementation information. 35 SHIM_EXPORT const char* ShimQueryString(int name); 36 37 // Init/terminate library. 38 SHIM_EXPORT bool ShimInitialize(void); 39 SHIM_EXPORT bool ShimTerminate(void); 40 41 // Create window handle & query window properties (called from browser process). 42 SHIM_EXPORT ShimNativeWindowId ShimCreateWindow(void); 43 SHIM_EXPORT bool ShimQueryWindow(ShimNativeWindowId window_id, 44 int attribute, 45 int* value); 46 SHIM_EXPORT bool ShimDestroyWindow(ShimNativeWindowId window_id); 47 48 // Manage actual EGL platform objects (called from GPU process). 49 SHIM_EXPORT ShimEGLNativeDisplayType ShimGetNativeDisplay(void); 50 SHIM_EXPORT ShimEGLNativeWindowType 51 ShimGetNativeWindow(ShimNativeWindowId native_window_id); 52 SHIM_EXPORT bool ShimReleaseNativeWindow(ShimEGLNativeWindowType native_window); 53 54 #ifdef __cplusplus 55 } 56 #endif 57 58 #endif /* __eglplatform_shim_h */ 59