cohtml::ViewSettings
Settings used when initializing a View.
#include <View.h>
Public Functions
Section titled “Public Functions”| Name | |
|---|---|
| ViewSettings() |
Public Attributes
Section titled “Public Attributes”| Name | |
|---|---|
| IViewListener * | Listener The ViewListener is notified of events happening in the View. |
| ITimeZoneProvider * | TimezoneProvider The ITimeZoneProvider is queried for the timezone. |
| unsigned | Width The Width of the View. |
| unsigned | Height The Height of the View. |
| OnRenderingTasksAvailableFunc | OnRenderingTasksAvailable Called when the View is completely advanced and laid-out. |
| OnMonotonicallyIncreasingTimeRequestFunc | OnMonotonicallyIncreasingTimeRequest Called during the advance and styling of the views when accurate current time is needed The client should return monotonically increasing time in milliseconds. |
| void * | UserData Passed to the OnRenderingTasksAvailable and OnMonotonicallyIncreasingTimeRequest callbacks. |
| bool | EnableComplexCSSSelectorsStyling Tells if to enable complex CSS selectors when doing style matching. By complex in this context we mean any CSS selector that requires walking the DOM tree to match - that is selectors with any combinator (https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors#Combinators) and selectors with pseudo-classes that depend on the tree like :nth-child(), :first etc. This flag has a performance implication. Views that don’t need such selectors should leave it disabled, which makes style matching significantly faster. |
| bool | InterceptResourceRequests Allows you to intercept resource requests for this view in order to restrict resource access of the view to only specified sets of urls. If InterceptResourceRequests is not explicitly set to true, the default behavior will be to allow every request. |
| InspectorContextSetting::Mode | InspectorContextMode The inspector network tab mode. InspectorContextSetting::Mode::Enabled is used by default. |
| unsigned | MinimumVertexBufferSize Controls the minimum count of vertices allocated when creating vertex buffers. If equal to 0 then default count will be used which is 32768. |
| unsigned | MinimumIndexBufferSize Controls the minimum count of indices allocated when creating index buffers. If equal to 0 then default count will be used which is 49152. |
| unsigned | VertexIndexBufferRingSize Controls the size of each ring buffer (the VB ring buffer and the IB ring buffer). Every call to BeginFrame rotates the ring buffer and takes the next available buffer that the GPU should not be using. The acceptable range is between 1 and 8. |
| unsigned | DoubleClickTime The double-click time is the maximum number of milliseconds that may occur between the first and second click of a double-click. |
| ITextInputHandler * | TextInputHandler Notifies of changes to an input elements Can be set to nullptr if the user is not interested in receiving the events. |
| float | StartPanThreshold Controls the minimum length of pans to be performed. |
| bool | ExecuteCommandProcessingWithLayout Tells the view to process all collected front-end commands right after the layout execution on the same thread. |
| bool | EnableComplexTextLayout Legacy option used to manually control the proper display of complex text in languages like Arabic, Hebrew, Farsi, etc. Not used anymore, Cohtml now automatically detects complex text at no additional performance cost. |
| bool | EnableUISurfacePartitioning Changes the rendering flow so that the user RT is not cleared and the con-partitioned elements are drawn in separate scratch space. |
| bool | EnableImmediateLayout Enabling this immediately recalculates layout before returning a value from some JS methods. |
| bool | EnableUnloadingOfHiddenImages When enabled, elements with background/border/mask images that are hidden by display:none will release their reference to the image resource. An image resource without references will be unloaded from the GPU. References to the same image resource can be held with JS to prevent undesired unloading. When disabled, hidden elements will keep a reference to the image resources which assures that the image will be available on the first draw when the element is shown. |
| bool | EnableGlobalSimpleOpacity This option controls the behaviour of ‘coh-simple-opacity: auto’ (the default value for ‘coh-simple-opacity’) When enabled, all elements with ‘opacity’ will use simple opacity unless ‘coh-simple-opacity: off’ is specified. When disabled, all elements with ‘opacity’ will not use simple opacity unless ‘coh-simple-opacity: on’ is specified. |
| LayoutAlgorithm | LayoutAlgorithm Determines wether the layout algorithm will try to match old yoga behavior, or a more web-compliant one. |
| CompatibilityFlags | CompatibilitySettings Compatibility settings that can be used to enable or disable specific legacy behaviors in the View. |
| const void * | DeveloperOptions Reserved property for internal usage. Do not use it. |
Public Functions Documentation
Section titled “Public Functions Documentation”function ViewSettings
Section titled “function ViewSettings”inline ViewSettings()Public Attributes Documentation
Section titled “Public Attributes Documentation”variable Listener
Section titled “variable Listener”IViewListener * Listener;The ViewListener is notified of events happening in the View.
variable TimezoneProvider
Section titled “variable TimezoneProvider”ITimeZoneProvider * TimezoneProvider;The ITimeZoneProvider is queried for the timezone.
variable Width
Section titled “variable Width”unsigned Width;The Width of the View.
variable Height
Section titled “variable Height”unsigned Height;The Height of the View.
variable OnRenderingTasksAvailable
Section titled “variable OnRenderingTasksAvailable”OnRenderingTasksAvailableFunc OnRenderingTasksAvailable;Called when the View is completely advanced and laid-out.
Note: This can be called on any thread!
variable OnMonotonicallyIncreasingTimeRequest
Section titled “variable OnMonotonicallyIncreasingTimeRequest”OnMonotonicallyIncreasingTimeRequestFunc OnMonotonicallyIncreasingTimeRequest;Called during the advance and styling of the views when accurate current time is needed The client should return monotonically increasing time in milliseconds.
Note: Can be called on any thread
variable UserData
Section titled “variable UserData”void * UserData;Passed to the OnRenderingTasksAvailable and OnMonotonicallyIncreasingTimeRequest callbacks.
variable EnableComplexCSSSelectorsStyling
Section titled “variable EnableComplexCSSSelectorsStyling”bool EnableComplexCSSSelectorsStyling;Tells if to enable complex CSS selectors when doing style matching. By complex in this context we mean any CSS selector that requires walking the DOM tree to match - that is selectors with any combinator (https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors#Combinators) and selectors with pseudo-classes that depend on the tree like :nth-child(), :first etc. This flag has a performance implication. Views that don’t need such selectors should leave it disabled, which makes style matching significantly faster.
variable InterceptResourceRequests
Section titled “variable InterceptResourceRequests”bool InterceptResourceRequests;Allows you to intercept resource requests for this view in order to restrict resource access of the view to only specified sets of urls. If InterceptResourceRequests is not explicitly set to true, the default behavior will be to allow every request.
variable InspectorContextMode
Section titled “variable InspectorContextMode”InspectorContextSetting::Mode InspectorContextMode;The inspector network tab mode. InspectorContextSetting::Mode::Enabled is used by default.
Note: This mode is ignored if inspector is completely disabled by cohtml::SystemSettings::EnableDebugger option.
variable MinimumVertexBufferSize
Section titled “variable MinimumVertexBufferSize”unsigned MinimumVertexBufferSize;Controls the minimum count of vertices allocated when creating vertex buffers. If equal to 0 then default count will be used which is 32768.
variable MinimumIndexBufferSize
Section titled “variable MinimumIndexBufferSize”unsigned MinimumIndexBufferSize;Controls the minimum count of indices allocated when creating index buffers. If equal to 0 then default count will be used which is 49152.
variable VertexIndexBufferRingSize
Section titled “variable VertexIndexBufferRingSize”unsigned VertexIndexBufferRingSize;Controls the size of each ring buffer (the VB ring buffer and the IB ring buffer). Every call to BeginFrame rotates the ring buffer and takes the next available buffer that the GPU should not be using. The acceptable range is between 1 and 8.
variable DoubleClickTime
Section titled “variable DoubleClickTime”unsigned DoubleClickTime;The double-click time is the maximum number of milliseconds that may occur between the first and second click of a double-click.
variable TextInputHandler
Section titled “variable TextInputHandler”ITextInputHandler * TextInputHandler;Notifies of changes to an input elements Can be set to nullptr if the user is not interested in receiving the events.
variable StartPanThreshold
Section titled “variable StartPanThreshold”float StartPanThreshold;Controls the minimum length of pans to be performed.
variable ExecuteCommandProcessingWithLayout
Section titled “variable ExecuteCommandProcessingWithLayout”bool ExecuteCommandProcessingWithLayout;Tells the view to process all collected front-end commands right after the layout execution on the same thread.
Note: When this setting is enabled, Cohtml’s rendering library will be used on two different threads – the UI and the render thread. Normally the library will detect that but if you have a use case where your custom engine can execute “UI thread” and rendering tasks on the same thread, you’ll have to enable the multithreaded awareness manually by setting LibraryParams::AllowMultithreadedCommandProcessing to true.
variable EnableComplexTextLayout
Section titled “variable EnableComplexTextLayout”bool EnableComplexTextLayout;Legacy option used to manually control the proper display of complex text in languages like Arabic, Hebrew, Farsi, etc. Not used anymore, Cohtml now automatically detects complex text at no additional performance cost.
Note: This option is deprecated and will be removed in the future.
variable EnableUISurfacePartitioning
Section titled “variable EnableUISurfacePartitioning”bool EnableUISurfacePartitioning;Changes the rendering flow so that the user RT is not cleared and the con-partitioned elements are drawn in separate scratch space.
variable EnableImmediateLayout
Section titled “variable EnableImmediateLayout”bool EnableImmediateLayout;Enabling this immediately recalculates layout before returning a value from some JS methods.
variable EnableUnloadingOfHiddenImages
Section titled “variable EnableUnloadingOfHiddenImages”bool EnableUnloadingOfHiddenImages;When enabled, elements with background/border/mask images that are hidden by display:none will release their reference to the image resource. An image resource without references will be unloaded from the GPU. References to the same image resource can be held with JS to prevent undesired unloading. When disabled, hidden elements will keep a reference to the image resources which assures that the image will be available on the first draw when the element is shown.
variable EnableGlobalSimpleOpacity
Section titled “variable EnableGlobalSimpleOpacity”bool EnableGlobalSimpleOpacity;This option controls the behaviour of ‘coh-simple-opacity: auto’ (the default value for ‘coh-simple-opacity’) When enabled, all elements with ‘opacity’ will use simple opacity unless ‘coh-simple-opacity: off’ is specified. When disabled, all elements with ‘opacity’ will not use simple opacity unless ‘coh-simple-opacity: on’ is specified.
variable LayoutAlgorithm
Section titled “variable LayoutAlgorithm”LayoutAlgorithm LayoutAlgorithm;Determines wether the layout algorithm will try to match old yoga behavior, or a more web-compliant one.
variable CompatibilitySettings
Section titled “variable CompatibilitySettings”CompatibilityFlags CompatibilitySettings;Compatibility settings that can be used to enable or disable specific legacy behaviors in the View.
variable DeveloperOptions
Section titled “variable DeveloperOptions”const void * DeveloperOptions;Reserved property for internal usage. Do not use it.
© 2026 Coherent Labs. All rights reserved.