Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
7124a7d9
Commit
7124a7d9
authored
Jun 02, 2017
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wineandroid: Add a header for some of the Android native APIs and data structures.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
2645cc2a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
234 additions
and
0 deletions
+234
-0
android.h
dlls/wineandroid.drv/android.h
+1
-0
android_native.h
dlls/wineandroid.drv/android_native.h
+233
-0
No files found.
dlls/wineandroid.drv/android.h
View file @
7124a7d9
...
...
@@ -32,6 +32,7 @@
#include "wingdi.h"
#include "winuser.h"
#include "wine/gdi_driver.h"
#include "android_native.h"
/**************************************************************************
...
...
dlls/wineandroid.drv/android_native.h
0 → 100644
View file @
7124a7d9
/*
* Android native system definitions
*
* Copyright 2013 Alexandre Julliard
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/* Copy of some Android native structures to avoid depending on the Android source */
/* Hopefully these won't change too frequently... */
#ifndef __WINE_ANDROID_NATIVE_H
#define __WINE_ANDROID_NATIVE_H
/* Native window definitions */
typedef
struct
native_handle
{
int
version
;
int
numFds
;
int
numInts
;
int
data
[
0
];
}
native_handle_t
;
typedef
const
native_handle_t
*
buffer_handle_t
;
struct
android_native_base_t
{
int
magic
;
int
version
;
void
*
reserved
[
4
];
void
(
*
incRef
)(
struct
android_native_base_t
*
base
);
void
(
*
decRef
)(
struct
android_native_base_t
*
base
);
};
typedef
struct
android_native_rect_t
{
int32_t
left
;
int32_t
top
;
int32_t
right
;
int32_t
bottom
;
}
android_native_rect_t
;
struct
ANativeWindowBuffer
{
struct
android_native_base_t
common
;
int
width
;
int
height
;
int
stride
;
int
format
;
int
usage
;
void
*
reserved
[
2
];
buffer_handle_t
handle
;
void
*
reserved_proc
[
8
];
};
struct
ANativeWindow
{
struct
android_native_base_t
common
;
uint32_t
flags
;
int
minSwapInterval
;
int
maxSwapInterval
;
float
xdpi
;
float
ydpi
;
intptr_t
oem
[
4
];
int
(
*
setSwapInterval
)(
struct
ANativeWindow
*
window
,
int
interval
);
int
(
*
dequeueBuffer_DEPRECATED
)(
struct
ANativeWindow
*
window
,
struct
ANativeWindowBuffer
**
buffer
);
int
(
*
lockBuffer_DEPRECATED
)(
struct
ANativeWindow
*
window
,
struct
ANativeWindowBuffer
*
buffer
);
int
(
*
queueBuffer_DEPRECATED
)(
struct
ANativeWindow
*
window
,
struct
ANativeWindowBuffer
*
buffer
);
int
(
*
query
)(
const
struct
ANativeWindow
*
window
,
int
what
,
int
*
value
);
int
(
*
perform
)(
struct
ANativeWindow
*
window
,
int
operation
,
...
);
int
(
*
cancelBuffer_DEPRECATED
)(
struct
ANativeWindow
*
window
,
struct
ANativeWindowBuffer
*
buffer
);
int
(
*
dequeueBuffer
)(
struct
ANativeWindow
*
window
,
struct
ANativeWindowBuffer
**
buffer
,
int
*
fenceFd
);
int
(
*
queueBuffer
)(
struct
ANativeWindow
*
window
,
struct
ANativeWindowBuffer
*
buffer
,
int
fenceFd
);
int
(
*
cancelBuffer
)(
struct
ANativeWindow
*
window
,
struct
ANativeWindowBuffer
*
buffer
,
int
fenceFd
);
};
enum
native_window_query
{
NATIVE_WINDOW_WIDTH
=
0
,
NATIVE_WINDOW_HEIGHT
=
1
,
NATIVE_WINDOW_FORMAT
=
2
,
NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS
=
3
,
NATIVE_WINDOW_QUEUES_TO_WINDOW_COMPOSER
=
4
,
NATIVE_WINDOW_CONCRETE_TYPE
=
5
,
NATIVE_WINDOW_DEFAULT_WIDTH
=
6
,
NATIVE_WINDOW_DEFAULT_HEIGHT
=
7
,
NATIVE_WINDOW_TRANSFORM_HINT
=
8
,
NATIVE_WINDOW_CONSUMER_RUNNING_BEHIND
=
9
};
enum
native_window_perform
{
NATIVE_WINDOW_SET_USAGE
=
0
,
NATIVE_WINDOW_CONNECT
=
1
,
NATIVE_WINDOW_DISCONNECT
=
2
,
NATIVE_WINDOW_SET_CROP
=
3
,
NATIVE_WINDOW_SET_BUFFER_COUNT
=
4
,
NATIVE_WINDOW_SET_BUFFERS_GEOMETRY
=
5
,
NATIVE_WINDOW_SET_BUFFERS_TRANSFORM
=
6
,
NATIVE_WINDOW_SET_BUFFERS_TIMESTAMP
=
7
,
NATIVE_WINDOW_SET_BUFFERS_DIMENSIONS
=
8
,
NATIVE_WINDOW_SET_BUFFERS_FORMAT
=
9
,
NATIVE_WINDOW_SET_SCALING_MODE
=
10
,
NATIVE_WINDOW_LOCK
=
11
,
NATIVE_WINDOW_UNLOCK_AND_POST
=
12
,
NATIVE_WINDOW_API_CONNECT
=
13
,
NATIVE_WINDOW_API_DISCONNECT
=
14
,
NATIVE_WINDOW_SET_BUFFERS_USER_DIMENSIONS
=
15
,
NATIVE_WINDOW_SET_POST_TRANSFORM_CROP
=
16
};
enum
native_window_api
{
NATIVE_WINDOW_API_EGL
=
1
,
NATIVE_WINDOW_API_CPU
=
2
,
NATIVE_WINDOW_API_MEDIA
=
3
,
NATIVE_WINDOW_API_CAMERA
=
4
};
enum
android_pixel_format
{
PF_RGBA_8888
=
1
,
PF_RGBX_8888
=
2
,
PF_RGB_888
=
3
,
PF_RGB_565
=
4
,
PF_BGRA_8888
=
5
,
PF_RGBA_5551
=
6
,
PF_RGBA_4444
=
7
};
/* Hardware module definitions */
struct
hw_module_methods_t
;
struct
hw_device_t
;
struct
android_ycbcr
;
struct
hw_module_t
{
uint32_t
tag
;
uint16_t
module_api_version
;
uint16_t
hal_api_version
;
const
char
*
id
;
const
char
*
name
;
const
char
*
author
;
struct
hw_module_methods_t
*
methods
;
void
*
dso
;
void
*
reserved
[
32
-
7
];
};
struct
hw_module_methods_t
{
int
(
*
open
)(
const
struct
hw_module_t
*
module
,
const
char
*
id
,
struct
hw_device_t
**
device
);
};
struct
hw_device_t
{
uint32_t
tag
;
uint32_t
version
;
struct
hw_module_t
*
module
;
void
*
reserved
[
12
];
int
(
*
close
)(
struct
hw_device_t
*
device
);
};
struct
gralloc_module_t
{
struct
hw_module_t
common
;
int
(
*
registerBuffer
)(
struct
gralloc_module_t
const
*
module
,
buffer_handle_t
handle
);
int
(
*
unregisterBuffer
)(
struct
gralloc_module_t
const
*
module
,
buffer_handle_t
handle
);
int
(
*
lock
)(
struct
gralloc_module_t
const
*
module
,
buffer_handle_t
handle
,
int
usage
,
int
l
,
int
t
,
int
w
,
int
h
,
void
**
vaddr
);
int
(
*
unlock
)(
struct
gralloc_module_t
const
*
module
,
buffer_handle_t
handle
);
int
(
*
perform
)(
struct
gralloc_module_t
const
*
module
,
int
operation
,
...
);
int
(
*
lock_ycbcr
)(
struct
gralloc_module_t
const
*
module
,
buffer_handle_t
handle
,
int
usage
,
int
l
,
int
t
,
int
w
,
int
h
,
struct
android_ycbcr
*
ycbcr
);
void
*
reserved_proc
[
6
];
};
#define ANDROID_NATIVE_MAKE_CONSTANT(a,b,c,d) \
(((unsigned)(a)<<24)|((unsigned)(b)<<16)|((unsigned)(c)<<8)|(unsigned)(d))
#define ANDROID_NATIVE_WINDOW_MAGIC \
ANDROID_NATIVE_MAKE_CONSTANT('_','w','n','d')
#define ANDROID_NATIVE_BUFFER_MAGIC \
ANDROID_NATIVE_MAKE_CONSTANT('_','b','f','r')
enum
gralloc_usage
{
GRALLOC_USAGE_SW_READ_NEVER
=
0x00000000
,
GRALLOC_USAGE_SW_READ_RARELY
=
0x00000002
,
GRALLOC_USAGE_SW_READ_OFTEN
=
0x00000003
,
GRALLOC_USAGE_SW_READ_MASK
=
0x0000000F
,
GRALLOC_USAGE_SW_WRITE_NEVER
=
0x00000000
,
GRALLOC_USAGE_SW_WRITE_RARELY
=
0x00000020
,
GRALLOC_USAGE_SW_WRITE_OFTEN
=
0x00000030
,
GRALLOC_USAGE_SW_WRITE_MASK
=
0x000000F0
,
GRALLOC_USAGE_HW_TEXTURE
=
0x00000100
,
GRALLOC_USAGE_HW_RENDER
=
0x00000200
,
GRALLOC_USAGE_HW_2D
=
0x00000400
,
GRALLOC_USAGE_HW_COMPOSER
=
0x00000800
,
GRALLOC_USAGE_HW_FB
=
0x00001000
,
GRALLOC_USAGE_HW_VIDEO_ENCODER
=
0x00010000
,
GRALLOC_USAGE_HW_CAMERA_WRITE
=
0x00020000
,
GRALLOC_USAGE_HW_CAMERA_READ
=
0x00040000
,
GRALLOC_USAGE_HW_CAMERA_ZSL
=
0x00060000
,
GRALLOC_USAGE_HW_CAMERA_MASK
=
0x00060000
,
GRALLOC_USAGE_HW_MASK
=
0x00071F00
,
GRALLOC_USAGE_EXTERNAL_DISP
=
0x00002000
,
GRALLOC_USAGE_PROTECTED
=
0x00004000
,
GRALLOC_USAGE_PRIVATE_0
=
0x10000000
,
GRALLOC_USAGE_PRIVATE_1
=
0x20000000
,
GRALLOC_USAGE_PRIVATE_2
=
0x40000000
,
GRALLOC_USAGE_PRIVATE_3
=
0x80000000
,
GRALLOC_USAGE_PRIVATE_MASK
=
0xF0000000
,
};
#define GRALLOC_HARDWARE_MODULE_ID "gralloc"
extern
int
hw_get_module
(
const
char
*
id
,
const
struct
hw_module_t
**
module
);
#endif
/* __WINE_ANDROID_NATIVE_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment