Michael Heilmann's Arcadia ADL Module Interface
This is the documentation for Michael Heilmann's Arcadia ADL. The module defines
- the context and the reader registry that process ADL assets,
- the container of definitions and the base definition and reference types, and
- the definition types of the assets an Arcadia application loads: colors, meshes, models, materials, pixel buffers, pixel-buffer operations, textures, sample buffers, digital signal processing definitions, and user-interface button definitions.
Module Interface
Arcadia_ADL_Context
Arcadia_ADL_Context
A context is a singleton: there is exactly one context per process. It is created on
demand by Arcadia_ADL_Context_getOrCreate. Reading an asset whose
type entry is not served by any registered reader raises a semantical
error.
Methods
Arcadia_ADL_Context_getOrCreate
Arcadia_ADL_Context* Arcadia_ADL_Context_getOrCreate
(Arcadia_Thread* thread)
Parameters
Return value
The context of the process.Errors
Arcadia_Status_AllocationFailed if the context cannot be allocated.Arcadia_ADL_Context_readFromString
Arcadia_ADL_Definition* Arcadia_ADL_Context_readFromString
(Arcadia_Thread* thread,
Arcadia_ADL_Context* self,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* input,
Arcadia_BooleanValue skipExisting)
The string is parsed with the default DDL reader into a DDL map node and then
processed as a node (see Arcadia_ADL_Context_readFromNode).
Parameters
skipExisting is true) or raise an exists error (it is false).Return value
The resulting definition, or the already stored definition of the same name ifskipExisting is true.
Errors
type entry is not served by a registered reader, if the asset violates the schema of its type, or if a definition of the same name already exists and skipExisting is false.Arcadia_ADL_Context_readFromNode
Arcadia_ADL_Definition* Arcadia_ADL_Context_readFromNode
(Arcadia_Thread* thread,
Arcadia_ADL_Context* self,
Arcadia_ADL_Definitions* definitions,
Arcadia_DDL_Node* input,
Arcadia_BooleanValue skipExisting)
The node must be a DDL map node; otherwise a semantical error is raised. The
type entry selects the reader, which validates the asset against its
schema and constructs the definition.
Parameters
skipExisting is true) or raise an exists error (it is false).Return value
The resulting definition, or the already stored definition of the same name ifskipExisting is true.
Errors
type entry is not served by a registered reader, if the asset violates the schema of its type, or if a definition of the same name already exists and skipExisting is false.Arcadia_ADL_Reader
Arcadia_ADL_Reader
The Arcadia.ADL.Reader type is the base type of the concrete readers of
the module, one per definition type. A reader lives in the context registry and is
looked up by the string type entry of an asset. Applications normally do
not call the methods of a reader directly; they read assets through a context.
Each concrete reader owns the schema of its type, given in the Arcadia Data Definition Schema Language (Arcadia DDLS), and validates every asset against it before constructing the definition.
Arcadia_ADL_Definition
Arcadia_ADL_Definition
A definition has a name and belongs to a container of definitions. Some definitions
hold references to other definitions; such references are resolved when the
definition is linked (see Arcadia_ADL_Definition_link and
Arcadia_ADL_Definitions_link).
Methods
Arcadia_ADL_Definition_getName
Arcadia_String* Arcadia_ADL_Definition_getName
(Arcadia_Thread* thread,
Arcadia_ADL_Definition* self)
Parameters
Return value
The name of the definition.Arcadia_ADL_Definition_link
void Arcadia_ADL_Definition_link
(Arcadia_Thread* thread,
Arcadia_ADL_Definition* self)
This is a virtual method. Link implementations resolve every reference of the concrete definition, check that the referenced definition has the required type, and link referenced definitions recursively. Linking is idempotent.
Parameters
Errors
Arcadia_ADL_Definitions
Arcadia_ADL_Definitions
An application reads all of its assets into one container and links the container once the assets have been read.
Methods
Arcadia_ADL_Definitions_create
Arcadia_ADL_Definitions* Arcadia_ADL_Definitions_create
(Arcadia_Thread* thread)
Parameters
Return value
An empty container of definitions.Errors
Arcadia_Status_AllocationFailed if the container cannot be allocated.Arcadia_ADL_Definitions_getDefinitionOrNull
Arcadia_ADL_Definition* Arcadia_ADL_Definitions_getDefinitionOrNull
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* self,
Arcadia_String* name)
Parameters
Return value
The definition with the given name, or a null pointer if there is none.Arcadia_ADL_Definitions_link
void Arcadia_ADL_Definitions_link
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* self)
Linking the container links the whole graph of definitions, because linking a definition also links the definitions it references.
Parameters
Errors
Arcadia_ADL_Reference
Arcadia_ADL_Reference
While an asset is being read, a reference holds the name of the referenced definition but not the definition itself. Resolving the reference looks the name up in the container of definitions. References are resolved when the owning definition is linked.
Methods
Arcadia_ADL_Reference_create
Arcadia_ADL_Reference* Arcadia_ADL_Reference_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* definitionName)
Parameters
Return value
A reference to the definition with the given name.Errors
Arcadia_Status_AllocationFailed if the reference cannot be allocated.Arcadia_ADL_Reference_getDefinitionName
Arcadia_String* Arcadia_ADL_Reference_getDefinitionName
(Arcadia_Thread* thread,
Arcadia_ADL_Reference* self)
Parameters
Return value
The name of the referenced definition.Arcadia_ADL_Reference_resolve
void Arcadia_ADL_Reference_resolve
(Arcadia_Thread* thread,
Arcadia_ADL_Reference* self)
Resolving is idempotent: a reference that was already resolved is left unchanged. If the referenced definition does not exist, an error is raised.
Parameters
Errors
Arcadia_Status_NotFound if the referenced definition does not exist.Arcadia_ADL_Graphs_readFromNodes
void Arcadia_ADL_Graphs_readFromNodes
(Arcadia_Thread* thread,
Arcadia_ADL_Context* context,
Arcadia_ADL_Definitions* definitions,
Arcadia_List* nodes)
Arcadia/ADL/Include.h.
Parameters
The function does not link or render the resulting definitions. Call
Arcadia_ADL_Definitions_link after successful expansion. Generated
nodes are currently read using Arcadia_ADL_Context_getOrCreate in the
expander; the explicit context argument is used for ordinary batch nodes.
Graph shape/binding errors raise Arcadia_Status_SemanticalError;
allocation and ordinary reader/link operations retain their own error behavior.
Do not assume the destination is unchanged on failure: ordinary definitions are
read before instance staging, and generated definitions are published individually.
Supported local audio nodes are DSP.SineWave and DSP.Mix.
Mix's required nonempty inputs list is rewritten in its original
order to generated local names, preserving repeated references. Each input must
name a supported local DSP node; unresolved names, wrong families, references to
Graph.Output, and local cycles raise
Arcadia_Status_SemanticalError. A mix can be published as the single
Graph.Output with referenceType: "DSP.Mix" and consumed
by ordinary SampleBuffer.dsp after linking. Reference parameters
remain Color-only; no output/source type-equality check is added.
See Graph composition for accepted local types, parameter bindings, generated names and the current reference-validation limitations. That section describes the current source implementation, not a broader historical graph-composition proposal.
Arcadia_ADL_ColorDefinition
Arcadia_ADL_ColorDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "Color". Its public scalar fields are red,
green, blue, then alpha, each
Arcadia_Natural8Value. RGB asset fields are required; alpha is optional,
defaulting to 255. Explicit alpha 0 is preserved. The definition adds no reference
fields and links trivially; its native parent still retains definitions/name.
The existing five-argument factory remains unchanged and initializes alpha to 255.
Native callers may assign the public alpha field afterward. The PDL constructor
owns initialization and uses a narrow native typed-255 helper, since ordinary PDL
integer literals are not Natural8 values. No new getter or dispatch slot is added.
Nonintegral/out-of-range numeric asset alpha raises Arcadia_Status_ConversionFailed,
as for RGB; a non-number raises Arcadia_Status_SemanticalError during schema validation.
Stored alpha does not enable blending, premultiply RGB or change RGB-only consumers. Media fills retain pixel alpha 255; mesh-generator color conversion and current example clear-color/text-run conversions retain alpha 1; UI Button color state retains RGB-only copying. Material blend settings remain separate.
Methods
Arcadia_ADL_ColorDefinition_create
Arcadia_ADL_ColorDefinition* Arcadia_ADL_ColorDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Natural8Value red,
Arcadia_Natural8Value green,
Arcadia_Natural8Value blue)
Parameters
Return value
The definition of the color.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_MeshDefinition
Arcadia_ADL_MeshDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "Mesh". The mesh holds a reference to the color of its
vertices; linking the definition resolves this reference and requires the
referenced definition to be a Color definition.
Methods
Arcadia_ADL_MeshDefinition_create
Arcadia_ADL_MeshDefinition* Arcadia_ADL_MeshDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_SizeValue numberOfVertices,
Arcadia_RuntimeByteArray* vertexPositions,
Arcadia_RuntimeByteArray* vertexAmbientColors,
Arcadia_RuntimeByteArray* vertexAmbientTextureCoordinates,
Arcadia_String* ambientColorName)
Parameters
Return value
The definition of the mesh.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_ModelDefinition
Arcadia_ADL_ModelDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "Model". The model holds a reference to a mesh and a
reference to a material, both resolved when the definition is linked.
Methods
Arcadia_ADL_ModelDefinition_create
Arcadia_ADL_ModelDefinition* Arcadia_ADL_ModelDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_String* meshName,
Arcadia_String* materialName)
Parameters
Return value
The definition of the model.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_MaterialDefinition
Arcadia_ADL_MaterialDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "Material". The material holds a reference to the texture of
its ambient-color source, resolved when the definition is linked; the referenced
definition must be a Texture definition.
Methods
Arcadia_ADL_MaterialDefinition_create
Arcadia_ADL_MaterialDefinition* Arcadia_ADL_MaterialDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_ADL_MaterialType materialType,
Arcadia_ADL_AmbientColorSource ambientColorSource,
Arcadia_String* ambientColorTextureName,
Arcadia_ADL_BlendFunction blendSourceFunction,
Arcadia_ADL_BlendFunction blendDestinationFunction)
Parameters
Arcadia_ADL_MaterialType enumeration.Arcadia_ADL_AmbientColorSource enumeration.Arcadia_ADL_BlendFunction enumeration. The element None selects the default of the engine.Arcadia_ADL_BlendFunction enumeration. The element None selects the default of the engine.Return value
The definition of the material.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_MeshGenerator
Arcadia_ADL_MeshGenerator
A mesh generator describes a mesh procedurally. It carries the ambient color of
the mesh it generates. The ambient color is held as a reference, resolved when
the definition is linked; the referenced definition must be a Color
definition.
Methods
Arcadia_ADL_MeshGenerator_getAmbientColor
Arcadia_ADL_ColorDefinition* Arcadia_ADL_MeshGenerator_getAmbientColor
(Arcadia_Thread* thread,
Arcadia_ADL_MeshGenerator* self)
Parameters
Return value
The ambient color definition of this mesh generator.Arcadia_ADL_BoxMeshGenerator
Arcadia_ADL_BoxMeshGenerator
The type name of the definition, used as the type entry of an ADL
asset, is "BoxMeshGenerator". The generator describes a box of the
given width, height, and depth. It holds a reference to the ambient color of the
box, resolved when the definition is linked; the referenced definition must be a
Color definition.
Methods
Arcadia_ADL_BoxMeshGenerator_create
Arcadia_ADL_BoxMeshGenerator* Arcadia_ADL_BoxMeshGenerator_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Real32Value width,
Arcadia_Real32Value height,
Arcadia_Real32Value depth,
Arcadia_String* ambientColorName)
Parameters
Return value
The definition of the box mesh generator.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_BoxMeshGenerator_getWidth
Arcadia_Real32Value Arcadia_ADL_BoxMeshGenerator_getWidth
(Arcadia_Thread* thread,
Arcadia_ADL_BoxMeshGenerator* self)
Parameters
Return value
The width of the box.Arcadia_ADL_BoxMeshGenerator_getHeight
Arcadia_Real32Value Arcadia_ADL_BoxMeshGenerator_getHeight
(Arcadia_Thread* thread,
Arcadia_ADL_BoxMeshGenerator* self)
Parameters
Return value
The height of the box.Arcadia_ADL_BoxMeshGenerator_getDepth
Arcadia_Real32Value Arcadia_ADL_BoxMeshGenerator_getDepth
(Arcadia_Thread* thread,
Arcadia_ADL_BoxMeshGenerator* self)
Parameters
Return value
The depth of the box.Arcadia_ADL_PlaneMeshGenerator
Arcadia_ADL_PlaneMeshGenerator
The type name of the definition, used as the type entry of an ADL
asset, is "PlaneMeshGenerator". The generator describes a plane of
the given width and height. It holds a reference to the ambient color of the
plane, resolved when the definition is linked; the referenced definition must be
a Color definition.
Methods
Arcadia_ADL_PlaneMeshGenerator_create
Arcadia_ADL_PlaneMeshGenerator* Arcadia_ADL_PlaneMeshGenerator_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Real32Value width,
Arcadia_Real32Value height,
Arcadia_String* ambientColorName)
Parameters
Return value
The definition of the plane mesh generator.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_PlaneMeshGenerator_getWidth
Arcadia_Real32Value Arcadia_ADL_PlaneMeshGenerator_getWidth
(Arcadia_Thread* thread,
Arcadia_ADL_PlaneMeshGenerator* self)
Parameters
Return value
The width of the plane.Arcadia_ADL_PlaneMeshGenerator_getHeight
Arcadia_Real32Value Arcadia_ADL_PlaneMeshGenerator_getHeight
(Arcadia_Thread* thread,
Arcadia_ADL_PlaneMeshGenerator* self)
Parameters
Return value
The height of the plane.Arcadia_ADL_SphereMeshGenerator
Arcadia_ADL_SphereMeshGenerator
The type name of the definition, used as the type entry of an ADL
asset, is "SphereMeshGenerator". The generator describes a sphere of
the given radius and number of segments. It holds a reference to the ambient
color of the sphere, resolved when the definition is linked; the referenced
definition must be a Color definition.
Methods
Arcadia_ADL_SphereMeshGenerator_create
Arcadia_ADL_SphereMeshGenerator* Arcadia_ADL_SphereMeshGenerator_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Real32Value radius,
Arcadia_Natural32Value segments,
Arcadia_String* ambientColorName)
Parameters
Return value
The definition of the sphere mesh generator.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_SphereMeshGenerator_getRadius
Arcadia_Real32Value Arcadia_ADL_SphereMeshGenerator_getRadius
(Arcadia_Thread* thread,
Arcadia_ADL_SphereMeshGenerator* self)
Parameters
Return value
The radius of the sphere.Arcadia_ADL_SphereMeshGenerator_getSegments
Arcadia_Natural32Value Arcadia_ADL_SphereMeshGenerator_getSegments
(Arcadia_Thread* thread,
Arcadia_ADL_SphereMeshGenerator* self)
Parameters
Return value
The number of segments of the sphere.Arcadia_ADL_PixelBufferDefinition
Arcadia_ADL_PixelBufferDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "PixelBuffer". The definition holds a list of references
to its fill operations; linking the definition resolves the references.
Methods
Arcadia_ADL_PixelBufferDefinition_create
Arcadia_ADL_PixelBufferDefinition* Arcadia_ADL_PixelBufferDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Natural32Value width,
Arcadia_Natural32Value height)
Parameters
Return value
The definition of the pixel buffer.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_TextureDefinition
Arcadia_ADL_TextureDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "Texture". The texture holds a reference to the pixel
buffer it samples, resolved when the definition is linked; the referenced
definition must be a PixelBuffer definition.
The sampling properties magnificationFilter, minificationFilter,
addressModeU, and addressModeV are optional. The value
None is the default value and indicates that the sampling property is not
specified, in which case the default of the engine is used.
Methods
Arcadia_ADL_TextureDefinition_create
Arcadia_ADL_TextureDefinition* Arcadia_ADL_TextureDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_String* pixelBufferName,
Arcadia_ADL_TextureFilter magnificationFilter,
Arcadia_ADL_TextureFilter minificationFilter,
Arcadia_ADL_TextureAddressMode addressModeU,
Arcadia_ADL_TextureAddressMode addressModeV)
Parameters
Arcadia_ADL_TextureFilter enumeration. The element None selects the default of the engine.Arcadia_ADL_TextureFilter enumeration. The element None selects the default of the engine.Arcadia_ADL_TextureAddressMode enumeration. The element None selects the default of the engine.Arcadia_ADL_TextureAddressMode enumeration. The element None selects the default of the engine.Return value
The definition of the texture.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_PixelBufferOperations_FillOperationDefinition
Arcadia_ADL_PixelBufferOperations_FillOperationDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "PixelBufferOperations.FillOperation". The fill operation
holds a reference to the color it fills the pixel buffer with, resolved when the
definition is linked; the referenced definition must be a Color
definition.
Methods
Arcadia_ADL_PixelBufferOperations_FillOperationDefinition_create
Arcadia_ADL_PixelBufferOperations_FillOperationDefinition* Arcadia_ADL_PixelBufferOperations_FillOperationDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_String* colorName)
Parameters
Return value
The definition of the fill operation.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_PixelBufferOperations_CheckerboardFillOperationDefinition
Arcadia_ADL_PixelBufferOperations_CheckerboardFillOperationDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "PixelBufferOperations.CheckerboardFillOperation". The fill
operation holds a reference to the color of the first checker and a reference to
the color of the second checker, both resolved when the definition is linked; the
referenced definitions must be Color definitions.
Methods
Arcadia_ADL_PixelBufferOperations_CheckerboardFillOperationDefinition_create
Arcadia_ADL_PixelBufferOperations_CheckerboardFillOperationDefinition* Arcadia_ADL_PixelBufferOperations_CheckerboardFillOperationDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Integer32Value checkerWidth,
Arcadia_Integer32Value checkerHeight,
Arcadia_String* firstCheckerColorName,
Arcadia_String* secondCheckerColorName)
Parameters
Return value
The definition of the checkerboard fill operation.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_SampleBufferDefinition
Arcadia_ADL_SampleBufferDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "SampleBuffer". The sample buffer holds a reference to the
DSP its signal is generated with, resolved when the definition is linked.
Methods
Arcadia_ADL_SampleBufferDefinition_create
Arcadia_ADL_SampleBufferDefinition* Arcadia_ADL_SampleBufferDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Natural32Value duration,
Arcadia_ADL_Reference* dsp)
Parameters
Return value
The definition of the sample buffer.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_DSPStreamProviderDefinition
Arcadia_ADL_DSPStreamProviderDefinitionThe ADL type name is DSPStreamProvider. It references a DSP
definition and specifies a sample rate. Its optional duration is in seconds;
absence means that the provider is infinite. The Engine audials node factory
creates the runtime DSP graph and provider from this linked definition.
Methods
Arcadia_ADL_DSPStreamProviderDefinition_create
Arcadia_ADL_DSPStreamProviderDefinition* Arcadia_ADL_DSPStreamProviderDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_ADL_Reference* dsp,
Arcadia_Natural32Value sampleRate,
Arcadia_BooleanValue hasDuration,
Arcadia_Natural32Value duration)duration is meaningful only when hasDuration is true; its unit is seconds.
Arcadia_ADL_SoundSourceNodeDefinition
Arcadia_ADL_SoundSourceNodeDefinitionThe ADL type name is SoundSourceNode. It references a
SampleBuffer and has optional isLooping (default
false) and volume (default 1.0) entries.
The Engine audials node factory turns the linked definition into a runtime
SoundSourceNode.
Methods
Arcadia_ADL_SoundSourceNodeDefinition_create
Arcadia_ADL_SoundSourceNodeDefinition* Arcadia_ADL_SoundSourceNodeDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_ADL_Reference* sampleBuffer,
Arcadia_BooleanValue isLooping,
Arcadia_Real32Value volume)sampleBuffer references the finite buffer to play. isLooping and
volume are the node settings represented in the ADL description.
Arcadia_ADL_StreamingSoundSourceNodeDefinition
Arcadia_ADL_StreamingSoundSourceNodeDefinitionThe ADL type name is StreamingSoundSourceNode. It references a
provider definition and has optional volume (default
1.0). Playback ends when the provider reaches end-of-stream or the
runtime node is stopped.
Methods
Arcadia_ADL_StreamingSoundSourceNodeDefinition_create
Arcadia_ADL_StreamingSoundSourceNodeDefinition* Arcadia_ADL_StreamingSoundSourceNodeDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_ADL_Reference* provider,
Arcadia_Real32Value volume)provider references the stream provider used by the runtime node.
Arcadia_ADL_ConstantDefinition
Arcadia_ADL_ConstantDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "DSP.Constant".
Methods
Arcadia_ADL_ConstantDefinition_create
Arcadia_ADL_ConstantDefinition* Arcadia_ADL_ConstantDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Real32Value value)
Parameters
Return value
The definition of the constant-signal DSP.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_SineWaveDefinition
Arcadia_ADL_SineWaveDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "DSP.SineWave". Its asset reader requires a strictly positive
Integer32 frequency in hertz (1..INT32_MAX) and raises
Arcadia_Status_SemanticalError for nonpositive values before constructing
the definition, including graph-expanded definitions. Zero does not mean silence.
This source validation does not restrict the signed Integer32 storage or the
constructor/factory below, which still accepts the full signed representation.
Methods
Arcadia_ADL_SineWaveDefinition_create
Arcadia_ADL_SineWaveDefinition* Arcadia_ADL_SineWaveDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Integer32Value frequency)
Parameters
Return value
The definition of the sine wave DSP.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_SawtoothWaveDefinition
Arcadia_ADL_SawtoothWaveDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "DSP.SawtoothWave". Its asset reader requires a strictly positive
Integer32 frequency in hertz (1..INT32_MAX) and raises
Arcadia_Status_SemanticalError for nonpositive values before constructing
the definition. Zero does not mean silence. This source validation does not
restrict the signed Integer32 storage or the constructor/factory below, which
still accepts the full signed representation.
Methods
Arcadia_ADL_SawtoothWaveDefinition_create
Arcadia_ADL_SawtoothWaveDefinition* Arcadia_ADL_SawtoothWaveDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Integer32Value frequency)
Parameters
Return value
The definition of the sawtooth wave DSP.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_WhiteNoiseDefinition
Arcadia_ADL_WhiteNoiseDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "DSP.WhiteNoise".
Methods
Arcadia_ADL_WhiteNoiseDefinition_create
Arcadia_ADL_WhiteNoiseDefinition* Arcadia_ADL_WhiteNoiseDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name)
Parameters
Return value
The definition of the white noise DSP.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_UI_ButtonDefinition
Arcadia_ADL_UI_ButtonDefinition
The type name of the definition, used as the type entry of an ADL
asset, is "UI.Button". The definition stores the button rectangle,
alignment strings, and background color. It holds no references and therefore
links trivially.
Methods
Arcadia_ADL_UI_ButtonDefinition_create
Arcadia_ADL_UI_ButtonDefinition* Arcadia_ADL_UI_ButtonDefinition_create
(Arcadia_Thread* thread,
Arcadia_ADL_Definitions* definitions,
Arcadia_String* name,
Arcadia_Integer32Value left,
Arcadia_Integer32Value bottom,
Arcadia_Natural32Value width,
Arcadia_Natural32Value height,
Arcadia_String* text,
Arcadia_String* horizontalAlignment,
Arcadia_String* verticalAlignment,
Arcadia_Natural8Value backgroundRed,
Arcadia_Natural8Value backgroundGreen,
Arcadia_Natural8Value backgroundBlue)
Parameters
Return value
The definition of the user-interface button.Errors
Arcadia_Status_AllocationFailed if the definition cannot be allocated.Arcadia_ADL_BlendFunction
typedef enum Arcadia_ADL_BlendFunction Arcadia_ADL_BlendFunction;
The value None is used as the default value and indicates that blending is
disabled and hence no blend functions are applied. In ADL assets, each element is
identified by a string literal of the same name, e.g. "Zero" or
"SourceAlpha".
Elements
Arcadia_ADL_BlendFunction_NoneArcadia_ADL_BlendFunction_ZeroArcadia_ADL_BlendFunction_OneArcadia_ADL_BlendFunction_SourceColorArcadia_ADL_BlendFunction_OneMinusSourceColorArcadia_ADL_BlendFunction_DestinationColorArcadia_ADL_BlendFunction_OneMinusDestinationColorArcadia_ADL_BlendFunction_SourceAlphaArcadia_ADL_BlendFunction_OneMinusSourceAlphaArcadia_ADL_BlendFunction_DestinationAlphaArcadia_ADL_BlendFunction_OneMinusDestinationAlphaArcadia_ADL_AmbientColorSource
typedef enum Arcadia_ADL_AmbientColorSource Arcadia_ADL_AmbientColorSource;
In ADL assets, each element is identified by a string literal of the same name, e.g.
"Mesh" or "Texture".
Elements
Arcadia_ADL_AmbientColorSource_MeshArcadia_ADL_AmbientColorSource_VertexArcadia_ADL_AmbientColorSource_TextureArcadia_ADL_MaterialType
typedef enum Arcadia_ADL_MaterialType Arcadia_ADL_MaterialType;
In ADL assets, the element BlinnPhong is identified by the string literal
"Blinn-Phong".
Elements
Arcadia_ADL_MaterialType_BlinnPhongArcadia_ADL_TextureFilter
typedef enum Arcadia_ADL_TextureFilter Arcadia_ADL_TextureFilter;
The value None is used as the default value and indicates that no filter is
specified and the engine's default filter is used. In ADL assets, each element is
identified by a string literal of the same name, e.g. "Linear" or
"Nearest".
Elements
Arcadia_ADL_TextureFilter_NoneArcadia_ADL_TextureFilter_LinearArcadia_ADL_TextureFilter_NearestArcadia_ADL_TextureAddressMode
typedef enum Arcadia_ADL_TextureAddressMode Arcadia_ADL_TextureAddressMode;
The value None is used as the default value and indicates that no address mode
is specified and the engine's default address mode is used. In ADL assets, each element is
identified by a string literal of the same name, e.g. "ClampToEdge" or
"Repeat".
Elements
Arcadia_ADL_TextureAddressMode_NoneArcadia_ADL_TextureAddressMode_ClampToBorderArcadia_ADL_TextureAddressMode_ClampToEdgeArcadia_ADL_TextureAddressMode_MirroredRepeatArcadia_ADL_TextureAddressMode_Repeat