Class RenderContextImp
Implementation of the IRenderContextImp interface on top of WebGLDotNET.
Inheritance
Implements
Inherited Members
Namespace: Fusee.Engine.Imp.Graphics.Blazor
Assembly: Fusee.Engine.Imp.Graphics.Blazor.dll
Syntax
public class RenderContextImp : IRenderContextImp
Constructors
RenderContextImp(IRenderCanvasImp)
Initializes a new instance of the RenderContextImp class.
Declaration
public RenderContextImp(IRenderCanvasImp renderCanvasImp)
Parameters
| Type | Name | Description |
|---|---|---|
| IRenderCanvasImp | renderCanvasImp | The platform specific render canvas implementation. |
Fields
gl
The WebGL rendering context base.
Declaration
protected WebGLRenderingContextBase gl
Field Value
| Type | Description |
|---|---|
| WebGLRenderingContextBase |
gl2
The WebGL2 rendering context base.
Declaration
protected WebGL2RenderingContextBase gl2
Field Value
| Type | Description |
|---|---|
| WebGL2RenderingContextBase |
Properties
ClearColor
Gets and sets the color of the background.
Declaration
public float4 ClearColor { get; set; }
Property Value
| Type | Description |
|---|---|
| float4 | The color of the clear. |
ClearDepth
Gets and sets the clear depth value which is used to clear the depth buffer.
Declaration
public float ClearDepth { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Single | Specifies the depth value used when the depth buffer is cleared. The initial value is 1. This value is clamped to the range [0,1]. |
FuseePlatformId
Returns the current underlying rendering platform
Declaration
public FuseePlatformId FuseePlatformId { get; }
Property Value
| Type | Description |
|---|---|
| FuseePlatformId |
Methods
AttacheTextureToFbo(IRenderTarget, Boolean, ITextureHandle, Int32)
Attaches a texture to the frame buffer object, associated with the given render target.
Declaration
public void AttacheTextureToFbo(IRenderTarget renderTarget, bool isDepthTex, ITextureHandle texHandle, int attachment = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| IRenderTarget | renderTarget | The render target. |
| System.Boolean | isDepthTex | Determines if the texture is a depth texture. In this case the texture is attached to DEPTH_ATTACHMENT. |
| ITextureHandle | texHandle | The gpu handle of the texture. |
| System.Int32 | attachment | Number of the fbo attachment. For example: attachment = 1 will attach the texture to COLOR_ATTACHMENT1. |
BlitMultisample2DTextureToTexture(IWritableTexture, IWritableTexture)
Takes a WritableMultisampleTexture and blits the result of all samples into an existing WritableTexture for further use (e. g. bind and use as Albedo texture)
Declaration
public void BlitMultisample2DTextureToTexture(IWritableTexture input, IWritableTexture output)
Parameters
| Type | Name | Description |
|---|---|---|
| IWritableTexture | input | WritableMultisampleTexture |
| IWritableTexture | output | WritableTexture |
Clear(ClearFlags)
Clears the specified flags.
Declaration
public void Clear(ClearFlags flags)
Parameters
| Type | Name | Description |
|---|---|---|
| ClearFlags | flags | The flags. |
ColorMask(Boolean, Boolean, Boolean, Boolean)
Enable or disable Color channels to be written to the frame buffer (final image). Use this function as a color channel filter for the final image.
Declaration
public void ColorMask(bool red, bool green, bool blue, bool alpha)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | red | if set to |
| System.Boolean | green | if set to |
| System.Boolean | blue | if set to |
| System.Boolean | alpha | if set to |
ConnectBufferToShaderStorage(IShaderHandle, IStorageBuffer, String)
Not supported?
Declaration
public void ConnectBufferToShaderStorage(IShaderHandle currentProgram, IStorageBuffer buffer, string ssboName)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | currentProgram | |
| IStorageBuffer | buffer | |
| System.String | ssboName |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
CreateAttributeBuffer(float3[], String)
Create one single multi-purpose attribute buffer
Declaration
public IAttribImp CreateAttributeBuffer(float3[] attributes, string attributeName)
Parameters
| Type | Name | Description |
|---|---|---|
| float3[] | attributes | |
| System.String | attributeName |
Returns
| Type | Description |
|---|---|
| IAttribImp |
CreateGBufferTarget(TexRes)
Generates a GBuffer target
Declaration
public IRenderTarget CreateGBufferTarget(TexRes res)
Parameters
| Type | Name | Description |
|---|---|---|
| TexRes | res |
Returns
| Type | Description |
|---|---|
| IRenderTarget |
CreateInstanceDataImp(IMeshImp)
Creates the instance data implementation.
Declaration
public IInstanceDataImp CreateInstanceDataImp(IMeshImp meshImp)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | meshImp |
Returns
| Type | Description |
|---|---|
| IInstanceDataImp | The IInstanceDataImp instance. |
CreateMeshImp()
Creates the mesh implementation.
Declaration
public IMeshImp CreateMeshImp()
Returns
| Type | Description |
|---|---|
| IMeshImp | The IMeshImp instance. |
CreateShaderProgram(String, String, String)
Creates the shader program by using a valid GLSL vertex and fragment shader code. This code is compiled at runtime. Do not use this function in frequent updates.
Declaration
public IShaderHandle CreateShaderProgram(string vs, string ps, string gs = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | vs | The vertex shader code. |
| System.String | ps | The pixel(=fragment) shader code. |
| System.String | gs | The vertex shader code. |
Returns
| Type | Description |
|---|---|
| IShaderHandle | An instance of IShaderHandle. |
Exceptions
| Type | Condition |
|---|---|
| System.ApplicationException |
CreateShaderProgramCompute(String)
Creates a compute shader program. Not supported in WebGL2 ?
Declaration
public IShaderHandle CreateShaderProgramCompute(string cs = null)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | cs |
Returns
| Type | Description |
|---|---|
| IShaderHandle |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
CreateTexture(ITexture)
Creates a new Texture and binds it to the shader.
Declaration
public ITextureHandle CreateTexture(ITexture img)
Parameters
| Type | Name | Description |
|---|---|---|
| ITexture | img | A given ImageData object, containing all necessary information for the upload to the graphics card. |
Returns
| Type | Description |
|---|---|
| ITextureHandle | An ITextureHandle that can be used for texturing in the shader. In this implementation, the handle is an integer-value which is necessary for OpenTK. |
CreateTexture(IWritableArrayTexture)
Creates an writable array texture Not supported for WebGL2 ?
Declaration
public ITextureHandle CreateTexture(IWritableArrayTexture img)
Parameters
| Type | Name | Description |
|---|---|---|
| IWritableArrayTexture | img |
Returns
| Type | Description |
|---|---|
| ITextureHandle |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
CreateTexture(IWritableCubeMap)
Creates a new CubeMap and binds it to the shader.
Declaration
public ITextureHandle CreateTexture(IWritableCubeMap img)
Parameters
| Type | Name | Description |
|---|---|---|
| IWritableCubeMap | img | A given ImageData object, containing all necessary information for the upload to the graphics card. |
Returns
| Type | Description |
|---|---|
| ITextureHandle | An ITextureHandle that can be used for texturing in the shader. In this implementation, the handle is an integer-value which is necessary for OpenTK. |
CreateTexture(IWritableTexture)
Creates a new Texture and binds it to the shader.
Declaration
public ITextureHandle CreateTexture(IWritableTexture img)
Parameters
| Type | Name | Description |
|---|---|---|
| IWritableTexture | img | A given ImageData object, containing all necessary information for the upload to the graphics card. |
Returns
| Type | Description |
|---|---|
| ITextureHandle | An ITextureHandle that can be used for texturing in the shader. In this implementation, the handle is an integer-value which is necessary for OpenTK. |
DebugLine(float3, float3, float4)
Draws a Debug Line in 3D Space by using a start and end point (float3).
Declaration
public void DebugLine(float3 start, float3 end, float4 color)
Parameters
| Type | Name | Description |
|---|---|---|
| float3 | start | The starting point of the DebugLine. |
| float3 | end | The endpoint of the DebugLine. |
| float4 | color | The color of the DebugLine. |
DeleteAttributeBuffer(IAttribImp)
Remove an attribute buffer previously created with CreateAttributeBuffer(float3[], String) and release all associated resources allocated on the GPU.
Declaration
public void DeleteAttributeBuffer(IAttribImp attribHandle)
Parameters
| Type | Name | Description |
|---|---|---|
| IAttribImp | attribHandle | The attribute handle. |
DeleteFrameBuffer(IBufferHandle)
Free all allocated gpu memory that belong to a frame-buffer object.
Declaration
public void DeleteFrameBuffer(IBufferHandle bh)
Parameters
| Type | Name | Description |
|---|---|---|
| IBufferHandle | bh | The platform dependent abstraction of the gpu buffer handle. |
DeleteRenderBuffer(IBufferHandle)
Free all allocated gpu memory that belong to a render-buffer object.
Declaration
public void DeleteRenderBuffer(IBufferHandle bh)
Parameters
| Type | Name | Description |
|---|---|---|
| IBufferHandle | bh | The platform dependent abstraction of the gpu buffer handle. |
DeleteStorageBuffer(IBufferHandle)
Not supported?
Declaration
public void DeleteStorageBuffer(IBufferHandle storageBufferHandle)
Parameters
| Type | Name | Description |
|---|---|---|
| IBufferHandle | storageBufferHandle |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
DetachTextureFromFbo(IRenderTarget, RenderTargetTextureTypes)
TODO: IMPLEMENT
Declaration
public void DetachTextureFromFbo(IRenderTarget renderTarget, RenderTargetTextureTypes type)
Parameters
| Type | Name | Description |
|---|---|---|
| IRenderTarget | renderTarget | |
| RenderTargetTextureTypes | type |
DetachTextureFromFbo(IRenderTarget, Boolean, Int32)
Detaches a texture from the frame buffer object, associated with the given render target.
Declaration
public void DetachTextureFromFbo(IRenderTarget renderTarget, bool isDepthTex, int attachment = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| IRenderTarget | renderTarget | The render target. |
| System.Boolean | isDepthTex | Determines if the texture is a depth texture. In this case the texture currently associated with DEPTH_ATTACHMENT will be detached. |
| System.Int32 | attachment | Number of the fbo attachment. For example: attachment = 1 will detach the texture currently associated with COLOR_ATTACHMENT1. |
DisableDepthClamp()
Disables depths clamping. EnableDepthClamp()
Declaration
public void DisableDepthClamp()
DispatchCompute(Int32, Int32, Int32, Int32)
Not supported?
Declaration
public void DispatchCompute(int kernelIndex, int threadGroupsX, int threadGroupsY, int threadGroupsZ)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | kernelIndex | |
| System.Int32 | threadGroupsX | |
| System.Int32 | threadGroupsY | |
| System.Int32 | threadGroupsZ |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
EnableDepthClamp()
The clipping behavior against the Z position of a vertex can be turned off by activating depth clamping. This is done with glEnable(GL_DEPTH_CLAMP). This will cause the clip-space Z to remain unclipped by the front and rear viewing volume. See: https://www.khronos.org/opengl/wiki/Vertex_Post-Processing#Depth_clamping
Declaration
public void EnableDepthClamp()
GetActiveUniformsList(IShaderHandle)
Gets the shader parameter list of a specific IShaderHandle.
Declaration
public IList<IActiveUniform> GetActiveUniformsList(IShaderHandle shaderProgram)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | shaderProgram | The shader program. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IList<IActiveUniform> | All Shader parameters of a shader program are returned. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentOutOfRangeException |
GetBufferContent(Rectangle, ITextureHandle)
Gets the content of the buffer.
Declaration
public void GetBufferContent(Rectangle quad, ITextureHandle texId)
Parameters
| Type | Name | Description |
|---|---|---|
| Rectangle | quad | The Rectangle where the content is draw into. |
| ITextureHandle | texId | The texture identifier. |
GetHardwareCapabilities(HardwareCapability)
Returns the capabilities of the underlying graphics hardware
Declaration
public uint GetHardwareCapabilities(HardwareCapability capability)
Parameters
| Type | Name | Description |
|---|---|---|
| HardwareCapability | capability |
Returns
| Type | Description |
|---|---|
| System.UInt32 | uint |
GetHardwareDescription()
Returns a human readable description of the underlying graphics hardware. This implementation reports GL_VENDOR, GL_RENDERER, GL_VERSION and GL_EXTENSIONS.
Declaration
public string GetHardwareDescription()
Returns
| Type | Description |
|---|---|
| System.String |
GetParamValue(IShaderHandle, IUniformHandle)
Gets the float parameter value inside a shader program by using a IUniformHandle as search reference. Do not use this function in frequent updates as it transfers information from the graphics card to the cpu which takes time.
Declaration
public float GetParamValue(IShaderHandle program, IUniformHandle param)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | program | The shader program. |
| IUniformHandle | param | The parameter. |
Returns
| Type | Description |
|---|---|
| System.Single | The current parameter's value. |
GetPixelColor(Int32, Int32, Int32, Int32)
Retrieves a sub-image of the given region.
Declaration
public IImageData GetPixelColor(int x, int y, int w = 1, int h = 1)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | x | The x value of the start of the region. |
| System.Int32 | y | The y value of the start of the region. |
| System.Int32 | w | The width to copy. |
| System.Int32 | h | The height to copy. |
Returns
| Type | Description |
|---|---|
| IImageData | The specified sub-image |
GetPixelDepth(Int32, Int32)
Retrieves the Z-value at the given pixel position.
Declaration
public float GetPixelDepth(int x, int y)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | x | The x value. |
| System.Int32 | y | The y value. |
Returns
| Type | Description |
|---|---|
| System.Single | The Z value at (x, y). |
GetRenderState(RenderState)
Retrieves the current value for the given RenderState that is applied to the current WebGL based RenderContext.
Declaration
public uint GetRenderState(RenderState renderState)
Parameters
| Type | Name | Description |
|---|---|---|
| RenderState | renderState | The RenderState setting to be retrieved. See RenderState for further information. |
Returns
| Type | Description |
|---|---|
| System.UInt32 |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentOutOfRangeException | pm;Value + ((PolygonMode)pm) + not handled or depFunc;Value + ((DepthFunction)depFunc) + not handled or renderState |
GetShaderParam(IShaderHandle, String)
Gets the shader parameter. The Shader parameter is used to bind values inside of shader programs that run on the graphics card. Do not use this function in frequent updates as it transfers information from graphics card to the cpu which takes time.
Declaration
public IUniformHandle GetShaderParam(IShaderHandle shaderProgram, string paramName)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | shaderProgram | The shader program. |
| System.String | paramName | Name of the parameter. |
Returns
| Type | Description |
|---|---|
| IUniformHandle | The Shader parameter is returned if the name is found, otherwise null. |
GetShaderStorageBufferList(IShaderHandle)
Returns the shader storage buffer list Not supported in WebGL2 ?
Declaration
public IList<IActiveUniform> GetShaderStorageBufferList(IShaderHandle shaderProgram)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | shaderProgram |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IList<IActiveUniform> |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
GetShaderUniformParam(IShaderHandle, String)
Returns a shader uniform parameter based on a name Not supported in WebGL2 ?
Declaration
public IUniformHandle GetShaderUniformParam(IShaderHandle shaderProgram, string paramName)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | shaderProgram | |
| System.String | paramName |
Returns
| Type | Description |
|---|---|
| IUniformHandle |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
MemoryBarrier()
Defines a barrier ordering memory transactions. At the moment it will insert all supported barriers.
Declaration
public void MemoryBarrier()
ReatatchTextureFromFbo(IRenderTarget, RenderTargetTextureTypes, ITextureHandle)
TODO: IMPLEMENT
Declaration
public void ReatatchTextureFromFbo(IRenderTarget renderTarget, RenderTargetTextureTypes type, ITextureHandle texHandle)
Parameters
| Type | Name | Description |
|---|---|---|
| IRenderTarget | renderTarget | |
| RenderTargetTextureTypes | type | |
| ITextureHandle | texHandle |
RemoveBiTangents(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveBiTangents(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveBoneIndices(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveBoneIndices(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveBoneWeights(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveBoneWeights(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveColors(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveColors(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveColors1(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveColors1(IMeshImp mesh)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveColors2(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveColors2(IMeshImp mesh)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveFlags(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveFlags(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveInstanceData(IInstanceDataImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveInstanceData(IInstanceDataImp instanceImp)
Parameters
| Type | Name | Description |
|---|---|---|
| IInstanceDataImp | instanceImp | The instance data whose buffers are to be deleted. |
RemoveNormals(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveNormals(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveShader(IShaderHandle)
Removes shader from the GPU
Declaration
public void RemoveShader(IShaderHandle sp)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | sp |
RemoveTangents(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveTangents(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveTextureHandle(ITextureHandle)
Free all allocated gpu memory that belong to the given ITextureHandle.
Declaration
public void RemoveTextureHandle(ITextureHandle textureHandle)
Parameters
| Type | Name | Description |
|---|---|---|
| ITextureHandle | textureHandle | The ITextureHandle which gpu allocated memory will be freed. |
RemoveTriangles(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveTriangles(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveUVs(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveUVs(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
RemoveVertices(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
public void RemoveVertices(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The mesh which buffer respectively GPU memory should be deleted. |
Render(IMeshImp, IInstanceDataImp)
Renders the specified IMeshImp.
Declaration
public void Render(IMeshImp mr, IInstanceDataImp instanceData = null)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| IInstanceDataImp | instanceData | The IInstanceDataImp |
Scissor(Int32, Int32, Int32, Int32)
Only pixels that lie within the scissor box can be modified by drawing commands. Note that the Scissor test must be enabled for this to work.
Declaration
public void Scissor(int x, int y, int width, int height)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | x | X Coordinate of the lower left point of the scissor box. |
| System.Int32 | y | Y Coordinate of the lower left point of the scissor box. |
| System.Int32 | width | Width of the scissor box. |
| System.Int32 | height | Height of the scissor box. |
SetActiveAndBindTexture(IUniformHandle, ITextureHandle, TextureType)
Sets a texture active and binds it.
Declaration
public void SetActiveAndBindTexture(IUniformHandle param, ITextureHandle texId, TextureType texTarget)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The shader parameter, associated with this texture. |
| ITextureHandle | texId | The texture handle. |
| TextureType | texTarget | The texture type, describing to which texture target the texture gets bound to. |
SetActiveAndBindTexture(IUniformHandle, ITextureHandle, TextureType, out Int32)
Sets a texture active and binds it.
Declaration
public void SetActiveAndBindTexture(IUniformHandle param, ITextureHandle texId, TextureType texTarget, out int texUnit)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The shader parameter, associated with this texture. |
| ITextureHandle | texId | The texture handle. |
| TextureType | texTarget | The texture type, describing to which texture target the texture gets bound to. |
| System.Int32 | texUnit | The texture unit. |
SetActiveAndBindTextureArray(IUniformHandle, ITextureHandle[], TextureType)
Sets a given Shader Parameter to a created texture
Declaration
public void SetActiveAndBindTextureArray(IUniformHandle param, ITextureHandle[] texIds, TextureType texTarget)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | Shader Parameter used for texture binding |
| ITextureHandle[] | texIds | An array of ITextureHandles returned from CreateTexture method or the ShaderEffectManager. |
| TextureType | texTarget | The texture type, describing to which texture target the texture gets bound to. |
SetActiveAndBindTextureArray(IUniformHandle, ITextureHandle[], TextureType, out Int32[])
Sets a texture active and binds it.
Declaration
public void SetActiveAndBindTextureArray(IUniformHandle param, ITextureHandle[] texIds, TextureType texTarget, out int[] texUnitArray)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The shader parameter, associated with this texture. |
| ITextureHandle[] | texIds | An array of ITextureHandles returned from CreateTexture method or the ShaderEffectManager. |
| TextureType | texTarget | The texture type, describing to which texture target the texture gets bound to. |
| System.Int32[] | texUnitArray | The texture units. |
SetBiTangents(IMeshImp, ReadOnlySpan<float3>)
Binds the bitangents onto the GL render context and assigns an BiTangentBuffer index to the passed IMeshImp instance.
Declaration
public void SetBiTangents(IMeshImp mr, ReadOnlySpan<float3> bitangents)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<float3> | bitangents | The BiTangents. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | BiTangents must not be null or empty |
| System.ApplicationException |
SetBoneIndices(IMeshImp, ReadOnlySpan<float4>)
Binds the bone indices onto the GL render context and assigns an BondeIndexBuffer index to the passed IMeshImp instance.
Declaration
public void SetBoneIndices(IMeshImp mr, ReadOnlySpan<float4> boneIndices)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<float4> | boneIndices | The bone indices. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | BoneIndices must not be null or empty |
| System.ApplicationException |
SetBoneWeights(IMeshImp, ReadOnlySpan<float4>)
Binds the bone weights onto the GL render context and assigns an BondeWeightBuffer index to the passed IMeshImp instance.
Declaration
public void SetBoneWeights(IMeshImp mr, ReadOnlySpan<float4> boneWeights)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<float4> | boneWeights | The bone weights. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | BoneWeights must not be null or empty |
| System.ApplicationException |
SetColors(IMeshImp, ReadOnlySpan<UInt32>)
Binds the colors onto the GL render context and assigns an ColorBuffer index to the passed IMeshImp instance.
Declaration
public void SetColors(IMeshImp mr, ReadOnlySpan<uint> colors)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<System.UInt32> | colors | The colors. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | colors must not be null or empty |
| System.ApplicationException |
SetColors1(IMeshImp, ReadOnlySpan<UInt32>)
Binds the second set of colors onto the GL render context and assigns an ColorBuffer index to the passed IMeshImp instance.
Declaration
public void SetColors1(IMeshImp mr, ReadOnlySpan<uint> colors)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<System.UInt32> | colors | The colors. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | colors must not be null or empty |
| System.ApplicationException |
SetColors2(IMeshImp, ReadOnlySpan<UInt32>)
Binds the third set of colors onto the GL render context and assigns an ColorBuffer index to the passed IMeshImp instance.
Declaration
public void SetColors2(IMeshImp mr, ReadOnlySpan<uint> colors)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<System.UInt32> | colors | The colors. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | colors must not be null or empty |
| System.ApplicationException |
SetFlags(IMeshImp, ReadOnlySpan<UInt32>)
Binds the lags onto the GL render context and assigns an buffer index to the passed IMeshImp instance.
Declaration
public void SetFlags(IMeshImp mr, ReadOnlySpan<uint> flags)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<System.UInt32> | flags | The flags. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | colors must not be null or empty |
| System.ApplicationException |
SetInstanceColor(IInstanceDataImp, float4[])
Creates or updates the instance color buffer..
Declaration
public void SetInstanceColor(IInstanceDataImp instanceImp, float4[] instanceColors)
Parameters
| Type | Name | Description |
|---|---|---|
| IInstanceDataImp | instanceImp | The Fusee.Engine.Imp.Graphics.Blazor.InstanceDataImp. |
| float4[] | instanceColors | The colors of the instances. |
SetInstanceTransform(IInstanceDataImp, float3[], float3[], float3[])
Creates or updates the instance transform buffer. Positions, scales and rotations become the instance model matrices.
Declaration
public void SetInstanceTransform(IInstanceDataImp instanceImp, float3[] instancePositions, float3[] instanceRotations, float3[] instanceScales)
Parameters
| Type | Name | Description |
|---|---|---|
| IInstanceDataImp | instanceImp | The Fusee.Engine.Imp.Graphics.Blazor.InstanceDataImp. |
| float3[] | instancePositions | The positions of the instances. |
| float3[] | instanceRotations | The rotations of the instances. |
| float3[] | instanceScales | The scales of the instances. |
SetLineWidth(Single)
Set the width of line primitives.
Declaration
public void SetLineWidth(float width)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Single | width |
SetNormals(IMeshImp, ReadOnlySpan<float3>)
Binds the normals onto the GL render context and assigns an NormalBuffer index to the passed IMeshImp instance.
Declaration
public void SetNormals(IMeshImp mr, ReadOnlySpan<float3> normals)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<float3> | normals | The normals. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Normals must not be null or empty |
| System.ApplicationException |
SetRenderState(RenderState, UInt32)
Sets the RenderState object onto the current OpenGL based RenderContext.
Declaration
public void SetRenderState(RenderState renderState, uint value)
Parameters
| Type | Name | Description |
|---|---|---|
| RenderState | renderState | State of the render(enum). |
| System.UInt32 | value | The value. See RenderState for detailed information. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentOutOfRangeException | value or value or value or renderState |
SetRenderTarget(IRenderTarget, ITextureHandle[])
Renders into the given textures of the RenderTarget.
Declaration
public void SetRenderTarget(IRenderTarget renderTarget, ITextureHandle[] texHandles)
Parameters
| Type | Name | Description |
|---|---|---|
| IRenderTarget | renderTarget | The render target. |
| ITextureHandle[] | texHandles | The texture handles, associated with the given textures. Each handle should be created by the TextureManager in the RenderContext. |
SetRenderTarget(IWritableArrayTexture, Int32, ITextureHandle)
Sets an IWritableArrayTexture as render target Not supported in WebGL2 ?
Declaration
public void SetRenderTarget(IWritableArrayTexture tex, int layer, ITextureHandle texHandle)
Parameters
| Type | Name | Description |
|---|---|---|
| IWritableArrayTexture | tex | |
| System.Int32 | layer | |
| ITextureHandle | texHandle |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
SetRenderTarget(IWritableCubeMap, ITextureHandle)
Renders into the given cube map.
Declaration
public void SetRenderTarget(IWritableCubeMap tex, ITextureHandle texHandle)
Parameters
| Type | Name | Description |
|---|---|---|
| IWritableCubeMap | tex | The texture. |
| ITextureHandle | texHandle | The texture handle, associated with the given cube map. Should be created by the TextureManager in the RenderContext. |
SetRenderTarget(IWritableTexture, ITextureHandle)
Renders into the given texture.
Declaration
public void SetRenderTarget(IWritableTexture tex, ITextureHandle texHandle)
Parameters
| Type | Name | Description |
|---|---|---|
| IWritableTexture | tex | The texture. |
| ITextureHandle | texHandle | The texture handle, associated with the given texture. Should be created by the TextureManager in the RenderContext. |
SetShader(IShaderHandle)
Sets the shader program onto the GL render context.
Declaration
public void SetShader(IShaderHandle program)
Parameters
| Type | Name | Description |
|---|---|---|
| IShaderHandle | program | The shader program. |
SetShaderParam(IUniformHandle, float2)
Sets a float2 shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float2 val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float2 | val | The value. |
SetShaderParam(IUniformHandle, float2[])
Sets a float2 array as shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float2[] val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float2[] | val | The value. |
SetShaderParam(IUniformHandle, float3)
Sets a float3 shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float3 val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float3 | val | The value. |
SetShaderParam(IUniformHandle, float3[])
Sets a float3 shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float3[] val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float3[] | val | The value. |
SetShaderParam(IUniformHandle, float4)
Sets a float4 shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float4 val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float4 | val | The value. |
SetShaderParam(IUniformHandle, float4[])
Sets a float4 array shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float4[] val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float4[] | val | The value. |
SetShaderParam(IUniformHandle, float4x4)
Sets a float4x4 shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float4x4 val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float4x4 | val | The value. |
SetShaderParam(IUniformHandle, float4x4[])
Sets a float4x4 array shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float4x4[] val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| float4x4[] | val | The value. |
SetShaderParam(IUniformHandle, int2)
Sets a int2 shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, int2 val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| int2 | val | The value. |
SetShaderParam(IUniformHandle, Double)
Sets the shader parameter, casts to float first.
Declaration
public void SetShaderParam(IUniformHandle param, double val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | |
| System.Double | val |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
SetShaderParam(IUniformHandle, Int32)
Sets a int shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, int val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| System.Int32 | val | The value. |
SetShaderParam(IUniformHandle, Single)
Sets a float shader parameter.
Declaration
public void SetShaderParam(IUniformHandle param, float val)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | The parameter. |
| System.Single | val | The value. |
SetShaderParamImage(IUniformHandle, ITextureHandle, TextureType, ImagePixelFormat)
Sets an shader parameter to an image.
Declaration
public void SetShaderParamImage(IUniformHandle param, ITextureHandle texId, TextureType texTarget, ImagePixelFormat format)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | |
| ITextureHandle | texId | |
| TextureType | texTarget | |
| ImagePixelFormat | format |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
SetShaderParamTexture(IUniformHandle, ITextureHandle, TextureType)
Sets a given Shader Parameter to a created texture
Declaration
public void SetShaderParamTexture(IUniformHandle param, ITextureHandle texId, TextureType texTarget)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | Shader Parameter used for texture binding |
| ITextureHandle | texId | An ITextureHandle probably returned from CreateTexture method |
| TextureType | texTarget | The texture type, describing to which texture target the texture gets bound to. |
SetShaderParamTextureArray(IUniformHandle, ITextureHandle[], TextureType)
Sets a given Shader Parameter to a created texture
Declaration
public void SetShaderParamTextureArray(IUniformHandle param, ITextureHandle[] texIds, TextureType texTarget)
Parameters
| Type | Name | Description |
|---|---|---|
| IUniformHandle | param | Shader Parameter used for texture binding |
| ITextureHandle[] | texIds | An array of ITextureHandles probably returned from CreateTexture method |
| TextureType | texTarget | The texture type, describing to which texture target the texture gets bound to. |
SetTangents(IMeshImp, ReadOnlySpan<float4>)
Binds the tangents onto the GL render context and assigns an TangentBuffer index to the passed IMeshImp instance.
Declaration
public void SetTangents(IMeshImp mr, ReadOnlySpan<float4> tangents)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<float4> | tangents | The tangents. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Tangents must not be null or empty |
| System.ApplicationException |
SetTextureFilterMode(ITextureHandle, TextureFilterMode)
Sets the texture filter mode
Declaration
public void SetTextureFilterMode(ITextureHandle tex, TextureFilterMode filterMode)
Parameters
| Type | Name | Description |
|---|---|---|
| ITextureHandle | tex | |
| TextureFilterMode | filterMode |
SetTextureWrapMode(ITextureHandle, TextureWrapMode)
Sets the texture wrapping mode
Declaration
public void SetTextureWrapMode(ITextureHandle tex, TextureWrapMode wrapMode)
Parameters
| Type | Name | Description |
|---|---|---|
| ITextureHandle | tex | |
| TextureWrapMode | wrapMode |
SetTriangles(IMeshImp, ReadOnlySpan<UInt32>)
Binds the triangles onto the GL render context and assigns an ElementBuffer index to the passed IMeshImp instance.
Declaration
public void SetTriangles(IMeshImp mr, ReadOnlySpan<uint> triangleIndices)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<System.UInt32> | triangleIndices | The triangle indices. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | triangleIndices must not be null or empty |
| System.ApplicationException |
SetUVs(IMeshImp, ReadOnlySpan<float2>)
Binds the UV coordinates onto the GL render context and assigns an UVBuffer index to the passed IMeshImp instance.
Declaration
public void SetUVs(IMeshImp mr, ReadOnlySpan<float2> uvs)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<float2> | uvs | The UV's. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | UVs must not be null or empty |
| System.ApplicationException |
SetVertexArrayObject(IMeshImp)
Sets the vertex array object
Declaration
public void SetVertexArrayObject(IMeshImp mr)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr |
SetVertices(IMeshImp, ReadOnlySpan<float3>)
Binds the vertices onto the GL render context and assigns an VertexBuffer index to the passed IMeshImp instance.
Declaration
public void SetVertices(IMeshImp mr, ReadOnlySpan<float3> vertices)
Parameters
| Type | Name | Description |
|---|---|---|
| IMeshImp | mr | The IMeshImp instance. |
| System.ReadOnlySpan<float3> | vertices | The vertices. |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Vertices must not be null or empty |
| System.ApplicationException |
StorageBufferSetData<T>(IStorageBuffer, T[])
Not supported?
Declaration
public void StorageBufferSetData<T>(IStorageBuffer storageBuffer, T[] data)
where T : struct
Parameters
| Type | Name | Description |
|---|---|---|
| IStorageBuffer | storageBuffer | |
| T[] | data |
Type Parameters
| Name | Description |
|---|---|
| T |
Exceptions
| Type | Condition |
|---|---|
| System.NotImplementedException |
UpdateTextureRegion(ITextureHandle, ITexture, Int32, Int32, Int32, Int32)
Updates a specific rectangle of a texture.
Declaration
public void UpdateTextureRegion(ITextureHandle tex, ITexture img, int startX, int startY, int width, int height)
Parameters
| Type | Name | Description |
|---|---|---|
| ITextureHandle | tex | The texture to which the ImageData is bound to. |
| ITexture | img | The ImageData struct containing information about the image. |
| System.Int32 | startX | The x-value of the upper left corner of th rectangle. |
| System.Int32 | startY | The y-value of the upper left corner of th rectangle. |
| System.Int32 | width | The width of the rectangle. |
| System.Int32 | height | The height of the rectangle. |
Remarks
///
Viewport(Int32, Int32, Int32, Int32)
Set the Viewport of the rendering output window by x,y position and width,height parameters. The Viewport is the portion of the final image window.
Declaration
public void Viewport(int x, int y, int width, int height)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | x | The x. |
| System.Int32 | y | The y. |
| System.Int32 | width | The width. |
| System.Int32 | height | The height. |