| /* |
| * Copyright (C) 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| // TODO: Currently, most of the types are simply typedefs of uint64_t, so |
| // misusing one type as another won't be caught by the compiler. Should we wrap |
| // each type in a unique class to have stronger type guarantees? |
| // TODO: is there an enum for intrinsics? |
| |
| package android.hardware.renderscript@1.0; |
| |
| // OpaqueHandle is an object that is used entirely in the driver but still needs |
| // to be identified by the framework. |
| typedef uint64_t OpaqueHandle; |
| |
| // A pointer is an actual local pointer that can be accessed by both the |
| // framework and the driver. This is possible because RenderScript is always |
| // running in Passthrough mode. |
| typedef pointer Ptr; |
| |
| // This is an abstraction of size_t because it is not supported in HIDL. |
| typedef uint64_t Size; |
| |
| // In RenderScript code, these are all defined as void*, but act only as |
| // handles. |
| typedef OpaqueHandle Allocation; |
| typedef OpaqueHandle AllocationAdapter; |
| typedef OpaqueHandle Closure; |
| typedef OpaqueHandle Element; |
| typedef OpaqueHandle NativeWindow; |
| typedef OpaqueHandle ObjectBase; |
| typedef OpaqueHandle Sampler; |
| typedef OpaqueHandle Script; |
| typedef OpaqueHandle ScriptFieldID; |
| typedef OpaqueHandle ScriptGroup; |
| typedef OpaqueHandle ScriptGroup2; |
| typedef OpaqueHandle ScriptInvokeID; |
| typedef OpaqueHandle ScriptKernelID; |
| typedef OpaqueHandle Type; |
| |
| // types below are same as those in frameworks/rs/rsDefines.h |
| |
| @export(name="RsContextType", value_prefix="RS_CONTEXT_TYPE_") |
| enum ContextType : int32_t { |
| NORMAL, |
| DEBUG, |
| PROFILE, |
| }; |
| |
| @export(name="RsAllocationUsageType", value_prefix="RS_ALLOCATION_USAGE_") |
| enum AllocationUsageType : int32_t { |
| SCRIPT = 0x0001, |
| GRAPHICS_TEXTURE = 0x0002, |
| GRAPHICS_VERTEX = 0x0004, |
| GRAPHICS_CONSTANTS = 0x0008, |
| GRAPHICS_RENDER_TARGET = 0x0010, |
| IO_INPUT = 0x0020, |
| IO_OUTPUT = 0x0040, |
| SHARED = 0x0080, |
| OEM = 0x8000, |
| ALL = 0x80FF, |
| }; |
| |
| @export(name="RsAllocationMipmapControl", value_prefix="RS_ALLOCATION_MIPMAP_") |
| enum AllocationMipmapControl : int32_t { |
| NONE = 0, |
| FULL = 1, |
| ON_SYNC_TO_TEXTURE = 2, |
| }; |
| |
| @export(name="RsAllocationCubemapFace", |
| value_prefix="RS_ALLOCATION_CUBEMAP_FACE_") |
| enum AllocationCubemapFace : int32_t { |
| POSITIVE_X = 0, |
| NEGATIVE_X = 1, |
| POSITIVE_Y = 2, |
| NEGATIVE_Y = 3, |
| POSITIVE_Z = 4, |
| NEGATIVE_Z = 5, |
| }; |
| |
| @export(name="RsDataType", value_prefix="RS_TYPE_") |
| enum DataType : int32_t { |
| NONE = 0, |
| FLOAT_16, |
| FLOAT_32, |
| FLOAT_64, |
| SIGNED_8, |
| SIGNED_16, |
| SIGNED_32, |
| SIGNED_64, |
| UNSIGNED_8, |
| UNSIGNED_16, |
| UNSIGNED_32, |
| UNSIGNED_64, |
| BOOLEAN, |
| UNSIGNED_5_6_5, |
| UNSIGNED_5_5_5_1, |
| UNSIGNED_4_4_4_4, |
| MATRIX_4X4, |
| MATRIX_3X3, |
| MATRIX_2X2, |
| ELEMENT = 1000, |
| TYPE, |
| ALLOCATION, |
| SAMPLER, |
| SCRIPT, |
| MESH, |
| PROGRAM_FRAGMENT, |
| PROGRAM_VERTEX, |
| PROGRAM_RASTER, |
| PROGRAM_STORE, |
| FONT, |
| INVALID = 10000, |
| }; |
| |
| @export(name="RsDataKind", value_prefix="RS_KIND_") |
| enum DataKind : int32_t { |
| USER, |
| PIXEL_L = 7, |
| PIXEL_A, |
| PIXEL_LA, |
| PIXEL_RGB, |
| PIXEL_RGBA, |
| PIXEL_DEPTH, |
| PIXEL_YUV, |
| INVALID = 100, |
| }; |
| |
| @export(name="RsYuvFormat", value_prefix="RS_") |
| enum YuvFormat : int32_t { |
| YUV_NONE = 0, |
| YUV_YV12 = 0x32315659, // HAL_PIXEL_FORMAT_YV12 in system/graphics.h |
| YUV_NV21 = 0x11, // HAL_PIXEL_FORMAT_YCrCb_420_SP |
| YUV_420_888 = 0x23, // HAL_PIXEL_FORMAT_YCbCr_420_888 |
| }; |
| |
| @export(name="RsSamplerValue", value_prefix="RS_SAMPLER_") |
| enum SamplerValue : int32_t { |
| NEAREST, |
| LINEAR, |
| LINEAR_MIP_LINEAR, |
| WRAP, |
| CLAMP, |
| LINEAR_MIP_NEAREST, |
| MIRRORED_REPEAT, |
| INVALID = 100, |
| }; |
| |
| @export(name="RsForEachStrategy", value_prefix="RS_FOR_EACH_STRATEGY_") |
| enum ForEachStrategy : int32_t { |
| SERIAL = 0, |
| DONT_CARE = 1, |
| DST_LINEAR = 2, |
| TILE_SMALL = 3, |
| TILE_MEDIUM = 4, |
| TILE_LARGE = 5, |
| }; |
| |
| // Script to Script |
| @export(name="RsScriptCall") |
| struct ScriptCall { |
| ForEachStrategy strategy; |
| uint32_t xStart; |
| uint32_t xEnd; |
| uint32_t yStart; |
| uint32_t yEnd; |
| uint32_t zStart; |
| uint32_t zEnd; |
| uint32_t arrayStart; |
| uint32_t arrayEnd; |
| uint32_t array2Start; |
| uint32_t array2End; |
| uint32_t array3Start; |
| uint32_t array3End; |
| uint32_t array4Start; |
| uint32_t array4End; |
| }; |
| |
| @export(name="RsContextFlags", value_prefix="RS_CONTEXT_") |
| enum ContextFlags : int32_t { |
| SYNCHRONOUS = 1<<0, |
| LOW_LATENCY = 1<<1, |
| LOW_POWER = 1<<2, |
| WAIT_FOR_ATTACH = 1<<3, |
| }; |
| |
| // types below are same as those in frameworks/rs/rsInternalDefines.h |
| |
| @export(name="RsMessageToClientType", value_prefix="RS_MESSAGE_TO_CLIENT_") |
| enum MessageToClientType : int32_t { |
| NONE = 0, |
| EXCEPTION = 1, |
| RESIZE = 2, |
| ERROR = 3, |
| USER = 4, |
| NEW_BUFFER = 5, |
| }; |
| |
| @export(name="RsScriptIntrinsicID", value_prefix="RS_SCRIPT_INTRINSIC_") |
| enum ScriptIntrinsicID : int32_t { |
| ID_UNDEFINED = 0, |
| ID_CONVOLVE_3X3 = 1, |
| ID_COLOR_MATRIX = 2, |
| ID_LUT = 3, |
| ID_CONVOLVE_5X5 = 4, |
| ID_BLUR = 5, |
| ID_YUV_TO_RGB = 6, |
| ID_BLEND = 7, |
| ID_3DLUT = 8, |
| ID_HISTOGRAM = 9, |
| // unused 10, 11 |
| ID_RESIZE = 12, |
| ID_BLAS = 13, |
| ID_EXTBLAS = 14, |
| ID_OEM_START = 0x10000000, |
| }; |
| |
| @export(name="RsThreadPriorities", value_prefix="RS_THREAD_PRIORITY_") |
| enum ThreadPriorities : int32_t { |
| LOW = 15, |
| NORMAL_GRAPHICS = -8, |
| NORMAL = -1, |
| LOW_LATENCY = -4, |
| }; |
| |
| // types below are same as those in |
| // frameworks/compile/libbcc/include/bcinfo/MetadataExtractor.h |
| |
| @export(name="", value_prefix="RS_MD_") |
| enum MetadataSignatureBitval : int32_t { |
| SIG_None = 0, |
| SIG_In = 1<<0, |
| SIG_Out = 1<<1, |
| SIG_Usr = 1<<2, |
| SIG_X = 1<<3, |
| SIG_Y = 1<<4, |
| SIG_Kernel = 1<<5, |
| SIG_Z = 1<<6, |
| SIG_Ctxt = 1<<7, |
| }; |