Skip to content
SiteEmail

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…

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::InspectorContextSetting
cohtml::Logging
cohtml::MemTags
cohtml::Profile
cohtml::TextInput
cohtml::TextInputControlType
cohtml::VMemFlags
cohtml::VMemProtection
cohtml::websocket
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.
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, VCF_AutoDetectColorSpaceFromRenderTarget = 1 << 10}
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
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)

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.

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.
VCF_AutoDetectColorSpaceFromRenderTarget1 << 10Enables legacy behavior where Cohtml automatically determines the color space, either sRGB (gamma-encoded) or Linear, in which to render each view, based on the render target format passed via “ViewRenderer::SetRenderTarget()”. If not enabled, Cohtml defaults to rendering all views in sRGB color space, irrespective of the render target format.

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.
EnumeratorValueDescription
WT_Resources
WT_Layout
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.

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.

EnumeratorValueDescription
ENTRY
COUNT
EnumeratorValueDescription
RTA_ViewReadyForRendering
RTA_RenderingSubSystemTask
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.
EnumeratorValueDescription
Allow
Restrict
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.
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.

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()

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()

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()

EnumeratorValueDescription
VT_Null
VT_Undefined
VT_Boolean
VT_Number
VT_String
VT_Object
VT_Array
VT_Count

The primitive types coming from JS.

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 double cohtml::TimePoint;
typedef int cohtml::TaskFamilyId;
typedef void(* cohtml::OnWorkAvailableFunc) (void *userData, WorkType type, TaskFamilyId family);

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

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

typedef OnMonotonicallyIncreasingTimeRequestFunc

Section titled “typedef OnMonotonicallyIncreasingTimeRequestFunc”
typedef double(* cohtml::OnMonotonicallyIncreasingTimeRequestFunc) (void *userdata, unsigned viewId);
typedef void(* cohtml::FrameCaptureCallback) (void *userData, FrameCapture *capture);

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

Parameters:

typedef void(* cohtml::Reader)(Binder *, void *, size_t);
typedef size_t(* cohtml::ArrayLengthGetter) (void *);
typedef void*(* cohtml::ArrayElementGetter) (void *, size_t);
typedef void*(* cohtml::MapElementGetter) (void *userData, const char *name);
typedef size_t(* cohtml::LengthGetter) (void *userData);
typedef void*(* cohtml::ElementGetter) (void *userData, size_t index);
typedef void(* cohtml::ArrayElementBinder) (Binder *, void *, size_t);
typedef BoolConstant<true> cohtml::TrueType;
typedef BoolConstant<false> cohtml::FalseType;
template <typename T >
using cohtml::RemoveConstRef_t = typedef typename RemoveConstRef<T>::Type;
template <typename T >
using cohtml::DecayedType = typedef typename UnwrapPointerType< typename RemoveConstRef<T>::Type, PointerTrait<T>::Value >::Type;
typedef void*(* cohtml::NativeReader) (void *, size_t);
typedef size_t(* cohtml::VectorLengthFunc) (void *);
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

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

Section titled “function COHTML_DEFINE_ENUM_FLAG_OPERATORS”
COHTML_DEFINE_ENUM_FLAG_OPERATORS(
CompatibilityFlags
)

function AdaptRenderingAllocatorAndLoggerFromCohtml

Section titled “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

Section titled “function DestroyAdaptedRenderingAllocatorAndLogger”
void DestroyAdaptedRenderingAllocatorAndLogger(
IAllocator * allocator,
renoir::IAllocator * renderingAllocator,
renoir::Logging::ILogHandler * renderingLogger
)

Deallocates the adapters created from AdaptRenderingAllocatorAndLoggerFromCohtml.

inline bool IsTagSelfClosing(
HTMLTag tag
)
inline bool CanTagContainHTML(
HTMLTag tag
)
inline bool CanSVGTagContainText(
HTMLTag tag
)
inline bool CanTagBeSVG(
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>
inline EnableIf<!IsChar< ArrayType >::Value||IsSame< ArrayType, unsigned char >::Value >::Type CoherentBindInternal(
Binder * binder,
ArrayType(&) array[ArraySize]
)
template <typename ArrayType ,
size_t ArraySize>
inline EnableIf< IsChar< ArrayType >::Value &&!IsSame< ArrayType, unsigned char >::Value >::Type CoherentBindInternal(
Binder * binder,
ArrayType array[ArraySize]
)
template <typename ArrayType ,
size_t ArraySize>
inline EnableIf<!IsChar< ArrayType >::Value||IsSame< ArrayType, unsigned char >::Value >::Type CoherentReadInternal(
Binder * binder,
ArrayType(&) array[ArraySize]
)
template <typename ArrayType ,
size_t ArraySize>
inline EnableIf< IsChar< ArrayType >::Value &&!IsSame< ArrayType, unsigned char >::Value >::Type CoherentReadInternal(
Binder * binder,
ArrayType array[ArraySize]
)
inline const char * ValueTypeToString(
ValueType type
)
inline void CoherentBindInternal(
Binder * binder,
bool value
)
inline void CoherentBindInternal(
Binder * binder,
signed short value
)
inline void CoherentBindInternal(
Binder * binder,
unsigned short value
)
inline void CoherentBindInternal(
Binder * binder,
signed int value
)
inline void CoherentBindInternal(
Binder * binder,
unsigned int value
)
inline void CoherentBindInternal(
Binder * binder,
signed long long value
)
inline void CoherentBindInternal(
Binder * binder,
unsigned long long value
)
inline void CoherentBindInternal(
Binder * binder,
signed long value
)
inline void CoherentBindInternal(
Binder * binder,
unsigned long value
)
inline void CoherentBindInternal(
Binder * binder,
char value
)
inline void CoherentBindInternal(
Binder * binder,
signed char value
)
inline void CoherentBindInternal(
Binder * binder,
unsigned char value
)
inline void CoherentBindInternal(
Binder * binder,
float value
)
inline void CoherentBindInternal(
Binder * binder,
double value
)
inline void CoherentBindInternal(
Binder * binder,
const char * value
)
inline void CoherentBindInternal(
Binder * binder,
const wchar_t * value
)
inline void CoherentBindInternal(
Binder * binder,
const char16_t * value
)
inline void CoherentBindInternal(
Binder * binder,
const char32_t * value
)
inline void CoherentReadInternal(
Binder * binder,
signed short & value
)
inline void CoherentReadInternal(
Binder * binder,
unsigned short & value
)
inline void CoherentReadInternal(
Binder * binder,
signed int & value
)
inline void CoherentReadInternal(
Binder * binder,
unsigned int & value
)
inline void CoherentReadInternal(
Binder * binder,
signed long long & value
)
inline void CoherentReadInternal(
Binder * binder,
unsigned long long & value
)
inline void CoherentReadInternal(
Binder * binder,
signed long & value
)
inline void CoherentReadInternal(
Binder * binder,
unsigned long & value
)
inline void CoherentReadInternal(
Binder * binder,
bool & value
)
inline void CoherentReadInternal(
Binder * binder,
char & value
)
inline void CoherentReadInternal(
Binder * binder,
signed char & value
)
inline void CoherentReadInternal(
Binder * binder,
unsigned char & value
)
inline void CoherentReadInternal(
Binder * binder,
float & value
)
inline void CoherentReadInternal(
Binder * binder,
double & value
)

function CoherentBindInternalPointerHelper

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

function CoherentBindInternalPointerHelper

Section titled “function CoherentBindInternalPointerHelper”
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
)
inline void CoherentBindInternal(
Binder * binder,
renoir::Color & value
)
inline void CoherentBindInternal(
Binder * binder,
const renoir::Color & value
)
inline void CoherentReadInternal(
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 >
inline 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 >
inline 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 >
inline 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 >
inline 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 >
inline bool GetPairValueInvoke(
Binder * binder,
PairInfo * pairInfo,
T value
)
template <typename T1 ,
typename T2 >
inline 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>
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

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
)
template <typename ValueType >
inline bool ExtractRawArray(
Binder * ,
const ValueType & ,
ArrayInfo *
)

function CoherentTypeInfoCallCoherentBindInternal

Section titled “function CoherentTypeInfoCallCoherentBindInternal”
template <typename T >
EnableIf< IsCString< T >::Value, void >::Type CoherentTypeInfoCallCoherentBindInternal(
Binder * binder
)

function CoherentTypeInfoCallCoherentBindInternal

Section titled “function CoherentTypeInfoCallCoherentBindInternal”
template <typename T >
EnableIf< IsCString< T >::Value, void >::Type CoherentTypeInfoCallCoherentBindInternal(
Binder * binder,
void * model
)

function CoherentTypeInfoCallCoherentBindInternal

Section titled “function CoherentTypeInfoCallCoherentBindInternal”
template <typename T >
EnableIf<!IsCString< T >::Value, void >::Type CoherentTypeInfoCallCoherentBindInternal(
Binder * binder
)

function CoherentTypeInfoCallCoherentBindInternal

Section titled “function CoherentTypeInfoCallCoherentBindInternal”
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.

  • 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.

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 >
inline 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
)

function CoherentVectorNativeElementReader

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

function CoherentVectorNativeElementReader

Section titled “function CoherentVectorNativeElementReader”
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 >
inline 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 >
inline bool GetArrayValueInvoke(
Binder * binder,
ArrayInfo * arrayInfo,
T value
)
template <typename T ,
typename A >
inline 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
)