cohtml.ViewRenderer
Inherits from IDisposable
Inherited by cohtml.ViewRendererRP
Public Functions
| Name | |
|---|---|
| void | UpdateSize(uint width, uint height) |
| virtual abstract void | DrawFrameOnScreen() =0 Draws the view into the active render target. Must be implemented by derived renderer implementations. |
| virtual void | Dispose() |
| int | GetCohtmlOriginY() Returns the Y-axis origin convention used by Cohtml for texture UV coordinates. |
| int | GetUnityOriginY() Returns the Y-axis origin convention used by Unity for texture UV coordinates. |
| RenderTexture | CreateRenderTexture(string name, int width, int height, UnityEngine.Experimental.Rendering.GraphicsFormat format, bool enableRandomWrite =false) Creates and initializes a new RenderTexture with the specified dimensions and graphics format. |
| Shader | GetViewShader(CohtmlView view) |
| void | UpdateFlipKeyword(Material material, bool isFlipped) |
| void | SetInWorldMaterial(Material material, RenderTexture texture, bool isTransparent) |
| void | ApplyTransparencyBlendModes(Material material, bool isTransparent) Applies the appropriate blend mode and depth writing (ZWrite) settings to a given material based on whether it should be rendered as transparent or opaque. This updates the hidden _SrcBlend and _DstBlend shader properties used in the material’s shader. Transparent mode: SrcBlend = 5 (SrcAlpha), DstBlend = 10 (OneMinusSrcAlpha). Opaque mode: SrcBlend = 1 (One), DstBlend = 0 (Zero). |
Protected Functions
| Name | |
|---|---|
| ViewRenderer(CohtmlView view) Initializes the renderer with the specified view. Sets up optional partitioning resources, compute shaders, and filtering materials depending on the current view configuration. | |
| virtual abstract void | ApplyCompositorTextures() =0 Renders all composition textures associated with the current CohtmlView onto the given render target. Used for the Surface Partitioning feature. |
| virtual abstract void | ApplyGlobalBackdropFilter() =0 Applies the global backdrop filter to the target output before drawing UI elements. |
| Mesh | SetupQuad() Creates a 1×1 quad mesh with UVs for fullscreen or partitioned UI rendering. |
Public Attributes
| Name | |
|---|---|
| const string | TextureName |
| const string | MaterialName |
| const string | BackgroundName |
| const string | GlobalBackdropName |
| const string | GlobalBackdropMaskName |
| const string | IntermediateName |
| const string | CameraCopyName |
Protected Attributes
| Name | |
|---|---|
| const string | CohtmlViewName |
| Mesh | m_QuadMesh |
| Matrix4x4 | m_PixelMatrix |
| MaterialPropertyBlock | m_MaterialPropertyBlock |
| float | ThreadGroupDivisor |
| int | m_VerticalKernelIndex |
| int | m_HorizontalKernelIndex |
| Vector3Int | m_ThreadGroups |
| ComputeShader | m_HorizontalBlurShader |
| ComputeShader | m_VerticalBlurShader |
| Material | m_BackdropFilterMaterial |
Public Functions Documentation
function UpdateSize
void UpdateSize(
uint width,
uint height
)
function DrawFrameOnScreen
virtual abstract void DrawFrameOnScreen() =0
Draws the view into the active render target. Must be implemented by derived renderer implementations.
Reimplemented by: cohtml.ViewRendererRP.DrawFrameOnScreen
Depending on configuration, this may:
- Apply composition textures (UISurfacePartitioning)
- Execute C# backend rendering specific operations
- Apply global backdrop filter feature
- Render the final view texture onto the target
function Dispose
virtual void Dispose()
Reimplemented by: cohtml.ViewRendererRP.Dispose
function GetCohtmlOriginY
static int GetCohtmlOriginY()
Returns the Y-axis origin convention used by Cohtml for texture UV coordinates.
Return: 1 if Cohtml uses a top-left Y origin; otherwise 0.
function GetUnityOriginY
static int GetUnityOriginY()
Returns the Y-axis origin convention used by Unity for texture UV coordinates.
Return: 1 if Unity uses a top-left Y origin; otherwise 0.
function CreateRenderTexture
static RenderTexture CreateRenderTexture(
string name,
int width,
int height,
UnityEngine.Experimental.Rendering.GraphicsFormat format,
bool enableRandomWrite =false
)
Creates and initializes a new RenderTexture with the specified dimensions and graphics format.
Parameters:
- name The name to assign to the RenderTexture for debugging purposes.
- width The width of the texture in pixels.
- height The height of the texture in pixels.
- format The graphics format of the texture.
- enableRandomWrite Optional. Set to true to enable random write access (UAV). Defaults to false.
Return: The successfully created RenderTexture, or null if the creation failed (e.g., due to an unsupported format or memory limits).
function GetViewShader
static Shader GetViewShader(
CohtmlView view
)
function UpdateFlipKeyword
static void UpdateFlipKeyword(
Material material,
bool isFlipped
)
function SetInWorldMaterial
static void SetInWorldMaterial(
Material material,
RenderTexture texture,
bool isTransparent
)
function ApplyTransparencyBlendModes
static void ApplyTransparencyBlendModes(
Material material,
bool isTransparent
)
Applies the appropriate blend mode and depth writing (ZWrite) settings to a given material based on whether it should be rendered as transparent or opaque. This updates the hidden _SrcBlend and _DstBlend shader properties used in the material’s shader. Transparent mode: SrcBlend = 5 (SrcAlpha), DstBlend = 10 (OneMinusSrcAlpha). Opaque mode: SrcBlend = 1 (One), DstBlend = 0 (Zero).
Parameters:
- material The target Material to update.
- isTransparent If true, configures the material for standard alpha blending and disables ZWrite (0). If false, configures it for opaque rendering and enables ZWrite (1).
Protected Functions Documentation
function ViewRenderer
ViewRenderer(
CohtmlView view
)
Initializes the renderer with the specified view. Sets up optional partitioning resources, compute shaders, and filtering materials depending on the current view configuration.
Parameters:
- view The CohtmlView instance controlling rendering behavior.
function ApplyCompositorTextures
virtual abstract void ApplyCompositorTextures() =0
Renders all composition textures associated with the current CohtmlView onto the given render target. Used for the Surface Partitioning feature.
Reimplemented by: cohtml.ViewRendererRP.ApplyCompositorTextures
function ApplyGlobalBackdropFilter
virtual abstract void ApplyGlobalBackdropFilter() =0
Applies the global backdrop filter to the target output before drawing UI elements.
Reimplemented by: cohtml.ViewRendererRP.ApplyGlobalBackdropFilter
function SetupQuad
static Mesh SetupQuad()
Creates a 1×1 quad mesh with UVs for fullscreen or partitioned UI rendering.
Return: A newly created quad mesh.
Public Attributes Documentation
variable TextureName
const string TextureName = CohtmlViewName + "Texture";
variable MaterialName
const string MaterialName = CohtmlViewName + "Material";
variable BackgroundName
const string BackgroundName = CohtmlViewName + "Background";
variable GlobalBackdropName
const string GlobalBackdropName = CohtmlViewName + "GlobalBackdropOutput";
variable GlobalBackdropMaskName
const string GlobalBackdropMaskName = CohtmlViewName + "GlobalBackdropMask";
variable IntermediateName
const string IntermediateName = CohtmlViewName + "Intermediate";
variable CameraCopyName
const string CameraCopyName = CohtmlViewName + "CameraCopy";
Protected Attributes Documentation
variable CohtmlViewName
const string CohtmlViewName = "CoherentView_";
variable m_QuadMesh
Mesh m_QuadMesh;
variable m_PixelMatrix
Matrix4x4 m_PixelMatrix;
variable m_MaterialPropertyBlock
MaterialPropertyBlock m_MaterialPropertyBlock;
variable ThreadGroupDivisor
float ThreadGroupDivisor = 16.0f;
variable m_VerticalKernelIndex
int m_VerticalKernelIndex;
variable m_HorizontalKernelIndex
int m_HorizontalKernelIndex;
variable m_ThreadGroups
Vector3Int m_ThreadGroups;
variable m_HorizontalBlurShader
ComputeShader m_HorizontalBlurShader;
variable m_VerticalBlurShader
ComputeShader m_VerticalBlurShader;
variable m_BackdropFilterMaterial
Material m_BackdropFilterMaterial;