The open source OpenXR runtime
1// Copyright 2020-2021, Collabora, Ltd.
2// SPDX-License-Identifier: BSL-1.0
3// Author: Rylie Pavlik <rylie.pavlik@collabora.com>
4// Inline implementations: do not include on its own!
5
6#pragma once
7
8#include "android.graphics.h"
9#include "android.hardware.display.h"
10#include "android.util.h"
11#include <string>
12
13namespace wrap {
14namespace android::view {
15inline int32_t Display::DEFAULT_DISPLAY() {
16 auto &data = Meta::data(true);
17 auto ret = get(data.DEFAULT_DISPLAY, data.clazz());
18 data.dropClassRef();
19 return ret;
20}
21
22inline int32_t Display::getDisplayId() const {
23 assert(!isNull());
24 return object().call<int32_t>(Meta::data().getDisplayId);
25}
26
27inline std::string Display::getName() const {
28 assert(!isNull());
29 return object().call<std::string>(Meta::data().getName);
30}
31
32inline hardware::display::DeviceProductInfo
33Display::getDeviceProductInfo() const {
34 assert(!isNull());
35 return hardware::display::DeviceProductInfo(
36 object().call<jni::Object>(Meta::data().getDeviceProductInfo));
37}
38
39inline void Display::getRealSize(graphics::Point &out_size) {
40 assert(!isNull());
41 return object().call<void>(Meta::data().getRealSize, out_size.object());
42}
43
44inline void Display::getRealMetrics(util::DisplayMetrics &out_displayMetrics) {
45 assert(!isNull());
46 return object().call<void>(Meta::data().getRealMetrics,
47 out_displayMetrics.object());
48}
49
50inline bool Surface::isValid() const {
51 assert(!isNull());
52 return object().call<bool>(Meta::data().isValid);
53}
54
55inline Surface SurfaceHolder::getSurface() {
56 assert(!isNull());
57 return Surface(object().call<jni::Object>(Meta::data().getSurface));
58}
59
60inline Display WindowManager::getDefaultDisplay() const {
61 assert(!isNull());
62 return Display(object().call<jni::Object>(Meta::data().getDefaultDisplay));
63}
64
65inline int32_t WindowManager_LayoutParams::FLAG_FULLSCREEN() {
66 return get(Meta::data().FLAG_FULLSCREEN, Meta::data().clazz());
67}
68
69inline int32_t WindowManager_LayoutParams::FLAG_NOT_FOCUSABLE() {
70 return get(Meta::data().FLAG_NOT_FOCUSABLE, Meta::data().clazz());
71}
72
73inline int32_t WindowManager_LayoutParams::FLAG_NOT_TOUCHABLE() {
74 return get(Meta::data().FLAG_NOT_TOUCHABLE, Meta::data().clazz());
75}
76
77inline int32_t WindowManager_LayoutParams::TYPE_APPLICATION() {
78 return get(Meta::data().TYPE_APPLICATION, Meta::data().clazz());
79}
80
81inline int32_t WindowManager_LayoutParams::TYPE_APPLICATION_OVERLAY() {
82 return get(Meta::data().TYPE_APPLICATION_OVERLAY, Meta::data().clazz());
83}
84
85inline WindowManager_LayoutParams WindowManager_LayoutParams::construct() {
86 return WindowManager_LayoutParams(
87 Meta::data().clazz().newInstance(Meta::data().init));
88}
89
90inline WindowManager_LayoutParams
91WindowManager_LayoutParams::construct(int32_t type) {
92 return WindowManager_LayoutParams(
93 Meta::data().clazz().newInstance(Meta::data().init1, type));
94}
95
96inline WindowManager_LayoutParams
97WindowManager_LayoutParams::construct(int32_t type, int32_t flags) {
98 return WindowManager_LayoutParams(
99 Meta::data().clazz().newInstance(Meta::data().init2, type, flags));
100}
101
102inline void WindowManager_LayoutParams::setTitle(std::string const &title) {
103 assert(!isNull());
104 return object().call<void>(Meta::data().setTitle, title);
105}
106
107
108inline WindowManager_LayoutParams WindowManager_LayoutParams::construct(int32_t w, int32_t h, int32_t type,
109 int32_t flags, int32_t format) {
110 return WindowManager_LayoutParams(
111 Meta::data().clazz().newInstance(Meta::data().init4, w, h, type, flags, format));
112}
113
114
115inline int Display_Mode::getModeId() {
116 assert(!isNull());
117 return object().call<int>(Meta::data().getModeId);
118}
119
120inline int Display_Mode::getPhysicalHeight() {
121 assert(!isNull());
122 return object().call<int>(Meta::data().getPhysicalHeight);
123}
124
125inline int Display_Mode::getPhysicalWidth() {
126 assert(!isNull());
127 return object().call<int>(Meta::data().getPhysicalWidth);
128}
129
130inline float Display_Mode::getRefreshRate() {
131 assert(!isNull());
132 return object().call<float>(Meta::data().getRefreshRate);
133}
134
135} // namespace android::view
136} // namespace wrap