Scaleform::Render::HALConfigFlagsType

Scaleform::Render::HALConfigFlagsType
enum HALConfigFlagsType {
  HALConfig_SoftwareDeferredContext = 0x80000000,
  HALConfig_DisableRenderEvents = 0x40000000,
  HALConfig_FencePerDrawCall = 0x20000000,
  HALConfig_DisableFilterScaling = 0x10000000,
  HALConfig_DisableImplicitSubmit = 0x08000000,
  HALConfig_DynamicShaderInit = 0x04000000,
  HALConfig_DisableImplicitTarget = 0x02000000,
  HALConfig_FlipRendering = 0x01000000,
  HALConfig_DisableFilters = 0x00800000,
  HALConfig_DisableAdvancedBlends = 0x00400000,
  HALConfig_DarkenLightenLegacy = 0x00800000,
  HALConfig_NoInternalSubmit = 0x01000000,
  HALConfig_RuntimeConfigMask = HALConfig_DisableFilterScaling|HALConfig_DisableImplicitSubmit|HALConfig_FlipRendering|HALConfig_DisableFilters|HALConfig_DisableAdvancedBlends|HALConfig_DarkenLightenLegacy
};
Description

Generic configuration flags, that apply to multiple platforms.

Members
Members 
Description 
HALConfig_SoftwareDeferredContext = 0x80000000 
The HAL will not submit commands directly to the graphics API. Instead, they will be queued in a command buffer, allowing the majority of CPU-side rendering execution to happen on a thread other than the one that owns the device. The queued commands should then be executed on the device thread using the HAL::Submit command. 
HALConfig_DisableRenderEvents = 0x40000000 
Disable the generation of GPU events used in GPU profiling tools. These events may be useful in a tool, to debug a GPU frame, or examine performance (dependent on the specific tool). These events do take a certain amount of performance themselves, so disabling them may provide a speedup. These events are always disabled unless SF_RENDERER_PROFILE is defined. 
HALConfig_FencePerDrawCall = 0x20000000 
Increase the frequency of GPU fence insertion when accessing resources (if possible). In general, the system will only fence resources once per scene. If resource caches are over-utilized, the system will have to wait for the GPU to finish rendering the entire scene before reclaiming these resources. This flag allows reclamation of resources intra-scene.
This flag may have no effect, depending on the fencing mechanism on the platform; for instance, in D3D9/D3D1x, only one query is ever used per scene, as they are expensive to issue. 
HALConfig_DisableFilterScaling = 0x10000000 
If the viewport does not match the dimensions of the content, filter parameters are scaled appropriately so that they appear in the same ratios they do when viewed at the regular viewport size. For example, the blur filter will increase the size of the blur kernel, based on the scaling of the content into the viewport. If this flag is used, this scaling is disabled, and filter parameters remain constant, even if the viewport changes. 
HALConfig_DisableImplicitSubmit = 0x08000000 
Backends that support deferred context rendering will automatically call the HAL::Submit method on EndScene, if the current thread is executing in the immediate device's thread. It is possible that the user would like to have Submit called at another time, passing this flag will disable the implicit call to Submit, and the user must call this explicitly. 
HALConfig_DynamicShaderInit = 0x04000000 
By default, GFx initializes all shaders during InitHAL. This flag disables that behavior, and only initializes shaders when they are referenced. In general, the subset of shaders used by any content is much lower than the total number of available shaders. Depending on the platform and content, this may save significant memory and/or startup time. This is particularly true in GL where shaders cannot be compiled offline. However, this may have performance implications when referencing initializing shaders during playback. 
HALConfig_DisableImplicitTarget = 0x02000000 
By default, Scaleform will create an implicit RenderTarget by querying the render surfaces currently set in the underlying rendering API. In some rendering APIs, querying the underlying surfaces is not possible, and thus an implicit target is not created - in this case, it is expected that a RenderTarget will be explicitly created and set before rendering. For the most consistent cross- platform implementation, use this flag and always explicitly create/set a RenderTarget
HALConfig_FlipRendering = 0x01000000 
Certain Engines(UE4, Stingray) are flipping the OpenGL rendering. However flipping happens at both a generic and GL level so this flag must be visible to both levels. 
HALConfig_DisableFilters = 0x00800000 
Disables filter rendering completely. All content that is within a filter will render as if unfiltered. If setting this at runtime, currently filtered content will be uncached, and begin rendering as if unfiltered. 
HALConfig_DisableAdvancedBlends = 0x00400000 
Disables advanced blend modes (Layer, Lighten, Darken, Difference, Alpha, Erase, Overlay, Hardlight). 'Advanced blend modes can be expensive, because they use render targets and much more complex shaders. This can be undesirable for performance reasons, especially on lower resource platforms, such as mobiles. If this flag is set, all advanced blend modes will render as the 'normal' blend mode. If this flag is set at runtime, all advanced blends will immediately being rendering as normal. 
HALConfig_DarkenLightenLegacy = 0x00800000 
Returns the Darken/Lighten blend modes to their GFx 4.2- implementations. This only has an effect when advanced blend
modes are not explicitly disabled (with HALConfig_DisableAdvancedBlends). Otherwise, Darken and Lighten will also use their legacy implementations. Note: this makes the #define SF_RENDER_DARKEN_LIGHTEN_OLD_BEHAVIOR in GFxConfig.h obsolete, however, if defined it will set this flag in InitHAL. 
HALConfig_NoInternalSubmit = 0x01000000 
Under certain scenarios, the renderer will try to submit a scene in progress, due to a RenderSync::WaitFence requiring, resources generated by the GPU that frame. In many rendering APIs, it is not possible to call submit rendering commands arbitrarily. Enabling this flag does not allow the CPU to wait on the GPU, instead RenderSync::WaitFence will fail. Note that enabling this may result in corrupted BitmapData operations, some of which require intra-frame CPU/GPU synchronization. 
HALConfig_RuntimeConfigMask = HALConfig_DisableFilterScaling|HALConfig_DisableImplicitSubmit|HALConfig_FlipRendering|HALConfig_DisableFilters|HALConfig_DisableAdvancedBlends|HALConfig_DarkenLightenLegacy 
This is a mask indicating which states in this configuration will be honored when modified at runtime using the HAL::SetConfigFlags function. If a flag is passed to HAL::SetConfigFlags, and it is not within this list, a warning will be issued, and the flag ignored. 
File

Render_HAL.h