libnx v4.9.0
Loading...
Searching...
No Matches
types.h
Go to the documentation of this file.
1/**
2 * @file display/types.h
3 * @brief Definitions for Android-related types and enumerations.
4 * @copyright libnx Authors
5 */
6#pragma once
7#include "../types.h"
8
9// From Android PixelFormat.h & graphics-base-v1.0.h.
10enum {
11 PIXEL_FORMAT_RGBA_8888 = 1U,
12 PIXEL_FORMAT_RGBX_8888 = 2U,
13 PIXEL_FORMAT_RGB_888 = 3U,
14 PIXEL_FORMAT_RGB_565 = 4U,
15 PIXEL_FORMAT_BGRA_8888 = 5U,
16 PIXEL_FORMAT_RGBA_5551 = 6U,
17 PIXEL_FORMAT_RGBA_4444 = 7U,
18 PIXEL_FORMAT_YCRCB_420_SP = 17U,
19 PIXEL_FORMAT_RAW16 = 32U,
20 PIXEL_FORMAT_BLOB = 33U,
21 PIXEL_FORMAT_IMPLEMENTATION_DEFINED = 34U,
22 PIXEL_FORMAT_YCBCR_420_888 = 35U,
23 PIXEL_FORMAT_Y8 = 0x20203859U,
24 PIXEL_FORMAT_Y16 = 0x20363159U,
25 PIXEL_FORMAT_YV12 = 0x32315659U,
26};
27
28// From Android gralloc.h.
29enum {
30 /* buffer is never read in software */
31 GRALLOC_USAGE_SW_READ_NEVER = 0x00000000U,
32 /* buffer is rarely read in software */
33 GRALLOC_USAGE_SW_READ_RARELY = 0x00000002U,
34 /* buffer is often read in software */
35 GRALLOC_USAGE_SW_READ_OFTEN = 0x00000003U,
36 /* mask for the software read values */
37 GRALLOC_USAGE_SW_READ_MASK = 0x0000000FU,
38 /* buffer is never written in software */
39 GRALLOC_USAGE_SW_WRITE_NEVER = 0x00000000U,
40 /* buffer is rarely written in software */
41 GRALLOC_USAGE_SW_WRITE_RARELY = 0x00000020U,
42 /* buffer is often written in software */
43 GRALLOC_USAGE_SW_WRITE_OFTEN = 0x00000030U,
44 /* mask for the software write values */
45 GRALLOC_USAGE_SW_WRITE_MASK = 0x000000F0U,
46 /* buffer will be used as an OpenGL ES texture */
47 GRALLOC_USAGE_HW_TEXTURE = 0x00000100U,
48 /* buffer will be used as an OpenGL ES render target */
49 GRALLOC_USAGE_HW_RENDER = 0x00000200U,
50 /* buffer will be used by the 2D hardware blitter */
51 GRALLOC_USAGE_HW_2D = 0x00000400U,
52 /* buffer will be used by the HWComposer HAL module */
53 GRALLOC_USAGE_HW_COMPOSER = 0x00000800U,
54 /* buffer will be used with the framebuffer device */
55 GRALLOC_USAGE_HW_FB = 0x00001000U,
56 /* buffer should be displayed full-screen on an external display when
57 * possible */
58 GRALLOC_USAGE_EXTERNAL_DISP = 0x00002000U,
59 /* Must have a hardware-protected path to external display sink for
60 * this buffer. If a hardware-protected path is not available, then
61 * either don't composite only this buffer (preferred) to the
62 * external sink, or (less desirable) do not route the entire
63 * composition to the external sink. */
64 GRALLOC_USAGE_PROTECTED = 0x00004000U,
65 /* buffer may be used as a cursor */
66 GRALLOC_USAGE_CURSOR = 0x00008000U,
67 /* buffer will be used with the HW video encoder */
68 GRALLOC_USAGE_HW_VIDEO_ENCODER = 0x00010000U,
69 /* buffer will be written by the HW camera pipeline */
70 GRALLOC_USAGE_HW_CAMERA_WRITE = 0x00020000U,
71 /* buffer will be read by the HW camera pipeline */
72 GRALLOC_USAGE_HW_CAMERA_READ = 0x00040000U,
73 /* buffer will be used as part of zero-shutter-lag queue */
74 GRALLOC_USAGE_HW_CAMERA_ZSL = 0x00060000U,
75 /* mask for the camera access values */
76 GRALLOC_USAGE_HW_CAMERA_MASK = 0x00060000U,
77 /* mask for the software usage bit-mask */
78 GRALLOC_USAGE_HW_MASK = 0x00071F00U,
79 /* buffer will be used as a RenderScript Allocation */
80 GRALLOC_USAGE_RENDERSCRIPT = 0x00100000U,
81};
82
83// From Android window.h.
84/* attributes queriable with query() */
85enum {
86 NATIVE_WINDOW_WIDTH = 0,
87 NATIVE_WINDOW_HEIGHT = 1,
88 NATIVE_WINDOW_FORMAT = 2,
89//...
90// NATIVE_WINDOW_DEFAULT_WIDTH = 6, //These two return invalid data.
91// NATIVE_WINDOW_DEFAULT_HEIGHT = 7,
92};
93
94// From Android window.h.
95/* parameter for NATIVE_WINDOW_[API_][DIS]CONNECT */
96enum {
97 //...
98 /* Buffers will be queued after being filled using the CPU
99 */
100 NATIVE_WINDOW_API_CPU = 2,
101 //...
102};
103
104// From Android hardware.h.
105
106/**
107 * Transformation definitions
108 *
109 * IMPORTANT NOTE:
110 * HAL_TRANSFORM_ROT_90 is applied CLOCKWISE and AFTER HAL_TRANSFORM_FLIP_{H|V}.
111 *
112 */
113
114enum {
115 /* flip source image horizontally (around the vertical axis) */
116 HAL_TRANSFORM_FLIP_H = 0x01,
117 /* flip source image vertically (around the horizontal axis)*/
118 HAL_TRANSFORM_FLIP_V = 0x02,
119 /* rotate source image 90 degrees clockwise */
120 HAL_TRANSFORM_ROT_90 = 0x04,
121 /* rotate source image 180 degrees */
122 HAL_TRANSFORM_ROT_180 = 0x03,
123 /* rotate source image 270 degrees clockwise */
124 HAL_TRANSFORM_ROT_270 = 0x07,
125};
126
127// From Android window.h.
128/* parameter for NATIVE_WINDOW_SET_BUFFERS_TRANSFORM */
129enum {
130 /* flip source image horizontally */
131 NATIVE_WINDOW_TRANSFORM_FLIP_H = HAL_TRANSFORM_FLIP_H,
132 /* flip source image vertically */
133 NATIVE_WINDOW_TRANSFORM_FLIP_V = HAL_TRANSFORM_FLIP_V,
134 /* rotate source image 90 degrees clock-wise */
135 NATIVE_WINDOW_TRANSFORM_ROT_90 = HAL_TRANSFORM_ROT_90,
136 /* rotate source image 180 degrees */
137 NATIVE_WINDOW_TRANSFORM_ROT_180 = HAL_TRANSFORM_ROT_180,
138 /* rotate source image 270 degrees clock-wise */
139 NATIVE_WINDOW_TRANSFORM_ROT_270 = HAL_TRANSFORM_ROT_270,
140};
141
142// From Android native_handle.h.
143typedef struct {
144 int version;
145 int num_fds;
146 int num_ints;
Definition types.h:143