ArcGIS Procedural Runtime  3.2.10650
Namespaces | Functions | Classes | Enumerations
prt Namespace Reference

Description

The Procedural Runtime API namespace. The prt namespace contains the top level entry points into the Procedural Runtime API.

Namespaces

 StringUtils
 Utilities for string encoding.
 

Functions

Status addLogHandler (LogHandler *logHandler)
 
DecoderInfo const * createDecoderInfo (const wchar_t *decoderId, Status *stat=nullptr)
 
EncoderInfo const * createEncoderInfo (const wchar_t *encoderId, Status *stat=nullptr)
 
ResolveMap const * createResolveMap (const wchar_t *rpkOrResURI, const wchar_t *unpackFileSystemPath=nullptr, Status *stat=nullptr)
 
RuleFileInfo const * createRuleFileInfo (const wchar_t *ruleFileURI, Cache *cache=nullptr, Status *stat=nullptr)
 
const AttributeMapcreateTextureMetadata (const wchar_t *uri, Cache *cache=nullptr, Status *stat=nullptr)
 
Status encodeTexture (const AttributeMap *metadata, const uint8_t *pixeldata, const wchar_t *encoderId, const AttributeMap *encoderOptions, SimpleOutputCallbacks *soc)
 
Status generate (const InitialShape *const *initialShapes, size_t initialShapeCount, const OcclusionSet::Handle *occlusionHandles, const wchar_t *const *encoders, size_t encodersCount, const AttributeMap *const *encoderOptions, Callbacks *callbacks, Cache *cache, const OcclusionSet *occlSet, const AttributeMap *generateOptions=nullptr)
 
Status generate (const InitialShape *const *initialShapes, size_t initialShapeCount, const OcclusionSet::Handle *occlusionHandles, const wchar_t *const *encoders, size_t encodersCount, const AttributeMap *const *encoderOptions, Callbacks *callbacks, Cache *cache, const OcclusionSet *const *occlSets, const size_t *occlSetCounts, const AttributeMap *generateOptions=nullptr)
 
Status generateOccluders (const InitialShape *const *initialShapes, size_t initialShapeCount, OcclusionSet::Handle *occlusionHandles, const wchar_t *const *encoders, size_t encodersCount, const AttributeMap *const *encoderOptions, Callbacks *callbacks, Cache *cache, OcclusionSet *occlSet, const AttributeMap *generateOptions=nullptr)
 
LogLevel getLogLevel (Status *status=nullptr)
 
const char * getStatusDescription (Status stat)
 
Status getTexturePixeldata (const wchar_t *uri, uint8_t *buffer, size_t bufferSize, Cache *cache=nullptr)
 
Version const * getVersion ()
 
const Objectinit (const wchar_t *const *prtPlugins, size_t prtPluginsCount, LogLevel logLevel, Status *stat=nullptr)
 
wchar_t * listDecoderIds (wchar_t *result, size_t *resultSize, Status *stat=nullptr)
 
wchar_t * listEncoderIds (wchar_t *result, size_t *resultSize, Status *stat=nullptr)
 
Status log (const wchar_t *msg, LogLevel level)
 
Status removeLogHandler (LogHandler *logHandler)
 
Status setLogLevel (LogLevel level)
 

Classes

class  Annotation
 
class  AnnotationArgument
 
class  Attributable
 
class  AttributableSetter
 
class  AttributeMap
 
class  AttributeMapBuilder
 
class  Cache
 
class  CacheObject
 
class  Callbacks
 
class  ConsoleLogHandler
 
class  DecoderInfo
 
class  EncoderInfo
 
class  FileLogHandler
 
class  FileOutputCallbacks
 
class  InitialShape
 
class  InitialShapeBuilder
 
class  LogHandler
 
class  MemoryOutputCallbacks
 
class  Object
 
class  OcclusionSet
 
class  ResolveMap
 
class  ResolveMapBuilder
 
class  RuleFileInfo
 
class  SimpleOutputCallbacks
 
struct  Version
 

Enumerations

enum  AnnotationArgumentType {
  AAT_VOID,
  AAT_BOOL,
  AAT_FLOAT,
  AAT_STR,
  AAT_INT,
  AAT_UNKNOWN,
  AAT_BOOL_ARRAY,
  AAT_FLOAT_ARRAY,
  AAT_STR_ARRAY
}
 
enum  CGAErrorLevel {
  CGAERROR,
  CGAWARNING,
  CGAINFO
}
 
enum  ContentType {
  CT_UNDEFINED,
  CT_GEOMETRY,
  CT_MATERIAL,
  CT_TEXTURE,
  CT_SHADER,
  CT_CGB,
  CT_INITIALSHAPE,
  CT_CGAERROR,
  CT_CGAPRINT,
  CT_CGAREPORT,
  CT_ATTRIBUTE,
  CT_SHAPETREE,
  CT_STRING,
  CT_TABLE,
  CT_COUNT
}
 
enum  LogLevel {
  LOG_TRACE = 0,
  LOG_DEBUG = 1,
  LOG_INFO = 2,
  LOG_WARNING = 3,
  LOG_ERROR = 4,
  LOG_FATAL = 5,
  LOG_NO = 1000
}
 
enum  Status {
  STATUS_OK,
  STATUS_UNSPECIFIED_ERROR,
  STATUS_OUT_OF_MEM,
  STATUS_NO_LICENSE,
  STATUS_NOT_ALL_IS_GENERATED,
  STATUS_INCOMPATIBLE_IS,
  STATUS_FILE_NOT_FOUND,
  STATUS_FILE_ALREADY_EXISTS,
  STATUS_COULD_NOT_OPEN_FILE,
  STATUS_COULD_NOT_CLOSE_FILE,
  STATUS_FILE_WRITE_FAILED,
  STATUS_FILE_READ_FAILED,
  STATUS_FILE_SEEK_FAILED,
  STATUS_FILE_TELL_FAILED,
  STATUS_NO_SEEK,
  STATUS_EMPTY_FILE,
  STATUS_INVALID_URI,
  STATUS_STREAM_ADAPTOR_NOT_FOUND,
  STATUS_RESOLVEMAP_PROVIDER_NOT_FOUND,
  STATUS_DECODER_NOT_FOUND,
  STATUS_ENCODER_NOT_FOUND,
  STATUS_UNABLE_TO_RESOLVE,
  STATUS_CHECK_ERROR_PARAM,
  STATUS_KEY_NOT_FOUND,
  STATUS_KEY_ALREADY_TAKEN,
  STATUS_KEY_NOT_SUPPORTED,
  STATUS_STRING_TRUNCATED,
  STATUS_ILLEGAL_CALLBACK_OBJECT,
  STATUS_ILLEGAL_LOG_HANDLER,
  STATUS_ILLEGAL_LOG_LEVEL,
  STATUS_ILLEGAL_VALUE,
  STATUS_NO_RULEFILE,
  STATUS_NO_INITIAL_SHAPE,
  STATUS_CGB_ERROR,
  STATUS_NOT_INITIALIZED,
  STATUS_ALREADY_INITIALIZED,
  STATUS_INCONSISTENT_TEXTURE_PARAMS,
  STATUS_CANCELED,
  STATUS_UNKNOWN_ATTRIBUTE,
  STATUS_UNKNOWN_RULE,
  STATUS_ARGUMENTS_MISMATCH,
  STATUS_BUFFER_TO_SMALL,
  STATUS_UNKNOWN_FORMAT,
  STATUS_ENCODE_FAILED,
  STATUS_ATTRIBUTES_ALREADY_SET,
  STATUS_ATTRIBUTES_NOT_SET,
  STATUS_GEOMETRY_ALREADY_SET,
  STATUS_GEOMETRY_NOT_SET,
  STATUS_ILLEGAL_GEOMETRY,
  STATUS_NO_GEOMETRY,
  STATUS_NO_CGB_FOUND,
  STATUS_MULTIPLE_CGBS_FOUND
}
 

Enumeration Type Documentation

◆ AnnotationArgumentType

Enumerates types of annotation arguments.

Enumerator
AAT_VOID 

Void type.

AAT_BOOL 

Boolean type.

AAT_FLOAT 

Float type.

AAT_STR 

String type.

AAT_INT 

Integer type.

AAT_UNKNOWN 

Unknown type.

AAT_BOOL_ARRAY 

Boolean array type.

AAT_FLOAT_ARRAY 

Float array type.

AAT_STR_ARRAY 

String array type.

◆ CGAErrorLevel

Error level for CGAErrors.

Enumerator
CGAERROR 

Error level. It is not possible to generate if the rule file contains errors.

CGAWARNING 

Warning level. Warnings indicate potential problems and do not prevent generation.

CGAINFO 

Info level.

◆ ContentType

Encodes the types handled by Decoders and Encoders.

Enumerator
CT_UNDEFINED 

Extension does not make use of specific content type.

CT_GEOMETRY 

Extension can handle geometries (and potentially also materials and textures).

CT_MATERIAL 

Extension can handle materials (and potentially also textures).

CT_TEXTURE 

Extension can handle textures.

CT_SHADER 

(Reserved) Extension can handle shader resources.

CT_CGB 

Extension can handle CGB resources.

CT_INITIALSHAPE 

(Reserved) extension can handle initial shape.

CT_CGAERROR 

Extension can handle CGA errors.

CT_CGAPRINT 

Extension can handle CGA print output (see cga print()).

CT_CGAREPORT 

Extension can handle CGA reports (see cga report()).

CT_ATTRIBUTE 

Extension can handle CGA attributes.

CT_SHAPETREE 

Extension can handle shape trees.

CT_STRING 

Extension can handle strings.

CT_TABLE 

Extension can handle tables.

CT_COUNT 

Sentinel value.

◆ LogLevel

Log levels for the the logger.

Enumerator
LOG_TRACE 

Internal call tracing. This log level is unused in release builds of the runtime but may be used by client applications.

LOG_DEBUG 

Internal debug information. This log level is unused in release builds of the runtime but may be used by client applications.

LOG_INFO 

Informational messages such as configuration information during initialization.

LOG_WARNING 

Warning messages issued at a condition that did not abort an ongoing execution.

LOG_ERROR 

Error messages issued at a condition that altered/aborted the ongoing execution.

LOG_FATAL 

Fatal errors that leave the procedural runtime in an inconsistent /non-operational state.

LOG_NO 

No log level set.

◆ Status

The Status enum is used to indicate whether a function was successful or not.

See also
getStatusDescription()
Enumerator
STATUS_OK 

Ok.

STATUS_UNSPECIFIED_ERROR 

Unspecified error.

STATUS_OUT_OF_MEM 

Out of memory.

STATUS_NO_LICENSE 

No license.

STATUS_NOT_ALL_IS_GENERATED 

Not all initial shapes could be generated. Check generate errors.

STATUS_INCOMPATIBLE_IS 

Initial shape not compatible with encoder.

STATUS_FILE_NOT_FOUND 

File not found.

STATUS_FILE_ALREADY_EXISTS 

File already exists.

STATUS_COULD_NOT_OPEN_FILE 

Could not open file.

STATUS_COULD_NOT_CLOSE_FILE 

Could not close file.

STATUS_FILE_WRITE_FAILED 

Could not write to file.

STATUS_FILE_READ_FAILED 

Could not read from file.

STATUS_FILE_SEEK_FAILED 

Could not seek in file.

STATUS_FILE_TELL_FAILED 

Could not tell write position in file.

STATUS_NO_SEEK 

Seeking not supported by callback object.

STATUS_EMPTY_FILE 

Empty file.

STATUS_INVALID_URI 

Invalid URI.

STATUS_STREAM_ADAPTOR_NOT_FOUND 

StreamAdaptor not found.

STATUS_RESOLVEMAP_PROVIDER_NOT_FOUND 

ResolveMapProvider not found.

STATUS_DECODER_NOT_FOUND 

Decoder not found.

STATUS_ENCODER_NOT_FOUND 

Encoder not found.

STATUS_UNABLE_TO_RESOLVE 

Unable to resolve.

STATUS_CHECK_ERROR_PARAM 

Check error parameter.

STATUS_KEY_NOT_FOUND 

Key not found.

STATUS_KEY_ALREADY_TAKEN 

Key already taken.

STATUS_KEY_NOT_SUPPORTED 

Key not supported.

STATUS_STRING_TRUNCATED 

String truncated.

STATUS_ILLEGAL_CALLBACK_OBJECT 

Illegal callback object.

STATUS_ILLEGAL_LOG_HANDLER 

Illegal log handler.

STATUS_ILLEGAL_LOG_LEVEL 

Illegal log level.

STATUS_ILLEGAL_VALUE 

Illegal value.

STATUS_NO_RULEFILE 

No rule file.

STATUS_NO_INITIAL_SHAPE 

No initial shape.

STATUS_CGB_ERROR 

CGB error.

STATUS_NOT_INITIALIZED 

Not initialized.

STATUS_ALREADY_INITIALIZED 

Already initialized.

STATUS_INCONSISTENT_TEXTURE_PARAMS 

Inconsistent texture parameters.

STATUS_CANCELED 

Canceled.

STATUS_UNKNOWN_ATTRIBUTE 

Unknown attribute.

STATUS_UNKNOWN_RULE 

Unknown rule.

STATUS_ARGUMENTS_MISMATCH 

Arguments mismatch.

STATUS_BUFFER_TO_SMALL 

Buffer to small.

STATUS_UNKNOWN_FORMAT 

Unknown format.

STATUS_ENCODE_FAILED 

Encode failed.

STATUS_ATTRIBUTES_ALREADY_SET 

Attributes already set.

STATUS_ATTRIBUTES_NOT_SET 

Attributes not set.

STATUS_GEOMETRY_ALREADY_SET 

Geometry already set.

STATUS_GEOMETRY_NOT_SET 

Geometry not set.

STATUS_ILLEGAL_GEOMETRY 

Illegal geometry.

STATUS_NO_GEOMETRY 

No geometry.

STATUS_NO_CGB_FOUND 

No cgb file found.

STATUS_MULTIPLE_CGBS_FOUND 

More than one cgb file found.

Function Documentation

◆ addLogHandler()

Status prt::addLogHandler ( LogHandler logHandler)

Register a log handler, can be called at any time (also before init()). Is thread-safe.

Parameters
logHandlerLogHandler to register.
Returns
A Status code.

◆ createDecoderInfo()

DecoderInfo const* prt::createDecoderInfo ( const wchar_t *  decoderId,
Status stat = nullptr 
)

Creates an DecoderInfo instance for the given decoder id.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe. The returned instance must be destroyed by the caller.

See also
DecoderInfo, listDecoderIds
Parameters
decoderIdID of decoder to get DecoderInfo for.
[out]statOptional pointer to return the Status.
Returns
Pointer to DecoderInfo instance on success or 0 on failure.

◆ createEncoderInfo()

EncoderInfo const* prt::createEncoderInfo ( const wchar_t *  encoderId,
Status stat = nullptr 
)

Creates an EncoderInfo instance for the given encoder id.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe. The returned instance must be destroyed by the caller.

See also
EncoderInfo, listEncoderIds
Parameters
encoderIdID of encoder to get EncoderInfo for.
[out]statOptional pointer to return the Status.
Returns
Pointer to EncoderInfo instance on success or 0 on failure.

◆ createResolveMap()

ResolveMap const* prt::createResolveMap ( const wchar_t *  rpkOrResURI,
const wchar_t *  unpackFileSystemPath = nullptr,
Status stat = nullptr 
)

Create a ResolveMap for a rpk or a resource which contains embedded resources. The entries will point into the rpk or the passed resource.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe. The returned instance must be destroyed by the caller.

Parameters
rpkOrResURIURI to the rpk or the resource, see Application Notes for URI creation.
unpackRPKToFileSystemPathOptional. If non-null, the rpk / resource gets unpacked to the given directory in the filesystem and the ResolveMap entries will point to those files.
[out]statOptional pointer to return the Status.
Returns
Pointer to ResolveMap instance on success or 0 on failure.

◆ createRuleFileInfo()

RuleFileInfo const* prt::createRuleFileInfo ( const wchar_t *  ruleFileURI,
Cache cache = nullptr,
Status stat = nullptr 
)

Creates a RuleFileInfo instance for a cgb file.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe. The returned instance must be destroyed by the caller.

Parameters
ruleFileURIURI to the cgb file, see Application Notes for URI creation.
cacheOptional Cache instance.
[out]statOptional pointer to return the Status.
Returns
Pointer to a RuleFileInfo instance on success or 0 on failure.

◆ createTextureMetadata()

const AttributeMap* prt::createTextureMetadata ( const wchar_t *  uri,
Cache cache = nullptr,
Status stat = nullptr 
)

Creates a AttributeMap with the metadata for a given texture URI. See prtx::Texture for a list of supported metadata attributes.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe. The returned instance must be destroyed by the caller.

See also
getTexturePixeldata(), Attributable::PrimitiveType, prtx::Texture
Parameters
uriURI of the texture, see Application Notes for URI creation.
cacheOptional Cache instance.
[out]statOptional pointer to return the Status.
Returns
Pointer to a AttributeMap instance on success or 0 on failure.

◆ encodeTexture()

Status prt::encodeTexture ( const AttributeMap metadata,
const uint8_t *  pixeldata,
const wchar_t *  encoderId,
const AttributeMap encoderOptions,
SimpleOutputCallbacks soc 
)

Encodes the passed texture and writes the result to the passed SimpleOutputCallbacks instance.

Parameters
metadataThe textures metadata, must contain width/height/format attributes. Other attributes are optional and it depends on the encoder whether they are supported. See prtx::Texture for a list of supported metadata attributes.
pixeldataThe pixeldata to encode
encoderIdId of the encoder to use.
encoderOptionsOptions for the encoder. This includes the filename.
socThe SimpleOutputCallbacks instance which will receive the encoded texture.
Returns
A Status code.

◆ generate() [1/2]

Status prt::generate ( const InitialShape *const *  initialShapes,
size_t  initialShapeCount,
const OcclusionSet::Handle *  occlusionHandles,
const wchar_t *const *  encoders,
size_t  encodersCount,
const AttributeMap *const *  encoderOptions,
Callbacks callbacks,
Cache cache,
const OcclusionSet occlSet,
const AttributeMap generateOptions = nullptr 
)

Generate and encode procedural models for a number of initial shapes.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe.

See also
Callbacks.
Parameters
initialShapesThe initial shapes for which the procedural models have to be generated.
initialShapeCountThe number of initial shapes in the array.
occlusionHandlesOne occlusion handle for each initial shape. Set to nullptr for no inter-model occlusion tests. Use generateOccluders() to obtain the occlusion handles.
encodersA number (>= 1) of encoders to use to encode the generated model. The encoders are identified by their ID, see EncoderInfo::getID().
encodersCountThe number of encoder ids in the array.
encoderOptionsOne AttributeMap with the enocder options for each encoder.
callbacksPointer to an instance of an implementation of the Callbacks interface.
cachePointer to an instance of an implementation of the Cache interface. See CacheObject.
occlSetThe OcclusionSet which contains the occlusionHandles. Set to nullptr for no inter-model occlusion tests.
generateOptionsAn optional AttributeMap to set advanced generate options.
int "numberWorkerThreads": number of worker threads to internally use for generation. 0 = no multithreading = default
bool "cacheShapeTree": cache the generated shapetrees. default = false.
Returns
A Status code.

◆ generate() [2/2]

Status prt::generate ( const InitialShape *const *  initialShapes,
size_t  initialShapeCount,
const OcclusionSet::Handle *  occlusionHandles,
const wchar_t *const *  encoders,
size_t  encodersCount,
const AttributeMap *const *  encoderOptions,
Callbacks callbacks,
Cache cache,
const OcclusionSet *const *  occlSets,
const size_t *  occlSetCounts,
const AttributeMap generateOptions = nullptr 
)

Generate and encode procedural models for a number of initial shapes.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe.

See also
Callbacks.
Parameters
initialShapesThe initial shapes for which the procedural models have to be generated.
initialShapeCountThe number of initial shapes in the array.
occlusionHandlesOne occlusion handle for each initial shape. Set to nullptr for no inter-model occlusion tests. Each occlusion handle corresponds to one of the given occlusion sets. Use generateOccluders() to obtain the occlusion handles.
encodersA number (>= 1) of encoders to use to encode the generated model. The encoders are identified by their ID, see EncoderInfo::getID().
encodersCountThe number of encoder ids in the array.
encoderOptionsOne AttributeMap with the enocder options for each encoder.
callbacksPointer to an instance of an implementation of the Callbacks interface.
cachePointer to an instance of an implementation of the Cache interface. See CacheObject.
occlSetsThe OcclusionSets which contain the occlusionHandles. Set to nullptr for no inter-model occlusion tests. OcclusionSets are stored subsequently for each initial shape. Each initial shape can have 0, 1 or >1 OcclusionSets. The number of OcclusionSets of an initial shape is stored in occlSetCounts.
occlSetCountsThe number of OcclusionSets in occlSets for each initial shape. Set to nullptr for no inter-model occlusion tests.
generateOptionsAn optional AttributeMap to set advanced generate options.
int "numberWorkerThreads": number of worker threads to internally use for generation. 0 = no multithreading = default
bool "cacheShapeTree": cache the generated shapetrees. default = false.
Returns
A Status code.

◆ generateOccluders()

Status prt::generateOccluders ( const InitialShape *const *  initialShapes,
size_t  initialShapeCount,
OcclusionSet::Handle *  occlusionHandles,
const wchar_t *const *  encoders,
size_t  encodersCount,
const AttributeMap *const *  encoderOptions,
Callbacks callbacks,
Cache cache,
OcclusionSet occlSet,
const AttributeMap generateOptions = nullptr 
)

Populate an OcclusionSet with occluder geometries for each initial shape and return an occlusion handle for each one. These handles (and the OcclusionSet) can then be used to generate() models based on rules with inter-model context and occlusion queries.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe.

See also
Callbacks.
Parameters
initialShapesThe initial shapes for which the occluders have to be generated.
initialShapeCountThe number of initial shapes in the array.
[out]occlusionHandlesMust be preallocated to hold initialShapeCount occlusion Handles, one for each initial shape. occlusionHandles[i] will receive the occlusion handle for initialShapes[i].
encodersOptional encoders to run on the generated shapetree. Set to nullptr if no extra encoders should be used. Note that many encoders only consider leaf shapes and do not capture the correct occluder geometry; these are typically the encoders from the com.esri.prt.codecs plugin. Encoders which traverse the whole shapetree (such as com.esri.prt.core.CGAPrintEncoder, com.esri.prt.core.CGAErrorEncoder or com.esri.prt.core.CGAReportEncoder) can safely be used here.
encodersCountThe number of encoder ids in the array.
encoderOptionsOptions for the additional encoders. Use nullptr if no encoders are used.
callbacksPointer to an instance of an implementation of the Callbacks interface.
cachePointer to an instance of an implementation of the Cache interface. See CacheObject.
occlSetThe OcclusionSet which will be filled with the generated occlusionHandles.
generateOptionsAn optional AttributeMap to set generate options.
Returns
A Status code.

◆ getLogLevel()

LogLevel prt::getLogLevel ( Status status = nullptr)

Query the minimally active LogLevel.

◆ getStatusDescription()

const char* prt::getStatusDescription ( Status  stat)

Returns a human readable description based on a Status value.

◆ getTexturePixeldata()

Status prt::getTexturePixeldata ( const wchar_t *  uri,
uint8_t *  buffer,
size_t  bufferSize,
Cache cache = nullptr 
)

Reads and decodes a texture and copies the pixel data to the passed buffer.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe.

Parameters
uriURI of the texture, see Application Notes for URI creation.
[out]bufferPointer to pre-allocated buffer. The needed size can be calculated with createTextureMetadata() (width*height*bytesPerPixel).
bufferSizeSize of the pre-allocated buffer.
cacheOptional Cache instance.
Returns
A Status code.

◆ getVersion()

Version const* prt::getVersion ( )

Returns the Version struct with information about the current Procedural Runtime.

◆ init()

const Object* prt::init ( const wchar_t *const *  prtPlugins,
size_t  prtPluginsCount,
LogLevel  logLevel,
Status stat = nullptr 
)

Performs global Procedural Runtime initialization. Must be called before prt can be used. Can be called multiple times to load additional extension libraries.

Is thread-safe. Blocks until initialization is done.

Parameters
prtPluginsList of paths to shared libraries or paths of directories to scan for shared libraries.
prtPluginsCountNumber of plugin paths provided.
logLevelLogLevel to use.
[out]statOptional pointer to return the Status.
Returns
A "library handle" object which must be destroyed to unload the library and release resources.

◆ listDecoderIds()

wchar_t* prt::listDecoderIds ( wchar_t *  result,
size_t *  resultSize,
Status stat = nullptr 
)

Lists all registered decoders. If the result does not fit into the allocated buffer, the result is truncated. the INOUT parameter resultSize must be compared to the original buffer size after the call to detect this situation.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe.

See also
DecoderInfo, createDecoderInfo
Parameters
[in,out]resultPointer to pre-allocated string to receive the semicolon-separated list of decoder ids.
[in,out]resultSizePointer to size of reserved buffer; receives the size of the actual result (incl. terminating 0).
[out]statOptional pointer to return the Status.
Returns
result.

◆ listEncoderIds()

wchar_t* prt::listEncoderIds ( wchar_t *  result,
size_t *  resultSize,
Status stat = nullptr 
)

Lists all registered encoders. If the result does not fit into the allocated buffer, the result is truncated. the INOUT parameter resultSize must be compared to the original buffer size after the call to detect this situation.

Must be called after init(), will return STATUS_NOT_INITIALIZED else. Is thread-safe.

See also
EncoderInfo, createEncoderInfo
Parameters
[in,out]resultPointer to pre-allocated string to receive the semicolon-separated list of encoder ids.
[in,out]resultSizePointer to size of reserved buffer; receives the size of the actual result (incl. terminating 0).
[out]statOptional pointer to return the Status.
Returns
result.

◆ log()

Status prt::log ( const wchar_t *  msg,
LogLevel  level 
)

Injects a log message into the PRT log dispatcher, can be called at any time (also before init()). Is thread-safe.

Parameters
msgMessage to log.
levelLogLevel of the message.
Returns
A Status code.

◆ removeLogHandler()

Status prt::removeLogHandler ( LogHandler logHandler)

Remove a previously registered log handler, can be called at any time (also before init()). Is thread-safe.

Parameters
logHandlerLogHandler to remove.
Returns
A Status code.

◆ setLogLevel()

Status prt::setLogLevel ( LogLevel  level)

Change the minimally active LogLevel.