summaryrefslogtreecommitdiffstats
path: root/ui/ozone/platform/egltest/eglplatform_shim.h
blob: ce7cce9838f06038c0b59f5e1bc2c05ad6d7fbb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// 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 */