cohtml

Utility macros for enabling bitwise flag operations on enum class types. These macros define the standard bitwise operators (|, &, ^, ~ and their assignment variants) so enum values can be combined and tested as flags. More…

Namespaces

Name
cohtml::cohtml
cohtml::CursorTypes
cohtml::EnumFlags
cohtml::EventAction
Holds the possible actions when deciding if to handle an input event.
cohtml::Fonts
cohtml::i18n
cohtml::ImagesListExtract
Enum containing the options we want when getting the list of loaded images.
cohtml::InputEventPhase
cohtml::InspectorNetworkTabSettings
Settings for inspector network tab.
cohtml::Logging
cohtml::MemTags
cohtml::Profile
cohtml::TextInput
cohtml::TextInputControlType
cohtml::VMemFlags
cohtml::VMemProtection
cohtml::websocket

Classes

Name
classcohtml::AdjustPointer
classcohtml::ArgumentsBinder
Class for communicating between EventHandler and the scripting.
structcohtml::ArrayInfo
Represents an array of a type exposed to the scripting.
classcohtml::ArrayReaderFactory
classcohtml::ArrayReaderFactory< T *, Size >
structcohtml::AssertFail
classcohtml::Binder
Provides binding between C++ and the UI.
structcohtml::BoolConstant
classcohtml::ByRefHolder
structcohtml::CachedResourcesWatermarks
Watermarks used for the image cache management.
structcohtml::ClassType
structcohtml::ClassType< Property Class::*>
structcohtml::ClassType< Property(Class::*)() const >
structcohtml::ClassType< Property(Class::*)()>
structcohtml::CoherentToBoolean
structcohtml::CoherentToBoolean< bool >
structcohtml::CoherentToBoolean< double >
structcohtml::CoherentToBoolean< float >
structcohtml::CoherentToBoolean< int >
structcohtml::CoherentToBoolean< signed long >
structcohtml::CoherentToBoolean< signed long long >
structcohtml::CoherentToBoolean< signed short >
structcohtml::CoherentToBoolean< std::variant< Args… > >
structcohtml::CoherentToBoolean< T * >
structcohtml::CoherentToBoolean< unsigned >
structcohtml::CoherentToBoolean< unsigned long >
structcohtml::CoherentToBoolean< unsigned long long >
structcohtml::CoherentToBoolean< unsigned short >
structcohtml::CoherentToColor
structcohtml::CoherentToColor< const int & >
structcohtml::CoherentToColor< const renoir::Color & >
structcohtml::CoherentToColor< const unsigned & >
structcohtml::CoherentToColor< int >
structcohtml::CoherentToColor< renoir::Color >
structcohtml::CoherentToColor< std::variant< Args… > >
structcohtml::CoherentToColor< T * >
structcohtml::CoherentToColor< unsigned >
structcohtml::CoherentToNumber
structcohtml::CoherentToNumber< double, Number >
structcohtml::CoherentToNumber< float, Number >
structcohtml::CoherentToNumber< int, Number >
structcohtml::CoherentToNumber< signed long long, Number >
structcohtml::CoherentToNumber< signed long, Number >
structcohtml::CoherentToNumber< signed short, Number >
structcohtml::CoherentToNumber< std::variant< Args… >, Number >
structcohtml::CoherentToNumber< T *, N >
structcohtml::CoherentToNumber< unsigned long long, Number >
structcohtml::CoherentToNumber< unsigned long, Number >
structcohtml::CoherentToNumber< unsigned short, Number >
structcohtml::CoherentToNumber< unsigned, Number >
structcohtml::CoherentToString
structcohtml::CoherentToString< bool, void >
structcohtml::CoherentToString< char *, void >
structcohtml::CoherentToString< char, void >
structcohtml::CoherentToString< char16_t *, void >
structcohtml::CoherentToString< char32_t *, void >
structcohtml::CoherentToString< char[N], void >
structcohtml::CoherentToString< const char *, void >
structcohtml::CoherentToString< const char16_t *, void >
structcohtml::CoherentToString< const char32_t *, void >
structcohtml::CoherentToString< const char[N], void >
structcohtml::CoherentToString< const wchar_t *, void >
structcohtml::CoherentToString< double, void >
structcohtml::CoherentToString< float, void >
structcohtml::CoherentToString< int, void >
structcohtml::CoherentToString< long long, void >
structcohtml::CoherentToString< long, void >
structcohtml::CoherentToString< short, void >
structcohtml::CoherentToString< std::basic_string< Char, CharTraits, Allocator > >
structcohtml::CoherentToString< std::variant< Args… >, void >
structcohtml::CoherentToString< T *, void >
structcohtml::CoherentToString< T, typename EnableIf< IsEnum< T >::Value >::Type >
structcohtml::CoherentToString< unsigned char, void >
structcohtml::CoherentToString< unsigned long long, void >
structcohtml::CoherentToString< unsigned long, void >
structcohtml::CoherentToString< unsigned short, void >
structcohtml::CoherentToString< unsigned, void >
structcohtml::CoherentToString< wchar_t *, void >
structcohtml::CoherentToTransformMatrix2D
structcohtml::CoherentToTransformMatrix2D< const char(&)[N]>
structcohtml::CoherentToTransformMatrix2D< const char[N]>
structcohtml::CoherentToTransformMatrix2D< const float * >
structcohtml::CoherentToTransformMatrix2D< const float *& >
structcohtml::CoherentToTransformMatrix2D< const float(&)[6]>
structcohtml::CoherentToTransformMatrix2D< const float[6]>
structcohtml::CoherentToTransformMatrix2D< float * >
structcohtml::CoherentToTransformMatrix2D< float *& >
structcohtml::CoherentToTransformMatrix2D< float(&)[6]>
structcohtml::CoherentToTransformMatrix2D< std::variant< Args… > >
structcohtml::CoherentToTransformMatrix2D< T * >
structcohtml::CoherentTypeInfo
classcohtml::ConcreteProperty
classcohtml::ConcretePropertyReadOnly
classcohtml::DataBuffer
A reference counted data buffer.
structcohtml::DebugDump
Debugging class used for dumping the whole structure of the page DOM.
structcohtml::DisableDefaultBinding
structcohtml::EnableIf
structcohtml::EnableIf< true, T >
classcohtml::EventHandler
structcohtml::EventModifiersState
The state of the key modifiers when an event happens.
structcohtml::EventMouseModifiersState
The state of the mouse modifiers when an event happens.
classcohtml::FieldProperty
classcohtml::FieldProperty< PropertyType(Class::*)>
classcohtml::FieldProperty< PropertyType(Class::*)[ArraySize]>
structcohtml::FontDescription
Struct used for identifying fonts.
structcohtml::FrameCapture
Debugging class holding debug frame captured data and size. Passed to FrameCaptureCallback on View::BeginCaptureDebugFrame and View::CaptureSingleDebugFrame methods.
structcohtml::FunctorArity
structcohtml::FunctorTraits
structcohtml::FunctorTraits< ResultType()>
structcohtml::FunctorTraits< ResultType(*)()>
structcohtml::FunctorTraits< ResultType(*)(Arg0Type)>
structcohtml::FunctorTraits< ResultType(*)(Arg0Type, Arg1Type)>
structcohtml::FunctorTraits< ResultType(*)(Arg0Type, Arg1Type, Arg2Type)>
structcohtml::FunctorTraits< ResultType(*)(Arg0Type, Arg1Type, Arg2Type, Arg3Type)>
structcohtml::FunctorTraits< ResultType(*)(Arg0Type, Arg1Type, Arg2Type, Arg3Type, Arg4Type)>
structcohtml::FunctorTraits< ResultType(Arg0Type)>
structcohtml::FunctorTraits< ResultType(Arg0Type, Arg1Type)>
structcohtml::FunctorTraits< ResultType(Arg0Type, Arg1Type, Arg2Type)>
structcohtml::FunctorTraits< ResultType(Arg0Type, Arg1Type, Arg2Type, Arg3Type)>
structcohtml::FunctorTraits< ResultType(Arg0Type, Arg1Type, Arg2Type, Arg3Type, Arg4Type)>
structcohtml::FunctorTraits< ResultType(ClassType::*)() const >
structcohtml::FunctorTraits< ResultType(ClassType::*)()>
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type) const >
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type)>
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type) const >
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type)>
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type, Arg2Type) const >
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type, Arg2Type)>
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type, Arg2Type, Arg3Type) const >
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type, Arg2Type, Arg3Type)>
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type, Arg2Type, Arg3Type, Arg4Type) const >
structcohtml::FunctorTraits< ResultType(ClassType::*)(Arg0Type, Arg1Type, Arg2Type, Arg3Type, Arg4Type)>
structcohtml::FunctorTraits< std::function< R()> >
structcohtml::FunctorTraits< std::function< R(A0)> >
structcohtml::FunctorTraits< std::function< R(A0, A1)> >
structcohtml::FunctorTraits< std::function< R(A0, A1, A2)> >
structcohtml::FunctorTraits< std::function< R(A0, A1, A2, A3)> >
structcohtml::FunctorTraits< std::function< R(A0, A1, A2, A3, A4)> >
structcohtml::GamepadPoseState
Represents the pose of a motion tracking controller.
structcohtml::GamepadState
Represents the entire state of a single gamepad.
structcohtml::GamepadStateExtended
Extended representation of the gamepad state, including information for controllers that support motion tracking.
structcohtml::GestureEventData
A gesture event.
structcohtml::GetArrayValue
structcohtml::GetArrayValue< T & >
structcohtml::GetArrayValue< Type[]>
structcohtml::GetMapValue
structcohtml::GetMapValue< T & >
structcohtml::GetObjectInfo
structcohtml::GetObjectInfo< const std::variant< Args… > *&, ET_PolymorphUserType >
structcohtml::GetObjectInfo< std::variant< Args… > &, ET_PolymorphUserType >
structcohtml::GetObjectInfo< std::variant< Args… > *&, ET_PolymorphUserType >
structcohtml::GetObjectInfo< Type &, ET_UserType >
structcohtml::GetPairValue
structcohtml::GetPairValue< T & >
structcohtml::GetValue
structcohtml::GetValue< Property Class::* >
structcohtml::GetValue< Property(Class::*)() const >
structcohtml::GetValue< Property(Class::*)()>
structcohtml::GPUMemoryInfo
classcohtml::IAllocator
Allocator interface used by Cohtml for all memory allocations. The user has to provide an object that implements this interface. Memory allocations in Cohtml are tagged, so the user knows the relative distribution of memory among subsystems.
classcohtml::IAsyncResourceHandler
Class that will handle all asynchronous resource requests.
classcohtml::IAsyncResourceRequest
Encapsulates a resource request.
classcohtml::IAsyncResourceResponse
Response that the application should use when the resource has been loaded You can keep a reference to this object as long as needed and call Finish afterwards.
classcohtml::IClientSideSocket
The IClientSideSocket represents platform/client specific part of the web sockets.
classcohtml::IDataStorageHandler
Class that will handle data storage requests.
classcohtml::IDataStorageRequest
Encapsulates a data storage request.
classcohtml::IDataStorageResponse
Response that the application should use when the data storage has been read.
classcohtml::IEventHandler
Interface for handling method calls and UI event callbacks.
classcohtml::IFileSystemReader
Class that allows Cohtml to interface with the local file system. It allows enumerating folders and opening streams to local resources.
classcohtml::IFileSystemWriter
Class that allows Cohtml to interface with the local file system. It allows opening a file for writing and writing information to it.
classcohtml::IInputProxy
Represents an INPUT or TEXTAREA element in the View.
classcohtml::IInternationalizationManager
Takes care of culture specific text operations.
classcohtml::ILocalizationManager
Takes care of translating text between different locales.
structcohtml::ImagesList
A list of images. Used for getting all images that are currently loaded by this View. The list can be used to build a collection of resources that must be pre-loaded via native code or JavaScript to avoid dynamic loading when the page is shown.
classcohtml::INodeProxy
Represents a DOM element in the View - i.e. a DIV, the BODY etc.
classcohtml::IProfileMarkersTracer
structcohtml::IsChar
structcohtml::IsConst
structcohtml::IsConst< const T >
structcohtml::IsCString
structcohtml::IsCString< const T * >
structcohtml::IsDefaultBindEnabled
structcohtml::IsEnum
structcohtml::IsExposedByRef
structcohtml::IsExposedByRef< bool >
structcohtml::IsExposedByRef< char * >
structcohtml::IsExposedByRef< const bool >
structcohtml::IsExposedByRef< const char * >
structcohtml::IsExposedByRef< const double >
structcohtml::IsExposedByRef< const float >
structcohtml::IsExposedByRef< const signed char >
structcohtml::IsExposedByRef< const signed int >
structcohtml::IsExposedByRef< const signed long >
structcohtml::IsExposedByRef< const signed long long >
structcohtml::IsExposedByRef< const unsigned char >
structcohtml::IsExposedByRef< const unsigned int >
structcohtml::IsExposedByRef< const unsigned long >
structcohtml::IsExposedByRef< const unsigned long long >
structcohtml::IsExposedByRef< const wchar_t * >
structcohtml::IsExposedByRef< double >
structcohtml::IsExposedByRef< float >
structcohtml::IsExposedByRef< signed char >
structcohtml::IsExposedByRef< signed int >
structcohtml::IsExposedByRef< signed long >
structcohtml::IsExposedByRef< signed long long >
structcohtml::IsExposedByRef< T & >
structcohtml::IsExposedByRef< unsigned char >
structcohtml::IsExposedByRef< unsigned int >
structcohtml::IsExposedByRef< unsigned long >
structcohtml::IsExposedByRef< unsigned long long >
structcohtml::IsExposedByRef< wchar_t * >
structcohtml::IsMap
structcohtml::IsMap< std::map< Key, Value, Comparator, Allocator > >
structcohtml::IsMap< std::unordered_map< Key, Value, Hash, Pred, Allocator > >
classcohtml::ISocketListener
The ISocketListener represents cohtml::View side of the web sockets.
structcohtml::IsPair
structcohtml::IsPair< std::pair< T1, T2 > >
structcohtml::IsSame
structcohtml::IsSame< T, T >
structcohtml::IsValidModelType
structcohtml::IsValidModelType< std::basic_string< Char, CharTraits, Allocator > >
structcohtml::IsValidModelType< std::map< Key, Value, Comparator, Allocator > >
structcohtml::IsValidModelType< std::pair< T1, T2 > >
structcohtml::IsValidModelType< std::unordered_map< Key, Value, Hash, Pred, Allocator > >
structcohtml::IsValidModelType< std::vector< T, A > >
structcohtml::IsVector
structcohtml::IsVector< std::vector< T, A > >
structcohtml::IsVoid
structcohtml::IsVoid< void >
classcohtml::ISyncStreamReader
Class for synchronously reading local resources.
classcohtml::ISyncStreamWriter
Class for synchronously writing local resources.
classcohtml::ITextInputHandler
Notifies of changes to input elements.
classcohtml::ITextTransformationManager
Implement this interface to support text transformations. The class is used when the text-transform property is used. Most languages require Unicode support to implement casing and cohtml delegates this work to the embedder. OS-specific APIs in Win32, Mac OS X and cross-platform libraries like ICU can implement the required functionality. An instance must be optionally set in SystemSettings.
classcohtml::ITimeZoneProvider
classcohtml::IViewListener
Interface that allows to listen for various events in the View.
classcohtml::IVirtualAllocator
Virtual memory allocator interface used by Cohtml for scripting memory allocations.
structcohtml::KeyEventData
A keyboard event.
classcohtml::Library
This class encapsulates the global Cohtml library.
structcohtml::LibraryParams
structcohtml::LibraryParamsWithExternalRenderingLibrary
Initialization parameters of the Cohtml library.
structcohtml::MapInfo
Represents a map of a type exposed to the scripting.
structcohtml::MemberPointerTraits
structcohtml::MemberPointerTraits< T C::* >
structcohtml::MouseEventData
structcohtml::ObjectInfo
Represents an object of a type exposed to the scripting.
structcohtml::Overload_CoherentBind_For_Your_Type
structcohtml::PageCapture
Object pointing a raw data coming from a full page capture (see View::SetupPageCapture and View::DoPageCapture).
structcohtml::PairInfo
Represents a pair of a types exposed to the scripting.
structcohtml::PlatformSpecificParams
Platform-specific initialization parameters of the Cohtml library.
structcohtml::PointerTrait
structcohtml::PointerTrait< const T & >
structcohtml::PointerTrait< const T * >
structcohtml::PointerTrait< const T >
structcohtml::PointerTrait< std::shared_ptr< const T > >
structcohtml::PointerTrait< std::shared_ptr< T > >
structcohtml::PointerTrait< std::unique_ptr< const T > >
structcohtml::PointerTrait< std::unique_ptr< T > >
structcohtml::PointerTrait< T & >
structcohtml::PointerTrait< T * >
structcohtml::PreciseHandle
classcohtml::Property
Represents a property of a type exposed to the scripting. This interface type-erases access to a native property so the SDK can interact with it without knowing its concrete C++ type.
structcohtml::PropertyType
structcohtml::PropertyType< ReturnType(Class::*)(const Property &)>
structcohtml::PropertyType< ReturnType(Class::*)(const T(&)[N]) >
structcohtml::PropertyType< ReturnType(Class::*)(Property)>
structcohtml::PropertyType< ReturnType(Class::*)(T(&)[N]) >
structcohtml::RemoveConst
structcohtml::RemoveConst< const T & >
structcohtml::RemoveConst< const T >
structcohtml::RemoveConstRef
structcohtml::RemoveConstRef< const T & >
structcohtml::RemoveConstRef< const T >
structcohtml::RemoveConstRef< T & >
structcohtml::RemoveRef
structcohtml::RemoveRef< const T & >
structcohtml::RemoveRef< T & >
structcohtml::ReturnsByRef
structcohtml::ReturnsByRef< T &(C::*)() const >
structcohtml::ReturnsByRef< T &(C::*)()>
structcohtml::ReturnsByRef< T(C::*)() const >
structcohtml::ReturnsByRef< T(C::*)()>
structcohtml::ReturnsByRef< T(C::*)>
structcohtml::ScreenInfo
Holds the information about current screen.
classcohtml::ScriptCompiler
classcohtml::System
A System owns multiple Views. These Views share resources among them. It is usually enough to have just one System per application run. All System APIs, unless explicitly stated otherwise, can be called on any thread, but should not be used on multiple threads simultaneously.
classcohtml::SystemCacheStats
Statistics of the current state of the internal caches of the system Remember to Release the object when done with it to avoid memory leaks.
classcohtml::SystemRenderer
The SystemRenderer lives on the render thread and holds all resources shared between multiple Views belonging to the same System (font atlases, texture caches etc.)
structcohtml::SystemRendererSettings
System renderer settings.
structcohtml::SystemRendererSettingsWithExternalRenderingLibrary
System renderer settings when an using external rendering library.
structcohtml::SystemSettings
Settings for a System.
classcohtml::ThisHolder
classcohtml::ThisHolder< TrueType >
structcohtml::TouchEventData
A touch event.
classcohtml::TypeDescription
Helper class for describing types.
classcohtml::TypedProperty
structcohtml::TypeToElementType
structcohtml::TypeToElementType< bool >
structcohtml::TypeToElementType< char >
structcohtml::TypeToElementType< const std::unordered_map< Key, Value, Hash, Pred, Allocator > & >
structcohtml::TypeToElementType< const std::unordered_map< Key, Value, Hash, Pred, Allocator > >
structcohtml::TypeToElementType< const Type >
structcohtml::TypeToElementType< double >
structcohtml::TypeToElementType< float >
structcohtml::TypeToElementType< int >
structcohtml::TypeToElementType< renoir::Color >
structcohtml::TypeToElementType< signed char >
structcohtml::TypeToElementType< signed long >
structcohtml::TypeToElementType< signed long long >
structcohtml::TypeToElementType< signed short >
structcohtml::TypeToElementType< std::basic_string< Char, CharTraits, Allocator > >
structcohtml::TypeToElementType< std::map< Key, Value, Comparator, Allocator > >
structcohtml::TypeToElementType< std::pair< T1, T2 > >
structcohtml::TypeToElementType< std::unordered_map< Key, Value, Hash, Pred, Allocator > & >
structcohtml::TypeToElementType< std::unordered_map< Key, Value, Hash, Pred, Allocator > >
structcohtml::TypeToElementType< std::vector< T, A > >
structcohtml::TypeToElementType< Type & >
structcohtml::TypeToElementType< Type(&)[Size]>
structcohtml::TypeToElementType< unsigned >
structcohtml::TypeToElementType< unsigned char >
structcohtml::TypeToElementType< unsigned long >
structcohtml::TypeToElementType< unsigned long long >
structcohtml::TypeToElementType< unsigned short >
structcohtml::TypeToElementTypeWrapper
structcohtml::TypeToElementTypeWrapper< Type, true >
structcohtml::UnwrapPointer
structcohtml::UnwrapPointer< const T & >
structcohtml::UnwrapPointer< const T >
structcohtml::UnwrapPointer< T & >
structcohtml::UnwrapPointerType
structcohtml::UnwrapPointerType< T, true >
structcohtml::UserFontDescription
Struct representing user font data. Baseline is 0.
structcohtml::UserGPUMemoryInfo
classcohtml::VectorReaderFactory
classcohtml::VectorReaderFactory< std::vector< T, A > >
classcohtml::View
The View represents a UI page with its DOM, styles and JavaScript context. Think of the View as a whole UI or UI element. The View for instance could be the whole HUD of a game. All View APIs, unless explicitly stated otherwise, can be called on any thread, but should not be used on multiple threads simultaneously.
classcohtml::ViewRenderer
The ViewRenderer is in charge of drawing a View in a user-supplied texture.
structcohtml::ViewRendererSettings
structcohtml::ViewSettings
Settings used when initializing a View.

Types

Name
enum class unsigned intCompatibilityFlags { None = 0, VCF_SynchronousStyleSolving = 1 « 0, VCF_DisableAspectRatio = 1 « 1, VCF_StripWhitespaceNodes = 1 « 2, VCF_RevertRematchingBehavior_Partial = 1 « 3, VCF_RevertRematchingBehavior_All = 1 « 4, VCF_DisableFlexBasisUnits = 1 « 5, VCF_IncludeStyleValueInMutationObserver = 1 « 6, LCF_DoNotSnapToIntegerCoordsBeforeTransform = 1 « 7, LCF_DisableFontDataPreloading = 1 « 8, LCF_DisableCSSSharing = 1 « 9}
Compatibility flags that can be used to enable legacy behaviors. Split into 2 groups, depending on what API the flag should be passed to:
enumWorkType { WT_Resources, WT_Layout}
enumWorkExecutionMode { WEM_UntilQueueEmpty, WEM_UntilQuit}
The enumeration tells the Library how much work to execute in the invocation Please refer to the asynchronous work documentation for details.
enumGamepadHand { GH_None = 0, GH_Left, GH_Right}
Enumeration that represent binding of a gamepad to a specific hand. Used for motion tracking controllers which are used in pairs, one controller per hand.
enum class unsigned charHTMLTag { ENTRY, COUNT}
enumRenderingTasksAvailableType { RTA_ViewReadyForRendering, RTA_RenderingSubSystemTask}
enum classLayoutAlgorithm { CompatibilityMode, WebStandardMode}
enumInterceptRequestStatus { Allow, Restrict}
enumInternalCaches { ICACHE_Shadows = 1 « 0, ICACHE_Paths = 1 « 1, ICACHE_Textures = 1 « 2, ICACHE_ScratchLayers = 1 « 3, ICACHE_ScratchTextures = 1 « 4, ICACHE_GfxCommandBuffers = 1 « 5, ICACHE_GfxCommandProcessors = 1 « 6, ICACHE_SVGSurfaces = 1 « 7, ICACHE_BackdropFilterSurfaces = 1 « 8, ICACHE_DepthStencilTextures = 1 « 9, ICACHE_GPUResourcesPool = 1 « 10}
enumCaptureMode { CM_PreserveAll, CM_PreserveAlpha, CM_ObfuscateAll}
When serializing rendering commands, part of the image data in a document is saved as well. With these capture modes, you can force the capturer to obfuscate the pixel data and with that no images will be leaked through the serialized capture.
enumRegisterModelStatus { RMS_Success, RMS_ModelDataAlreadyRegistered, RMS_ModelNameAlreadyRegistered, RMS_InvalidModel, RMS_DocumentNotCreated}
Status of a call to CreateModel() and RegisterModel()
enumUpdateModelStatus { UMS_Success, UMS_ModelNotRegistered, UMS_DocumentNotCreated}
Status of a call to UpdateWholeModel(), UnregisterModel()
enumSynchronizeModelsStatus { SMS_Success, SMS_DocumentNotCreated, SMS_DocumentDestruction, SMS_SynchronizationInProgress}
Status of a call to SynchronizeModels()
enumValueType { VT_Null, VT_Undefined, VT_Boolean, VT_Number, VT_String, VT_Object, VT_Array, VT_Count}
The primitive types coming from JS.
enumElementType { ET_Boolean, ET_Int8, ET_UInt8, ET_Int16, ET_UInt16, ET_Int32, ET_UInt32, ET_Int64, ET_UInt64, ET_Float, ET_Double, ET_String, ET_Color, ET_Array, ET_Map, ET_Pair, ET_UserType, ET_PolymorphUserType}
Represents the underlying data category of a property, array element, map value, or pair member exposed to the scripting system.
typedef doubleTimePoint
typedef intTaskFamilyId
typedef void(*)(void *userData, WorkType type, TaskFamilyId family)OnWorkAvailableFunc
Called when a new task is available and should be executed later on.
typedef void(*)(void *userData, void *texturePtr)OnUserImageDroppedFunc
typedef void *BoundEventHandle
typedef void(*)(void *userData, unsigned viewId, unsigned frameId, RenderingTasksAvailableType type)OnRenderingTasksAvailableFunc
typedef double(*)(void *userdata, unsigned viewId)OnMonotonicallyIncreasingTimeRequestFunc
typedef void(*)(void *userData, FrameCapture *capture)FrameCaptureCallback
Function signature of callback used in View::BeginCaptureDebugFrame and View::CaptureSingleDebugFrame.
typedef void(*)(Binder *, void *, size_t)Reader
typedef size_t(*)(void *)ArrayLengthGetter
typedef void ()(void *, size_t)ArrayElementGetter
typedef void ()(void *userData, const char *name)MapElementGetter
typedef size_t(*)(void *userData)LengthGetter
typedef void ()(void *userData, size_t index)ElementGetter
typedef void(*)(Binder *, void *, size_t)ArrayElementBinder
typedef BoolConstant< true >TrueType
typedef BoolConstant< false >FalseType
template <typename T >
using typename RemoveConstRef< T >::Type
RemoveConstRef_t
template <typename T >
using typename UnwrapPointerType< typename RemoveConstRef< T >::Type, PointerTrait< T >::Value >::Type
DecayedType
typedef void ()(void *, size_t)NativeReader
typedef size_t(*)(void *)VectorLengthFunc

Functions

Name
template <typename Functor >
IEventHandler *
MakeHandler(Functor functor)
Create event handler from generic C++ functor.
template <typename Method >
IEventHandler *
MakeHandler(void * object, Method method)
Create event handler from C++ method.
COHTML_DEFINE_ENUM_FLAG_OPERATORS(CompatibilityFlags )
voidAdaptRenderingAllocatorAndLoggerFromCohtml(IAllocator * allocator, Logging::ILogHandler * logger, renoir::IAllocator ** outRenderingAllocator, renoir::Logging::ILogHandler ** outRenderingLogger)
Function to adapt Cohtml based IAllocator and ILogHandler to the Rendering library variants It will use the allocator instance to allocate the adapters. You can call this to use Cohtml instances when using an externally initialized rendering library.
voidDestroyAdaptedRenderingAllocatorAndLogger(IAllocator * allocator, renoir::IAllocator * renderingAllocator, renoir::Logging::ILogHandler * renderingLogger)
Deallocates the adapters created from AdaptRenderingAllocatorAndLoggerFromCohtml.
boolIsTagSelfClosing(HTMLTag tag)
boolCanTagContainHTML(HTMLTag tag)
boolCanSVGTagContainText(HTMLTag tag)
boolCanTagBeSVG(HTMLTag tag)
template <typename T >
void COHERENT_STDCALL
CoherentCreateModelBindPointer(Binder * binder, T * model)
template <typename ArrayType ,size_t Size>
size_t
CoherentArrayLength(void * arrayPtr)
template <typename ArrayType >
void
CoherentArrayElementReader(Binder * binder, void * data, size_t position)
template <typename ArrayType >
void
CoherentArrayElementBinder(Binder * binder, void * arr, size_t index)
template <typename T >
EnableIf< PointerTrait< T >::Value, void * >::Type
CoherentArrayElementGetterImpl(T & object)
template <typename T >
EnableIf<!PointerTrait< T >::Value &&!IsCString< T >::Value, void * >::Type
CoherentArrayElementGetterImpl(T & object)
template <typename T >
EnableIf<!PointerTrait< T >::Value &&IsCString< T >::Value, void * >::Type
CoherentArrayElementGetterImpl(T & object)
template <typename ArrayType >
void *
CoherentArrayElementGetter(void * arr, size_t index)
template <typename ArrayType ,size_t ArraySize>
EnableIf<!IsChar< ArrayType >::Value
template <typename ArrayType ,size_t ArraySize>
EnableIf< IsChar< ArrayType >::Value &&!IsSame< ArrayType, unsigned char >::Value >::Type
CoherentBindInternal(Binder * binder, ArrayType array[ArraySize])
template <typename ArrayType ,size_t ArraySize>
EnableIf<!IsChar< ArrayType >::Value
template <typename ArrayType ,size_t ArraySize>
EnableIf< IsChar< ArrayType >::Value &&!IsSame< ArrayType, unsigned char >::Value >::Type
CoherentReadInternal(Binder * binder, ArrayType array[ArraySize])
const char *ValueTypeToString(ValueType type)
voidCoherentBindInternal(Binder * binder, bool value)
voidCoherentBindInternal(Binder * binder, signed short value)
voidCoherentBindInternal(Binder * binder, unsigned short value)
voidCoherentBindInternal(Binder * binder, signed int value)
voidCoherentBindInternal(Binder * binder, unsigned int value)
voidCoherentBindInternal(Binder * binder, signed long long value)
voidCoherentBindInternal(Binder * binder, unsigned long long value)
voidCoherentBindInternal(Binder * binder, signed long value)
voidCoherentBindInternal(Binder * binder, unsigned long value)
voidCoherentBindInternal(Binder * binder, char value)
voidCoherentBindInternal(Binder * binder, signed char value)
voidCoherentBindInternal(Binder * binder, unsigned char value)
voidCoherentBindInternal(Binder * binder, float value)
voidCoherentBindInternal(Binder * binder, double value)
voidCoherentBindInternal(Binder * binder, const char * value)
voidCoherentBindInternal(Binder * binder, const wchar_t * value)
voidCoherentBindInternal(Binder * binder, const char16_t * value)
voidCoherentBindInternal(Binder * binder, const char32_t * value)
voidCoherentReadInternal(Binder * binder, signed short & value)
voidCoherentReadInternal(Binder * binder, unsigned short & value)
voidCoherentReadInternal(Binder * binder, signed int & value)
voidCoherentReadInternal(Binder * binder, unsigned int & value)
voidCoherentReadInternal(Binder * binder, signed long long & value)
voidCoherentReadInternal(Binder * binder, unsigned long long & value)
voidCoherentReadInternal(Binder * binder, signed long & value)
voidCoherentReadInternal(Binder * binder, unsigned long & value)
voidCoherentReadInternal(Binder * binder, bool & value)
voidCoherentReadInternal(Binder * binder, char & value)
voidCoherentReadInternal(Binder * binder, signed char & value)
voidCoherentReadInternal(Binder * binder, unsigned char & value)
voidCoherentReadInternal(Binder * binder, float & value)
voidCoherentReadInternal(Binder * binder, double & value)
template <typename T >
EnableIf< cohtml::TypeToElementType< T >::value==ElementType::ET_UserType, void >::Type
CoherentBindInternalPointerHelper(Binder * binder, T * object)
template <typename T >
EnableIf< cohtml::TypeToElementType< T >::value !=ElementType::ET_UserType, void >::Type
CoherentBindInternalPointerHelper(Binder * binder, T * object)
template <typename T >
EnableIf< PointerTrait< T >::Value, void >::Type
CoherentBindInternalPointer(Binder * binder, T & object)
template <typename T >
EnableIf<!PointerTrait< T >::Value &&!IsCString< T >::Value, void >::Type
CoherentBindInternalPointer(Binder * binder, T & object)
template <typename T >
EnableIf<!PointerTrait< T * >::Value &&IsCString< T * >::Value, void >::Type
CoherentBindInternalPointer(Binder * binder, T *& object)
template <typename T >
EnableIf< PointerTrait< T >::Value, void >::Type
CoherentReadInternalUserType(Binder * binder, T & object)
template <typename T >
EnableIf<!PointerTrait< T >::Value &&IsCString< T >::Value, void >::Type
CoherentReadInternalUserType(Binder * binder, T & object)
template <typename T >
EnableIf<!PointerTrait< T >::Value &&!IsCString< T >::Value, void >::Type
CoherentReadInternalUserType(Binder * binder, T & object)
template <typename T >
EnableIf< IsDefaultBindEnabled< T >::Value >::Type
CoherentBindInternal(Binder * binder, T & object)
template <typename T >
EnableIf< IsDefaultBindEnabled< T >::Value >::Type
CoherentBindInternal(Binder * binder, const T & object)
template <typename T >
EnableIf< IsDefaultBindEnabled< T >::Value >::Type
CoherentReadInternal(Binder * binder, T & object)
template <typename T ,typename A >
void
CoherentBindKeyValueProperty(Binder * binder, T && key, A && value)
template <typename T ,typename A >
void
CoherentBindKeyValueProperty(Binder * binder, T && keyProperty, void * key, A && valueProperty, void * value)
template <typename T >
ByRefHolder< T >
ByRef(T & ref)
template <typename T >
void
CoherentBindInternal(Binder * binder, ByRefHolder< T > & holder)
template <typename T >
void
CoherentBindInternal(Binder * binder, const ByRefHolder< T > & holder)
voidCoherentBindInternal(Binder * binder, renoir::Color & value)
voidCoherentBindInternal(Binder * binder, const renoir::Color & value)
voidCoherentReadInternal(Binder * binder, renoir::Color & value)
template <typename Key ,typename Value ,typename Comparator ,typename Allocator >
void
CoherentBindInternal(Binder * binder, std::map< Key, Value, Comparator, Allocator > & value)
template <typename Key ,typename Value ,typename Comparator ,typename Allocator >
void
CoherentBindInternal(Binder * binder, const std::map< Key, Value, Comparator, Allocator > & value)
template <typename Key ,typename Value ,typename Comparator ,typename Allocator >
void
CoherentReadInternal(Binder * binder, std::map< Key, Value, Comparator, Allocator > & value)
template <typename Key ,typename Value ,typename Comparator ,typename Allocator >
bool
GetMapValueInvoke(Binder * binder, MapInfo * mapInfo, std::map< Key, Value, Comparator, Allocator > * pMap)
template <typename T >
void
CoherentReadMapKey(Binder * binder, T & value)
template <typename T >
EnableIf<!IsMap< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type
GetMapValueInvoke(Binder * binder, void * object, MapInfo * mapInfo, const TypedProperty< T &> * prop)
template <typename T >
EnableIf< IsMap< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type
GetMapValueInvoke(Binder * binder, void * object, MapInfo * mapInfo, const TypedProperty< T &> * prop)
template <typename T >
bool
GetMapValueInvoke(Binder * binder, MapInfo * mapInfo, T notMap)
template <typename MapType ,typename MapKeyType ,typename MapValueType >
EnableIf<!cohtml::PointerTrait< MapValueType >::Value, void * >::Type
CoherentMapNativeElementReader(void * data, char const * name)
template <typename MapType ,typename MapKeyType ,typename MapValueType >
EnableIf< cohtml::PointerTrait< MapValueType >::Value, void * >::Type
CoherentMapNativeElementReader(void * data, char const * name)
template <typename T1 ,typename T2 >
void
CoherentBindInternal(Binder * binder, std::pair< T1, T2 > & value)
template <typename T1 ,typename T2 >
void
CoherentBindInternal(Binder * binder, const std::pair< T1, T2 > & value)
template <typename T1 ,typename T2 >
void
CoherentReadInternal(Binder * binder, std::pair< T1, T2 > & value)
template <typename T >
EnableIf<!IsPair< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type
GetPairValueInvoke(Binder * binder, void * object, PairInfo * pairInfo, const TypedProperty< T &> * prop)
template <typename T >
bool
GetPairValueInvoke(Binder * binder, PairInfo * pairInfo, T value)
template <typename T1 ,typename T2 >
bool
GetPairValueInvoke(Binder * binder, PairInfo * pairInfo, std::pair< T1, T2 > * pPair)
template <typename T >
EnableIf< IsPair< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type
GetPairValueInvoke(Binder * binder, void * object, PairInfo * arrayInfo, const TypedProperty< T &> * prop)
template <typename ArrayType ,size_t ArraySize>
EnableIf<(!IsChar< ArrayType >::Value
template <typename ArrayType ,size_t ArraySize>
EnableIf<(!IsChar< ArrayType >::Value
template <typename ValueType >
bool
ExtractRawArray(Binder * , const ValueType & , ArrayInfo * )
template <typename T >
EnableIf< IsCString< T >::Value, void >::Type
CoherentTypeInfoCallCoherentBindInternal(Binder * binder)
template <typename T >
EnableIf< IsCString< T >::Value, void >::Type
CoherentTypeInfoCallCoherentBindInternal(Binder * binder, void * model)
template <typename T >
EnableIf<!IsCString< T >::Value, void >::Type
CoherentTypeInfoCallCoherentBindInternal(Binder * binder)
template <typename T >
EnableIf<!IsCString< T >::Value, void >::Type
CoherentTypeInfoCallCoherentBindInternal(Binder * binder, void * model)
template <typename Type >
EnableIf< PointerTrait< Type >::Value, bool >::Type
GetObjectInfoInvoke(Binder * binder, void * object, ObjectInfo * objInfo, const TypedProperty< Type &> * prop)
template <typename Type >
EnableIf<!PointerTrait< Type >::Value, bool >::Type
GetObjectInfoInvoke(Binder * binder, void * object, ObjectInfo * objInfo, const TypedProperty< Type &> * prop)
template <typename P >
FieldProperty< P >
MakeProperty(const char * name, P p)
template <typename G ,typename S >
ConcreteProperty< G, S >
MakeProperty(const char * name, G g, S s)
template <typename G >
ConcretePropertyReadOnly< G >
MakePropertyReadOnly(const char * name, G g)
template <typename Char ,typename CharTraits ,typename Allocator >
void
CoherentBindInternal(Binder * binder, std::basic_string< Char, CharTraits, Allocator > & value)
template <typename Char ,typename CharTraits ,typename Allocator >
void
CoherentBindInternal(Binder * binder, const std::basic_string< Char, CharTraits, Allocator > & value)
template <typename Char ,typename CharTraits ,typename Allocator >
void
CoherentReadInternal(Binder * binder, std::basic_string< Char, CharTraits, Allocator > & value)
template <typename Char ,typename CharTraits ,typename Allocator >
void
CoherentReadMapKey(Binder * binder, std::basic_string< Char, CharTraits, Allocator > & value)
template <typename T >
DecayedType< T > *
DecayToMutablePtrUnchecked(T & value)
Removes const and reference qualifiers from T and converts the input to a mutable pointer.
CSTRING_TYPETRAIT(char )
CSTRING_TYPETRAIT(signed char)
CSTRING_TYPETRAIT(unsigned char)
CSTRING_TYPETRAIT(wchar_t )
CSTRING_TYPETRAIT(char16_t )
CSTRING_TYPETRAIT(char32_t )
template <typename Key ,typename Value ,typename Hash ,typename Pred ,typename Allocator >
void
CoherentBindInternal(Binder * binder, std::unordered_map< Key, Value, Hash, Pred, Allocator > & value)
template <typename Key ,typename Value ,typename Hash ,typename Pred ,typename Allocator >
void
CoherentBindInternal(Binder * binder, const std::unordered_map< Key, Value, Hash, Pred, Allocator > & value)
template <typename Key ,typename Value ,typename Hash ,typename Pred ,typename Allocator >
void
CoherentReadInternal(Binder * binder, std::unordered_map< Key, Value, Hash, Pred, Allocator > & value)
template <typename Key ,typename Value ,typename Hash ,typename Pred ,typename Allocator >
bool
GetMapValueInvoke(Binder * binder, MapInfo * mapInfo, std::unordered_map< Key, Value, Hash, Pred, Allocator > * pMap)
template <typename… Args>
void
CoherentBindInternal(cohtml::Binder * binder, std::variant< Args… > & value)
template <typename… Args>
void
CoherentBindInternal(cohtml::Binder * binder, std::variant< Args… > * value)
template <typename… Args>
void
CoherentBindInternal(cohtml::Binder * binder, const std::variant< Args… > & value)
template <typename… Args>
void
CoherentBindInternal(cohtml::Binder * binder, const std::variant< Args… > * value)
template <typename… Args>
void
CoherentReadInternal(cohtml::Binder * binder, std::variant< Args… > & value)
template <typename… Args>
void
CoherentReadInternal(cohtml::Binder * binder, const std::variant< Args… > & value)
template <typename… Args>
bool
GetObjectInfoInvoke(Binder * binder, ObjectInfo * objInfo, std::variant< Args… > & value)
template <typename… Args>
bool
GetArrayValueInvoke(Binder * binder, void * object, ArrayInfo * arrayinfo, const TypedProperty< std::variant< Args… > &> * prop)
template <typename… Args>
bool
GetArrayValueInvoke(Binder * binder, void * object, ArrayInfo * arrayinfo, const TypedProperty< std::variant< Args… > *&> * prop)
template <typename… Args>
bool
GetArrayValueInvoke(Binder * binder, void * object, ArrayInfo * arrayinfo, const TypedProperty< const std::variant< Args… > *&> * prop)
template <typename… Args>
bool
GetPairValueInvoke(Binder * binder, void * object, PairInfo * pairInfo, const TypedProperty< std::variant< Args… > &> * prop)
template <typename… Args>
bool
GetPairValueInvoke(Binder * binder, void * object, PairInfo * pairInfo, const TypedProperty< std::variant< Args… > *&> * prop)
template <typename… Args>
bool
GetPairValueInvoke(Binder * binder, void * object, PairInfo * pairInfo, const TypedProperty< const std::variant< Args… > *&> * prop)
template <typename… Args>
bool
GetMapValueInvoke(Binder * binder, void * object, MapInfo * mapInfo, const TypedProperty< std::variant< Args… > &> * prop)
template <typename… Args>
bool
GetMapValueInvoke(Binder * binder, void * object, MapInfo * mapInfo, const TypedProperty< std::variant< Args… > *&> * prop)
template <typename… Args>
bool
GetMapValueInvoke(Binder * binder, void * object, MapInfo * mapInfo, const TypedProperty< const std::variant< Args… > *&> * prop)
template <typename VectorType >
size_t
CoherentVectorLength(void * vectorPtr)
template <typename VectorType ,typename T >
EnableIf<!cohtml::PointerTrait< T >::Value, void >::Type
CoherentVectorElementReader(Binder * binder, void * vectorPtr, size_t position)
template <typename VectorType ,typename T >
EnableIf< cohtml::PointerTrait< T >::Value, void >::Type
CoherentVectorElementReader(Binder * binder, void * vectorPtr, size_t position)
template <typename VectorType ,typename T >
EnableIf<!cohtml::PointerTrait< T >::Value, void * >::Type
CoherentVectorNativeElementReader(void * vectorPtr, size_t position)
template <typename VectorType ,typename T >
EnableIf< cohtml::PointerTrait< T >::Value, void * >::Type
CoherentVectorNativeElementReader(void * vectorPtr, size_t position)
template <typename VectorType >
void
CoherentVectorElementBinder(Binder * binder, void * vectorPtr, size_t index)
template <typename T ,typename A >
void
CoherentBindInternal(Binder * binder, std::vector< T, A > & value)
template <typename T ,typename A >
void
CoherentBindInternal(Binder * binder, const std::vector< T, A > & value)
template <typename A >
void
CoherentBindInternal(Binder * binder, std::vector< float, A > & value)
template <typename A >
void
CoherentBindInternal(Binder * binder, const std::vector< float, A > & value)
template <typename A >
void
CoherentBindInternal(Binder * binder, std::vector< int, A > & value)
template <typename A >
void
CoherentBindInternal(Binder * binder, const std::vector< int, A > & value)
template <typename T ,typename A >
void
CoherentReadInternal(Binder * binder, std::vector< T, A > & value)
template <typename T >
EnableIf<!IsVector< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type
GetArrayValueInvoke(Binder * binder, void * object, ArrayInfo * arrayInfo, const TypedProperty< T &> * prop)
template <typename T >
bool
GetArrayValueInvoke(Binder * binder, ArrayInfo * arrayInfo, T value)
template <typename T ,typename A >
bool
GetArrayValueInvoke(Binder * binder, ArrayInfo * arrayInfo, std::vector< T, A > * pVector)
template <typename T >
EnableIf< IsVector< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type
GetArrayValueInvoke(Binder * binder, void * object, ArrayInfo * arrayInfo, const TypedProperty< T &> * prop)

Detailed Description

Utility macros for enabling bitwise flag operations on enum class types. These macros define the standard bitwise operators (|, &, ^, ~ and their assignment variants) so enum values can be combined and tested as flags.

When binding a std::variant property, changing the active alternative at runtime to a different complex type after the property has been bound to JavaScript is unsupported and results in undefined behavior. (e.g. model.data bound as MyUserType, then reassigned). The underlying JavaScript object is not recreated when the active type changes.

Contains almost all Coherent namespaces, classes and functions.

Types Documentation

enum CompatibilityFlags

EnumeratorValueDescription
None0
VCF_SynchronousStyleSolving1 « 0Enables the legacy synchronous style solving behavior for each view, where style changes are applied immediately on the UI thread as part of View::Advance() instead of being deferred into its own task to be executed on a different thread. Avoid using this as it may cause performance regressions!
VCF_DisableAspectRatio1 « 1Disables the aspect ratio correction for images, which can be used to work around some driver bugs that cause incorrect aspect ratio when rendering to render targets with non-default resolutions.
VCF_StripWhitespaceNodes1 « 2Enables the stripping of whitespace-only text nodes from the DOM, which can be used to work around some layout issues in existing UIs caused by the presence of such nodes. Stripping is disabled by default because some front-end frameworks (such as Svelte and SolidJS) rely on whitespace nodes and break when they are removed.
VCF_RevertRematchingBehavior_Partial1 « 3Reverts some of the optimizations related to rematching of CSS selectors, which can be used to work around some layout issues in existing UIs that were caused by the previous rematching behavior.
VCF_RevertRematchingBehavior_All1 « 4Reverts all of the optimizations related to rematching of CSS selectors, which can be used to work around some layout issues in existing UIs that were caused by the previous rematching behavior.
VCF_DisableFlexBasisUnits1 « 5Enables the use of legacy flex-basis units in the layout algorithm. The default behavior of flex-basis is more standard-compliant, but this can cause layout issues in existing UIs that rely on the old behavior.
VCF_IncludeStyleValueInMutationObserver1 « 6Enables the inclusion of style values in the MutationObserver records, which can be used to work around some issues in existing UIs that are not compatible with the new behavior of not including such values.
LCF_DoNotSnapToIntegerCoordsBeforeTransform1 « 7Disables the snapping of element coordinates to integer values before applying transforms, which can be used to work around some rendering issues in existing UIs that were caused by the new default behavior of snapping such coordinates. Snapping is enabled by default because not snapping can cause rendering issues in some cases.
LCF_DisableFontDataPreloading1 « 8Disables font data preloading, which can improve compatibility with some custom file system implementations that don’t support multiple concurrent stream readers for the same resource.
LCF_DisableCSSSharing1 « 9Enables the use of legacy behavior for handling of CSS stylesheets for shadow trees and views, where stylesheets are never shared and each shadow tree or view has its own copy at all times.

Compatibility flags that can be used to enable legacy behaviors. Split into 2 groups, depending on what API the flag should be passed to:

  • VCF - View compatibility flags, should be passed via the ViewSettings.
  • LCF - Library compatibility flags, should be passed via the LibraryParams. All flags can be combined. View and Library compatibility flags are independent: flags intended for one are silently ignored by the other.

enum WorkType

EnumeratorValueDescription
WT_Resources
WT_Layout

enum WorkExecutionMode

EnumeratorValueDescription
WEM_UntilQueueEmptyExecute until all outstanding tasks have complete.
WEM_UntilQuitExecute until cohtml is uninitialized. Use this only if you have a dedicated thread you’ll use only for the specified cohtml work.

The enumeration tells the Library how much work to execute in the invocation Please refer to the asynchronous work documentation for details.

enum GamepadHand

EnumeratorValueDescription
GH_None0Gamepad either does not support distinguishing hands, or cannot be determined.
GH_LeftGamepad is bound to the left hand.
GH_RightGamepad is bound to the right hand.

Enumeration that represent binding of a gamepad to a specific hand. Used for motion tracking controllers which are used in pairs, one controller per hand.

enum HTMLTag

EnumeratorValueDescription
ENTRY
COUNT

enum RenderingTasksAvailableType

EnumeratorValueDescription
RTA_ViewReadyForRendering
RTA_RenderingSubSystemTask

enum LayoutAlgorithm

EnumeratorValueDescription
CompatibilityModeYoga in compatibility mode This keeps some preexisting bugs with the layout algorithm and previous default styles with the goal to not break existing UIs that were made with the previous layout behavior in mind.
WebStandardModeYoga in web compliant mode This includes all fixes. Also changes some default styles to their defaults in the web namely flex-shrink and border-box Also in this mode the default position - static now operates as static instead of relative.

enum InterceptRequestStatus

EnumeratorValueDescription
Allow
Restrict

enum InternalCaches

EnumeratorValueDescription
ICACHE_Shadows1 « 0Access the cache for shadow textures (e.g. box-shadow, text-shadow) This cache has only size in number of contained objects.
ICACHE_Paths1 « 1Access the cache for complex shapes This cache has only size in number of contained objects.
ICACHE_Textures1 « 2No longer used. See ‘ICACHE_GPUResourcesPool’.
ICACHE_ScratchLayers1 « 3No longer used. See ‘ICACHE_GPUResourcesPool’.
ICACHE_ScratchTextures1 « 4No longer used. See ‘ICACHE_GPUResourcesPool’.
ICACHE_GfxCommandBuffers1 « 5Access the pool of command buffers, used for generating graphics commands for the graphics library. The cache has both size in number of contained objects and size in bytes.
ICACHE_GfxCommandProcessors1 « 6Access the pool of command processors, used for transforming the raw command buffers into ones usable by the graphics backend. The cache has both size in number of contained objects and size in bytes.
ICACHE_SVGSurfaces1 « 7Access the texture cache for textures where some non-inline SVGs are drawn. This cache flag can be used to clear those textures and force their recreation.
ICACHE_BackdropFilterSurfaces1 « 8Access the texture cache for surfaces used during backdrop filter rendering. This cache flag can be used to clear those textures and force their recreation.
ICACHE_DepthStencilTextures1 « 9No longer used. See ‘ICACHE_GPUResourcesPool’.
ICACHE_GPUResourcesPool1 « 10Cache used for GPU resources like internal intermediate render target textures, vertex buffers, index buffers, and constant buffers used during rendering.

enum CaptureMode

EnumeratorValueDescription
CM_PreserveAllDo not alter the serialization of the pixel data.
CM_PreserveAlphaObfuscate only the color channels of the images but preserve the alpha channel.
CM_ObfuscateAllObfuscate the color channels as well as the alpha channel of the images.

When serializing rendering commands, part of the image data in a document is saved as well. With these capture modes, you can force the capturer to obfuscate the pixel data and with that no images will be leaked through the serialized capture.

enum RegisterModelStatus

EnumeratorValueDescription
RMS_SuccessThe operation was successful.
RMS_ModelDataAlreadyRegisteredThe specified model object is already registered (with the same or another name)
RMS_ModelNameAlreadyRegisteredThe specified model name is already registered.
RMS_InvalidModelThe specified model object is nullptr, not bound successfully or odd aligned.
RMS_DocumentNotCreatedThe Document is not yet created.

Status of a call to CreateModel() and RegisterModel()

enum UpdateModelStatus

EnumeratorValueDescription
UMS_SuccessThe operation was successful.
UMS_ModelNotRegisteredThe specified model is not registered.
UMS_DocumentNotCreatedThe Document is not yet created.

Status of a call to UpdateWholeModel(), UnregisterModel()

enum SynchronizeModelsStatus

EnumeratorValueDescription
SMS_SuccessThe operation was successful.
SMS_DocumentNotCreatedThe Document is not yet created.
SMS_DocumentDestructionThe Document is being destroyed.
SMS_SynchronizationInProgressThere is an ongoing synchronization.

Status of a call to SynchronizeModels()

enum ValueType

EnumeratorValueDescription
VT_Null
VT_Undefined
VT_Boolean
VT_Number
VT_String
VT_Object
VT_Array
VT_Count

The primitive types coming from JS.

enum ElementType

EnumeratorValueDescription
ET_BooleanBoolean value (bool).
ET_Int88-bit signed integer.
ET_UInt88-bit unsigned integer.
ET_Int1616-bit signed integer.
ET_UInt1616-bit unsigned integer.
ET_Int3232-bit signed integer.
ET_UInt3232-bit unsigned integer.
ET_Int6464-bit signed integer.
ET_UInt6464-bit unsigned integer.
ET_Float32-bit floating-point number.
ET_Double64-bit floating-point number.
ET_StringString value. May be stored as a C-string, std::string, or any custom string type. Not directly cast by the SDK; retrieved exclusively via ToString().
ET_ColorColor value.
ET_ArraySequential container. Described by ArrayInfo.
ET_MapAssociative container. Described by MapInfo.
ET_PairPair or 2-tuple. Described by PairInfo.
ET_UserTypeUser-defined type. Described by TypeInfo.
ET_PolymorphUserTypeDynamically-typed value, such as std::variant.

Represents the underlying data category of a property, array element, map value, or pair member exposed to the scripting system.

Primitive types (ET_Boolean through ET_Double) represent concrete C++ values. For all primitive types except ET_String, the SDK may cast pointers returned by *Info callbacks directly to the corresponding native type.

typedef TimePoint

typedef double cohtml::TimePoint;

typedef TaskFamilyId

typedef int cohtml::TaskFamilyId;

typedef OnWorkAvailableFunc

typedef void(* cohtml::OnWorkAvailableFunc) (void *userData, WorkType type, TaskFamilyId family);

Called when a new task is available and should be executed later on.

typedef OnUserImageDroppedFunc

typedef void(* cohtml::OnUserImageDroppedFunc) (void *userData, void *texturePtr);

typedef BoundEventHandle

typedef void * cohtml::BoundEventHandle;

typedef OnRenderingTasksAvailableFunc

typedef void(* cohtml::OnRenderingTasksAvailableFunc) (void *userData, unsigned viewId, unsigned frameId, RenderingTasksAvailableType type);

typedef OnMonotonicallyIncreasingTimeRequestFunc

typedef double(* cohtml::OnMonotonicallyIncreasingTimeRequestFunc) (void *userdata, unsigned viewId);

typedef FrameCaptureCallback

typedef void(* cohtml::FrameCaptureCallback) (void *userData, FrameCapture *capture);

Function signature of callback used in View::BeginCaptureDebugFrame and View::CaptureSingleDebugFrame.

Parameters:

typedef Reader

typedef void(* cohtml::Reader)(Binder *, void *, size_t);

typedef ArrayLengthGetter

typedef size_t(* cohtml::ArrayLengthGetter) (void *);

typedef ArrayElementGetter

typedef void*(* cohtml::ArrayElementGetter) (void *, size_t);

typedef MapElementGetter

typedef void*(* cohtml::MapElementGetter) (void *userData, const char *name);

typedef LengthGetter

typedef size_t(* cohtml::LengthGetter) (void *userData);

typedef ElementGetter

typedef void*(* cohtml::ElementGetter) (void *userData, size_t index);

typedef ArrayElementBinder

typedef void(* cohtml::ArrayElementBinder) (Binder *, void *, size_t);

typedef TrueType

typedef BoolConstant<true> cohtml::TrueType;

typedef FalseType

typedef BoolConstant<false> cohtml::FalseType;

using RemoveConstRef_t

template <typename T >
using cohtml::RemoveConstRef_t = typedef typename RemoveConstRef<T>::Type;

using DecayedType

template <typename T >
using cohtml::DecayedType = typedef typename UnwrapPointerType< typename RemoveConstRef<T>::Type, PointerTrait<T>::Value >::Type;

typedef NativeReader

typedef void*(* cohtml::NativeReader) (void *, size_t);

typedef VectorLengthFunc

typedef size_t(* cohtml::VectorLengthFunc) (void *);

Functions Documentation

function MakeHandler

template <typename Functor >
IEventHandler * MakeHandler(
    Functor functor
)

Create event handler from generic C++ functor.

Parameters:

  • functor generic C++ functor, i.e. pointer to static function or object with operator()

Return: IEventHandler that wraps the functor

function MakeHandler

template <typename Method >
IEventHandler * MakeHandler(
    void * object,
    Method method
)

Create event handler from C++ method.

Parameters:

  • object pointer to the instance with which the method will be invoked
  • method the C++ method to be invoked

Return: IEventHandler that wraps the method

Warning: the object pointer is stored until cohtml::ViewListener::OnBindingsReleased is called. Therefore the pointer must remain valid until then.

function COHTML_DEFINE_ENUM_FLAG_OPERATORS

COHTML_DEFINE_ENUM_FLAG_OPERATORS(
    CompatibilityFlags 
)

function AdaptRenderingAllocatorAndLoggerFromCohtml

void AdaptRenderingAllocatorAndLoggerFromCohtml(
    IAllocator * allocator,
    Logging::ILogHandler * logger,
    renoir::IAllocator ** outRenderingAllocator,
    renoir::Logging::ILogHandler ** outRenderingLogger
)

Function to adapt Cohtml based IAllocator and ILogHandler to the Rendering library variants It will use the allocator instance to allocate the adapters. You can call this to use Cohtml instances when using an externally initialized rendering library.

function DestroyAdaptedRenderingAllocatorAndLogger

void DestroyAdaptedRenderingAllocatorAndLogger(
    IAllocator * allocator,
    renoir::IAllocator * renderingAllocator,
    renoir::Logging::ILogHandler * renderingLogger
)

Deallocates the adapters created from AdaptRenderingAllocatorAndLoggerFromCohtml.

function IsTagSelfClosing

inline bool IsTagSelfClosing(
    HTMLTag tag
)

function CanTagContainHTML

inline bool CanTagContainHTML(
    HTMLTag tag
)

function CanSVGTagContainText

inline bool CanSVGTagContainText(
    HTMLTag tag
)

function CanTagBeSVG

inline bool CanTagBeSVG(
    HTMLTag tag
)

function CoherentCreateModelBindPointer

template <typename T >
void COHERENT_STDCALL CoherentCreateModelBindPointer(
    Binder * binder,
    T * model
)

function CoherentArrayLength

template <typename ArrayType ,
size_t Size>
size_t CoherentArrayLength(
    void * arrayPtr
)

function CoherentArrayElementReader

template <typename ArrayType >
void CoherentArrayElementReader(
    Binder * binder,
    void * data,
    size_t position
)

function CoherentArrayElementBinder

template <typename ArrayType >
void CoherentArrayElementBinder(
    Binder * binder,
    void * arr,
    size_t index
)

function CoherentArrayElementGetterImpl

template <typename T >
EnableIf< PointerTrait< T >::Value, void * >::Type CoherentArrayElementGetterImpl(
    T & object
)

function CoherentArrayElementGetterImpl

template <typename T >
EnableIf<!PointerTrait< T >::Value &&!IsCString< T >::Value, void * >::Type CoherentArrayElementGetterImpl(
    T & object
)

function CoherentArrayElementGetterImpl

template <typename T >
EnableIf<!PointerTrait< T >::Value &&IsCString< T >::Value, void * >::Type CoherentArrayElementGetterImpl(
    T & object
)

function CoherentArrayElementGetter

template <typename ArrayType >
void * CoherentArrayElementGetter(
    void * arr,
    size_t index
)

function CoherentBindInternal

template <typename ArrayType ,
size_t ArraySize>
inline EnableIf<!IsChar< ArrayType >::Value||IsSame< ArrayType, unsigned char >::Value >::Type CoherentBindInternal(
    Binder * binder,
    ArrayType(&) array[ArraySize]
)

function CoherentBindInternal

template <typename ArrayType ,
size_t ArraySize>
inline EnableIf< IsChar< ArrayType >::Value &&!IsSame< ArrayType, unsigned char >::Value >::Type CoherentBindInternal(
    Binder * binder,
    ArrayType array[ArraySize]
)

function CoherentReadInternal

template <typename ArrayType ,
size_t ArraySize>
inline EnableIf<!IsChar< ArrayType >::Value||IsSame< ArrayType, unsigned char >::Value >::Type CoherentReadInternal(
    Binder * binder,
    ArrayType(&) array[ArraySize]
)

function CoherentReadInternal

template <typename ArrayType ,
size_t ArraySize>
inline EnableIf< IsChar< ArrayType >::Value &&!IsSame< ArrayType, unsigned char >::Value >::Type CoherentReadInternal(
    Binder * binder,
    ArrayType array[ArraySize]
)

function ValueTypeToString

inline const char * ValueTypeToString(
    ValueType type
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    bool value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    signed short value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    unsigned short value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    signed int value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    unsigned int value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    signed long long value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    unsigned long long value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    signed long value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    unsigned long value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    char value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    signed char value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    unsigned char value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    float value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    double value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    const char * value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    const wchar_t * value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    const char16_t * value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    const char32_t * value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    signed short & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    unsigned short & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    signed int & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    unsigned int & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    signed long long & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    unsigned long long & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    signed long & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    unsigned long & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    bool & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    char & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    signed char & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    unsigned char & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    float & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    double & value
)

function CoherentBindInternalPointerHelper

template <typename T >
EnableIf< cohtml::TypeToElementType< T >::value==ElementType::ET_UserType, void >::Type CoherentBindInternalPointerHelper(
    Binder * binder,
    T * object
)

function CoherentBindInternalPointerHelper

template <typename T >
EnableIf< cohtml::TypeToElementType< T >::value !=ElementType::ET_UserType, void >::Type CoherentBindInternalPointerHelper(
    Binder * binder,
    T * object
)

function CoherentBindInternalPointer

template <typename T >
EnableIf< PointerTrait< T >::Value, void >::Type CoherentBindInternalPointer(
    Binder * binder,
    T & object
)

function CoherentBindInternalPointer

template <typename T >
EnableIf<!PointerTrait< T >::Value &&!IsCString< T >::Value, void >::Type CoherentBindInternalPointer(
    Binder * binder,
    T & object
)

function CoherentBindInternalPointer

template <typename T >
EnableIf<!PointerTrait< T * >::Value &&IsCString< T * >::Value, void >::Type CoherentBindInternalPointer(
    Binder * binder,
    T *& object
)

function CoherentReadInternalUserType

template <typename T >
EnableIf< PointerTrait< T >::Value, void >::Type CoherentReadInternalUserType(
    Binder * binder,
    T & object
)

function CoherentReadInternalUserType

template <typename T >
EnableIf<!PointerTrait< T >::Value &&IsCString< T >::Value, void >::Type CoherentReadInternalUserType(
    Binder * binder,
    T & object
)

function CoherentReadInternalUserType

template <typename T >
EnableIf<!PointerTrait< T >::Value &&!IsCString< T >::Value, void >::Type CoherentReadInternalUserType(
    Binder * binder,
    T & object
)

function CoherentBindInternal

template <typename T >
EnableIf< IsDefaultBindEnabled< T >::Value >::Type CoherentBindInternal(
    Binder * binder,
    T & object
)

function CoherentBindInternal

template <typename T >
EnableIf< IsDefaultBindEnabled< T >::Value >::Type CoherentBindInternal(
    Binder * binder,
    const T & object
)

function CoherentReadInternal

template <typename T >
EnableIf< IsDefaultBindEnabled< T >::Value >::Type CoherentReadInternal(
    Binder * binder,
    T & object
)

function CoherentBindKeyValueProperty

template <typename T ,
typename A >
void CoherentBindKeyValueProperty(
    Binder * binder,
    T && key,
    A && value
)

function CoherentBindKeyValueProperty

template <typename T ,
typename A >
void CoherentBindKeyValueProperty(
    Binder * binder,
    T && keyProperty,
    void * key,
    A && valueProperty,
    void * value
)

function ByRef

template <typename T >
ByRefHolder< T > ByRef(
    T & ref
)

function CoherentBindInternal

template <typename T >
void CoherentBindInternal(
    Binder * binder,
    ByRefHolder< T > & holder
)

function CoherentBindInternal

template <typename T >
void CoherentBindInternal(
    Binder * binder,
    const ByRefHolder< T > & holder
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    renoir::Color & value
)

function CoherentBindInternal

inline void CoherentBindInternal(
    Binder * binder,
    const renoir::Color & value
)

function CoherentReadInternal

inline void CoherentReadInternal(
    Binder * binder,
    renoir::Color & value
)

function CoherentBindInternal

template <typename Key ,
typename Value ,
typename Comparator ,
typename Allocator >
void CoherentBindInternal(
    Binder * binder,
    std::map< Key, Value, Comparator, Allocator > & value
)

function CoherentBindInternal

template <typename Key ,
typename Value ,
typename Comparator ,
typename Allocator >
void CoherentBindInternal(
    Binder * binder,
    const std::map< Key, Value, Comparator, Allocator > & value
)

function CoherentReadInternal

template <typename Key ,
typename Value ,
typename Comparator ,
typename Allocator >
void CoherentReadInternal(
    Binder * binder,
    std::map< Key, Value, Comparator, Allocator > & value
)

function GetMapValueInvoke

template <typename Key ,
typename Value ,
typename Comparator ,
typename Allocator >
inline bool GetMapValueInvoke(
    Binder * binder,
    MapInfo * mapInfo,
    std::map< Key, Value, Comparator, Allocator > * pMap
)

function CoherentReadMapKey

template <typename T >
void CoherentReadMapKey(
    Binder * binder,
    T & value
)

function GetMapValueInvoke

template <typename T >
inline EnableIf<!IsMap< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type GetMapValueInvoke(
    Binder * binder,
    void * object,
    MapInfo * mapInfo,
    const TypedProperty< T &> * prop
)

function GetMapValueInvoke

template <typename T >
EnableIf< IsMap< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type GetMapValueInvoke(
    Binder * binder,
    void * object,
    MapInfo * mapInfo,
    const TypedProperty< T &> * prop
)

function GetMapValueInvoke

template <typename T >
inline bool GetMapValueInvoke(
    Binder * binder,
    MapInfo * mapInfo,
    T notMap
)

function CoherentMapNativeElementReader

template <typename MapType ,
typename MapKeyType ,
typename MapValueType >
EnableIf<!cohtml::PointerTrait< MapValueType >::Value, void * >::Type CoherentMapNativeElementReader(
    void * data,
    char const * name
)

function CoherentMapNativeElementReader

template <typename MapType ,
typename MapKeyType ,
typename MapValueType >
EnableIf< cohtml::PointerTrait< MapValueType >::Value, void * >::Type CoherentMapNativeElementReader(
    void * data,
    char const * name
)

function CoherentBindInternal

template <typename T1 ,
typename T2 >
void CoherentBindInternal(
    Binder * binder,
    std::pair< T1, T2 > & value
)

function CoherentBindInternal

template <typename T1 ,
typename T2 >
void CoherentBindInternal(
    Binder * binder,
    const std::pair< T1, T2 > & value
)

function CoherentReadInternal

template <typename T1 ,
typename T2 >
void CoherentReadInternal(
    Binder * binder,
    std::pair< T1, T2 > & value
)

function GetPairValueInvoke

template <typename T >
inline EnableIf<!IsPair< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type GetPairValueInvoke(
    Binder * binder,
    void * object,
    PairInfo * pairInfo,
    const TypedProperty< T &> * prop
)

function GetPairValueInvoke

template <typename T >
inline bool GetPairValueInvoke(
    Binder * binder,
    PairInfo * pairInfo,
    T value
)

function GetPairValueInvoke

template <typename T1 ,
typename T2 >
inline bool GetPairValueInvoke(
    Binder * binder,
    PairInfo * pairInfo,
    std::pair< T1, T2 > * pPair
)

function GetPairValueInvoke

template <typename T >
EnableIf< IsPair< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type GetPairValueInvoke(
    Binder * binder,
    void * object,
    PairInfo * arrayInfo,
    const TypedProperty< T &> * prop
)

function ExtractRawArray

template <typename ArrayType ,
size_t ArraySize>
inline EnableIf<(!IsChar< ArrayType >::Value||IsSame< ArrayType, unsigned char >::Value) &&(TypeToElementType< ArrayType >::value !=ElementType::ET_UserType), bool >::Type ExtractRawArray(
    Binder * binder,
    ArrayType(&) userData[ArraySize],
    ArrayInfo * arrayInfo
)

Helper function for converting a Property into an array when the property is a C-style array.

Parameters:

  • binder - the binder to use
  • userData - object that might be a C-style array or not
  • arrayInfo - information about array type - callbacks, properties, methods

Return: true - if the conversion was successful

function ExtractRawArray

template <typename ArrayType ,
size_t ArraySize>
inline EnableIf<(!IsChar< ArrayType >::Value||IsSame< ArrayType, unsigned char >::Value) &&(TypeToElementType< ArrayType >::value==ElementType::ET_UserType), bool >::Type ExtractRawArray(
    Binder * binder,
    ArrayType(&) userData[ArraySize],
    ArrayInfo * arrayInfo
)

function ExtractRawArray

template <typename ValueType >
inline bool ExtractRawArray(
    Binder * ,
    const ValueType & ,
    ArrayInfo * 
)

function CoherentTypeInfoCallCoherentBindInternal

template <typename T >
EnableIf< IsCString< T >::Value, void >::Type CoherentTypeInfoCallCoherentBindInternal(
    Binder * binder
)

function CoherentTypeInfoCallCoherentBindInternal

template <typename T >
EnableIf< IsCString< T >::Value, void >::Type CoherentTypeInfoCallCoherentBindInternal(
    Binder * binder,
    void * model
)

function CoherentTypeInfoCallCoherentBindInternal

template <typename T >
EnableIf<!IsCString< T >::Value, void >::Type CoherentTypeInfoCallCoherentBindInternal(
    Binder * binder
)

function CoherentTypeInfoCallCoherentBindInternal

template <typename T >
EnableIf<!IsCString< T >::Value, void >::Type CoherentTypeInfoCallCoherentBindInternal(
    Binder * binder,
    void * model
)

function GetObjectInfoInvoke

template <typename Type >
EnableIf< PointerTrait< Type >::Value, bool >::Type GetObjectInfoInvoke(
    Binder * binder,
    void * object,
    ObjectInfo * objInfo,
    const TypedProperty< Type &> * prop
)

function GetObjectInfoInvoke

template <typename Type >
EnableIf<!PointerTrait< Type >::Value, bool >::Type GetObjectInfoInvoke(
    Binder * binder,
    void * object,
    ObjectInfo * objInfo,
    const TypedProperty< Type &> * prop
)

function MakeProperty

template <typename P >
FieldProperty< P > MakeProperty(
    const char * name,
    P p
)

function MakeProperty

template <typename G ,
typename S >
ConcreteProperty< G, S > MakeProperty(
    const char * name,
    G g,
    S s
)

function MakePropertyReadOnly

template <typename G >
ConcretePropertyReadOnly< G > MakePropertyReadOnly(
    const char * name,
    G g
)

function CoherentBindInternal

template <typename Char ,
typename CharTraits ,
typename Allocator >
void CoherentBindInternal(
    Binder * binder,
    std::basic_string< Char, CharTraits, Allocator > & value
)

function CoherentBindInternal

template <typename Char ,
typename CharTraits ,
typename Allocator >
void CoherentBindInternal(
    Binder * binder,
    const std::basic_string< Char, CharTraits, Allocator > & value
)

function CoherentReadInternal

template <typename Char ,
typename CharTraits ,
typename Allocator >
void CoherentReadInternal(
    Binder * binder,
    std::basic_string< Char, CharTraits, Allocator > & value
)

function CoherentReadMapKey

template <typename Char ,
typename CharTraits ,
typename Allocator >
void CoherentReadMapKey(
    Binder * binder,
    std::basic_string< Char, CharTraits, Allocator > & value
)

function DecayToMutablePtrUnchecked

template <typename T >
DecayedType< T > * DecayToMutablePtrUnchecked(
    T & value
)

Removes const and reference qualifiers from T and converts the input to a mutable pointer.

  • If T is a value type, returns &value
  • If T is a pointer type, unwraps it and returns a mutable pointer valueThe value or pointer to decay

Mutable pointer to the decayed underlying type

Constness is discarded via blind cast and assumed to be safe by contract.

function CSTRING_TYPETRAIT

CSTRING_TYPETRAIT(
    char 
)

function CSTRING_TYPETRAIT

CSTRING_TYPETRAIT(
    signed char
)

function CSTRING_TYPETRAIT

CSTRING_TYPETRAIT(
    unsigned char
)

function CSTRING_TYPETRAIT

CSTRING_TYPETRAIT(
    wchar_t 
)

function CSTRING_TYPETRAIT

CSTRING_TYPETRAIT(
    char16_t 
)

function CSTRING_TYPETRAIT

CSTRING_TYPETRAIT(
    char32_t 
)

function CoherentBindInternal

template <typename Key ,
typename Value ,
typename Hash ,
typename Pred ,
typename Allocator >
void CoherentBindInternal(
    Binder * binder,
    std::unordered_map< Key, Value, Hash, Pred, Allocator > & value
)

function CoherentBindInternal

template <typename Key ,
typename Value ,
typename Hash ,
typename Pred ,
typename Allocator >
void CoherentBindInternal(
    Binder * binder,
    const std::unordered_map< Key, Value, Hash, Pred, Allocator > & value
)

function CoherentReadInternal

template <typename Key ,
typename Value ,
typename Hash ,
typename Pred ,
typename Allocator >
void CoherentReadInternal(
    Binder * binder,
    std::unordered_map< Key, Value, Hash, Pred, Allocator > & value
)

function GetMapValueInvoke

template <typename Key ,
typename Value ,
typename Hash ,
typename Pred ,
typename Allocator >
inline bool GetMapValueInvoke(
    Binder * binder,
    MapInfo * mapInfo,
    std::unordered_map< Key, Value, Hash, Pred, Allocator > * pMap
)

function CoherentBindInternal

template <typename... Args>
void CoherentBindInternal(
    cohtml::Binder * binder,
    std::variant< Args... > & value
)

function CoherentBindInternal

template <typename... Args>
void CoherentBindInternal(
    cohtml::Binder * binder,
    std::variant< Args... > * value
)

function CoherentBindInternal

template <typename... Args>
void CoherentBindInternal(
    cohtml::Binder * binder,
    const std::variant< Args... > & value
)

function CoherentBindInternal

template <typename... Args>
void CoherentBindInternal(
    cohtml::Binder * binder,
    const std::variant< Args... > * value
)

function CoherentReadInternal

template <typename... Args>
void CoherentReadInternal(
    cohtml::Binder * binder,
    std::variant< Args... > & value
)

function CoherentReadInternal

template <typename... Args>
void CoherentReadInternal(
    cohtml::Binder * binder,
    const std::variant< Args... > & value
)

function GetObjectInfoInvoke

template <typename... Args>
bool GetObjectInfoInvoke(
    Binder * binder,
    ObjectInfo * objInfo,
    std::variant< Args... > & value
)

function GetArrayValueInvoke

template <typename... Args>
bool GetArrayValueInvoke(
    Binder * binder,
    void * object,
    ArrayInfo * arrayinfo,
    const TypedProperty< std::variant< Args... > &> * prop
)

function GetArrayValueInvoke

template <typename... Args>
bool GetArrayValueInvoke(
    Binder * binder,
    void * object,
    ArrayInfo * arrayinfo,
    const TypedProperty< std::variant< Args... > *&> * prop
)

function GetArrayValueInvoke

template <typename... Args>
bool GetArrayValueInvoke(
    Binder * binder,
    void * object,
    ArrayInfo * arrayinfo,
    const TypedProperty< const std::variant< Args... > *&> * prop
)

function GetPairValueInvoke

template <typename... Args>
bool GetPairValueInvoke(
    Binder * binder,
    void * object,
    PairInfo * pairInfo,
    const TypedProperty< std::variant< Args... > &> * prop
)

function GetPairValueInvoke

template <typename... Args>
bool GetPairValueInvoke(
    Binder * binder,
    void * object,
    PairInfo * pairInfo,
    const TypedProperty< std::variant< Args... > *&> * prop
)

function GetPairValueInvoke

template <typename... Args>
bool GetPairValueInvoke(
    Binder * binder,
    void * object,
    PairInfo * pairInfo,
    const TypedProperty< const std::variant< Args... > *&> * prop
)

function GetMapValueInvoke

template <typename... Args>
bool GetMapValueInvoke(
    Binder * binder,
    void * object,
    MapInfo * mapInfo,
    const TypedProperty< std::variant< Args... > &> * prop
)

function GetMapValueInvoke

template <typename... Args>
bool GetMapValueInvoke(
    Binder * binder,
    void * object,
    MapInfo * mapInfo,
    const TypedProperty< std::variant< Args... > *&> * prop
)

function GetMapValueInvoke

template <typename... Args>
bool GetMapValueInvoke(
    Binder * binder,
    void * object,
    MapInfo * mapInfo,
    const TypedProperty< const std::variant< Args... > *&> * prop
)

function CoherentVectorLength

template <typename VectorType >
size_t CoherentVectorLength(
    void * vectorPtr
)

function CoherentVectorElementReader

template <typename VectorType ,
typename T >
EnableIf<!cohtml::PointerTrait< T >::Value, void >::Type CoherentVectorElementReader(
    Binder * binder,
    void * vectorPtr,
    size_t position
)

function CoherentVectorElementReader

template <typename VectorType ,
typename T >
EnableIf< cohtml::PointerTrait< T >::Value, void >::Type CoherentVectorElementReader(
    Binder * binder,
    void * vectorPtr,
    size_t position
)

function CoherentVectorNativeElementReader

template <typename VectorType ,
typename T >
EnableIf<!cohtml::PointerTrait< T >::Value, void * >::Type CoherentVectorNativeElementReader(
    void * vectorPtr,
    size_t position
)

function CoherentVectorNativeElementReader

template <typename VectorType ,
typename T >
EnableIf< cohtml::PointerTrait< T >::Value, void * >::Type CoherentVectorNativeElementReader(
    void * vectorPtr,
    size_t position
)

function CoherentVectorElementBinder

template <typename VectorType >
void CoherentVectorElementBinder(
    Binder * binder,
    void * vectorPtr,
    size_t index
)

function CoherentBindInternal

template <typename T ,
typename A >
void CoherentBindInternal(
    Binder * binder,
    std::vector< T, A > & value
)

function CoherentBindInternal

template <typename T ,
typename A >
void CoherentBindInternal(
    Binder * binder,
    const std::vector< T, A > & value
)

function CoherentBindInternal

template <typename A >
void CoherentBindInternal(
    Binder * binder,
    std::vector< float, A > & value
)

function CoherentBindInternal

template <typename A >
void CoherentBindInternal(
    Binder * binder,
    const std::vector< float, A > & value
)

function CoherentBindInternal

template <typename A >
void CoherentBindInternal(
    Binder * binder,
    std::vector< int, A > & value
)

function CoherentBindInternal

template <typename A >
void CoherentBindInternal(
    Binder * binder,
    const std::vector< int, A > & value
)

function CoherentReadInternal

template <typename T ,
typename A >
void CoherentReadInternal(
    Binder * binder,
    std::vector< T, A > & value
)

function GetArrayValueInvoke

template <typename T >
inline EnableIf<!IsVector< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type GetArrayValueInvoke(
    Binder * binder,
    void * object,
    ArrayInfo * arrayInfo,
    const TypedProperty< T &> * prop
)

function GetArrayValueInvoke

template <typename T >
inline bool GetArrayValueInvoke(
    Binder * binder,
    ArrayInfo * arrayInfo,
    T value
)

function GetArrayValueInvoke

template <typename T ,
typename A >
inline bool GetArrayValueInvoke(
    Binder * binder,
    ArrayInfo * arrayInfo,
    std::vector< T, A > * pVector
)

function GetArrayValueInvoke

template <typename T >
EnableIf< IsVector< typename UnwrapPointerType< T, PointerTrait< T >::Value >::Type >::Value, bool >::Type GetArrayValueInvoke(
    Binder * binder,
    void * object,
    ArrayInfo * arrayInfo,
    const TypedProperty< T &> * prop
)