blob: ce7cce9838f06038c0b59f5e1bc2c05ad6d7fbb6 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef __eglplatform_shim_h_
#define __eglplatform_shim_h_
#include <stdbool.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#define SHIM_EXPORT __attribute__((visibility("default")))
// Simple integral native window identifier.
// NB: Unlike EGLNativeWindowType, this will be shipped between processes.
typedef int ShimNativeWindowId;
#define SHIM_NO_WINDOW_ID ((ShimNativeWindowId)0)
// Opaque versions of EGL types (as used by ozone).
typedef intptr_t ShimEGLNativeDisplayType;
typedef intptr_t ShimEGLNativeWindowType;
// QueryString targets
#define SHIM_EGL_LIBRARY 0x1001
#define SHIM_GLES_LIBRARY 0x1002
// CreateWindow / QueryWindow attributes
#define SHIM_WINDOW_WIDTH 0x0001
#define SHIM_WINDOW_HEIGHT 0x0002
// Query global implementation information.
SHIM_EXPORT const char* ShimQueryString(int name);
// Init/terminate library.
SHIM_EXPORT bool ShimInitialize(void);
SHIM_EXPORT bool ShimTerminate(void);
// Create window handle & query window properties (called from browser process).
SHIM_EXPORT ShimNativeWindowId ShimCreateWindow(void);
SHIM_EXPORT bool ShimQueryWindow(ShimNativeWindowId window_id,
int attribute,
int* value);
SHIM_EXPORT bool ShimDestroyWindow(ShimNativeWindowId window_id);
// Manage actual EGL platform objects (called from GPU process).
SHIM_EXPORT ShimEGLNativeDisplayType ShimGetNativeDisplay(void);
SHIM_EXPORT ShimEGLNativeWindowType
ShimGetNativeWindow(ShimNativeWindowId native_window_id);
SHIM_EXPORT bool ShimReleaseNativeWindow(ShimEGLNativeWindowType native_window);
#ifdef __cplusplus
}
#endif
#endif /* __eglplatform_shim_h */