blob: 37d421fd108f35fbea41ff0c66f6b4936abafe1e [file] [log] [blame]
#
# Copyright (C) 2015 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.
#
header:
summary: RenderScript graphics API
description:
A set of graphics functions used by RenderScript.
include:
#ifdef __LP64__
// TODO We need to fix some of the builds before enabling this error:
// #error "RenderScript graphics is deprecated and not supported in 64bit mode."
#else
#include "rs_mesh.rsh"
#include "rs_program.rsh"
#endif
end:
function: rsgAllocationSyncAll
size: 32
ret: void
arg: rs_allocation alloc
summary:
description:
Sync the contents of an allocation.
If the source is specified, sync from memory space specified by source.
If the source is not specified, sync from its SCRIPT memory space to its HW
memory spaces.
test: none
end:
function: rsgAllocationSyncAll
version: 14
size: 32
ret: void
arg: rs_allocation alloc
arg: rs_allocation_usage_type source
test: none
end:
function: rsgBindColorTarget
version: 14
size: 32
ret: void
arg: rs_allocation colorTarget
arg: uint slot
summary:
description:
Set the color target used for all subsequent rendering calls
test: none
end:
function: rsgBindConstant
size: 32
ret: void
arg: rs_program_fragment ps, "program fragment object"
arg: uint slot, "index of the constant buffer on the program"
arg: rs_allocation c, "constants to bind"
summary:
description:
Bind a new Allocation object to a ProgramFragment or ProgramVertex.
The Allocation must be a valid constant input for the Program.
test: none
end:
function: rsgBindConstant
size: 32
ret: void
arg: rs_program_vertex pv, "program vertex object"
arg: uint slot
arg: rs_allocation c
test: none
end:
function: rsgBindDepthTarget
version: 14
size: 32
ret: void
arg: rs_allocation depthTarget
summary:
description:
Set the depth target used for all subsequent rendering calls
test: none
end:
function: rsgBindFont
size: 32
ret: void
arg: rs_font font, "object to bind"
summary:
description:
Binds the font object to be used for all subsequent font rendering calls
test: none
end:
function: rsgBindProgramFragment
size: 32
ret: void
arg: rs_program_fragment pf
summary:
description:
Bind a new ProgramFragment to the rendering context.
test: none
end:
function: rsgBindProgramRaster
size: 32
ret: void
arg: rs_program_raster pr
summary:
description:
Bind a new ProgramRaster to the rendering context.
test: none
end:
function: rsgBindProgramStore
size: 32
ret: void
arg: rs_program_store ps
summary:
description:
Bind a new ProgramStore to the rendering context.
test: none
end:
function: rsgBindProgramVertex
size: 32
ret: void
arg: rs_program_vertex pv
summary:
description:
Bind a new ProgramVertex to the rendering context.
test: none
end:
function: rsgBindSampler
size: 32
ret: void
arg: rs_program_fragment fragment
arg: uint slot
arg: rs_sampler sampler
summary:
description:
Bind a new Sampler object to a ProgramFragment. The sampler will
operate on the texture bound at the matching slot.
test: none
end:
function: rsgBindTexture
size: 32
ret: void
arg: rs_program_fragment v
arg: uint slot
arg: rs_allocation alloc
summary:
description:
Bind a new Allocation object to a ProgramFragment. The
Allocation must be a valid texture for the Program. The sampling
of the texture will be controled by the Sampler bound at the
matching slot.
test: none
end:
function: rsgClearAllRenderTargets
version: 14
size: 32
ret: void
summary:
description:
Clear all color and depth targets and resume rendering into
the framebuffer
test: none
end:
function: rsgClearColor
size: 32
ret: void
arg: float r
arg: float g
arg: float b
arg: float a
summary:
description:
Clears the rendering surface to the specified color.
test: none
end:
function: rsgClearColorTarget
version: 14
size: 32
ret: void
arg: uint slot
summary:
description:
Clear the previously set color target
test: none
end:
function: rsgClearDepth
size: 32
ret: void
arg: float value
summary:
description:
Clears the depth suface to the specified value.
test: none
end:
function: rsgClearDepthTarget
version: 14
size: 32
ret: void
summary:
description:
Clear the previously set depth target
test: none
end:
function: rsgDrawMesh
size: 32
ret: void
arg: rs_mesh ism, "mesh object to render"
summary:
description:
Draw a mesh using the current context state.
If primitiveIndex is specified, draw part of a mesh using the current context state.
If start and len are also specified, draw specified index range of part of a mesh using the current context state.
Otherwise the whole mesh is rendered.
test: none
end:
function: rsgDrawMesh
size: 32
ret: void
arg: rs_mesh ism
arg: uint primitiveIndex, "for meshes that contain multiple primitive groups this parameter specifies the index of the group to draw."
test: none
end:
function: rsgDrawMesh
size: 32
ret: void
arg: rs_mesh ism
arg: uint primitiveIndex
arg: uint start, "starting index in the range"
arg: uint len, "number of indices to draw"
test: none
end:
function: rsgDrawQuad
size: 32
ret: void
arg: float x1
arg: float y1
arg: float z1
arg: float x2
arg: float y2
arg: float z2
arg: float x3
arg: float y3
arg: float z3
arg: float x4
arg: float y4
arg: float z4
summary:
description:
Low performance utility function for drawing a simple quad. Not intended for
drawing large quantities of geometry.
test: none
end:
function: rsgDrawQuadTexCoords
size: 32
ret: void
arg: float x1
arg: float y1
arg: float z1
arg: float u1
arg: float v1
arg: float x2
arg: float y2
arg: float z2
arg: float u2
arg: float v2
arg: float x3
arg: float y3
arg: float z3
arg: float u3
arg: float v3
arg: float x4
arg: float y4
arg: float z4
arg: float u4
arg: float v4
summary:
description:
Low performance utility function for drawing a textured quad. Not intended
for drawing large quantities of geometry.
test: none
end:
function: rsgDrawRect
size: 32
ret: void
arg: float x1
arg: float y1
arg: float x2
arg: float y2
arg: float z
summary:
description:
Low performance utility function for drawing a simple rectangle. Not
intended for drawing large quantities of geometry.
test: none
end:
function: rsgDrawSpriteScreenspace
size: 32
ret: void
arg: float x
arg: float y
arg: float z
arg: float w
arg: float h
summary:
description:
Low performance function for drawing rectangles in screenspace. This
function uses the default passthough ProgramVertex. Any bound ProgramVertex
is ignored. This function has considerable overhead and should not be used
for drawing in shipping applications.
test: none
end:
function: rsgDrawText
size: 32
ret: void
arg: const char* text
arg: int x
arg: int y
summary:
description:
Draws text given a string and location
test: none
end:
function: rsgDrawText
size: 32
ret: void
arg: rs_allocation alloc
arg: int x
arg: int y
test: none
end:
function: rsgFinish
version: 14
size: 32
ret: uint
summary:
description:
Force RenderScript to finish all rendering commands
test: none
end:
function: rsgFontColor
size: 32
ret: void
arg: float r, "red component"
arg: float g, "green component"
arg: float b, "blue component"
arg: float a, "alpha component"
summary:
description:
Sets the font color for all subsequent rendering calls
test: none
end:
function: rsgGetHeight
size: 32
ret: uint
summary:
description:
Get the height of the current rendering surface.
test: none
end:
function: rsgGetWidth
size: 32
ret: uint
summary:
description:
Get the width of the current rendering surface.
test: none
end:
function: rsgMeasureText
size: 32
ret: void
arg: const char* text
arg: int* left
arg: int* right
arg: int* top
arg: int* bottom
summary:
description:
Returns the bounding box of the text relative to (0, 0)
Any of left, right, top, bottom could be NULL
test: none
end:
function: rsgMeasureText
size: 32
ret: void
arg: rs_allocation alloc
arg: int* left
arg: int* right
arg: int* top
arg: int* bottom
test: none
end:
function: rsgMeshComputeBoundingBox
size: 32
ret: void
arg: rs_mesh mesh
arg: float* minX
arg: float* minY
arg: float* min
arg: float* maxX
arg: float* maxY
arg: float* maxZ
summary:
description:
Computes an axis aligned bounding box of a mesh object
test: none
end:
function: rsgMeshComputeBoundingBox
size: 32
attrib: always_inline
ret: void
arg: rs_mesh mesh
arg: float3* bBoxMin
arg: float3* bBoxMax
inline:
float x1, y1, z1, x2, y2, z2;
rsgMeshComputeBoundingBox(mesh, &x1, &y1, &z1, &x2, &y2, &z2);
bBoxMin->x = x1;
bBoxMin->y = y1;
bBoxMin->z = z1;
bBoxMax->x = x2;
bBoxMax->y = y2;
bBoxMax->z = z2;
test: none
end:
function: rsgProgramFragmentConstantColor
size: 32
ret: void
arg: rs_program_fragment pf
arg: float r
arg: float g
arg: float b
arg: float a
summary:
description:
Set the constant color for a fixed function emulation program.
test: none
end:
function: rsgProgramVertexGetProjectionMatrix
size: 32
ret: void
arg: rs_matrix4x4* proj, "matrix to store the current projection matrix into"
summary:
description:
Get the projection matrix for a currently bound fixed function
vertex program. Calling this function with a custom vertex shader
would result in an error.
test: none
end:
function: rsgProgramVertexLoadModelMatrix
size: 32
ret: void
arg: const rs_matrix4x4* model, "model matrix"
summary:
description:
Load the model matrix for a currently bound fixed function
vertex program. Calling this function with a custom vertex shader
would result in an error.
test: none
end:
function: rsgProgramVertexLoadProjectionMatrix
size: 32
ret: void
arg: const rs_matrix4x4* proj, "projection matrix"
summary:
description:
Load the projection matrix for a currently bound fixed function
vertex program. Calling this function with a custom vertex shader
would result in an error.
test: none
end:
function: rsgProgramVertexLoadTextureMatrix
size: 32
ret: void
arg: const rs_matrix4x4* tex, "texture matrix"
summary:
description:
Load the texture matrix for a currently bound fixed function
vertex program. Calling this function with a custom vertex shader
would result in an error.
test: none
end:
#endif //__LP64__