Interface IRenderContextImp
The render context interface contains all functions necessary to manipulate the underlying rendering hardware. Use this class' elements to render geometry to the RenderCanvas associated with this context. If you are worked with OpenGL or DirectX before you will find many similarities in this class' methods and properties.
Namespace: Fusee.Engine.Common
Assembly: Fusee.Engine.Common.dll
Syntax
public interface IRenderContextImp
Properties
ClearColor
The color to use when clearing the color buffer.
Declaration
float4 ClearColor { get; set; }
Property Value
Type | Description |
---|---|
float4 | The color value is interpreted as a (Red, Green, Blue, Alpha) quadruple with component values ranging from 0.0f to 1.0f. |
Remarks
This is the color that will be copied to all pixels in the output color buffer when Clear is called on the render context.
See Also
ClearDepth
The depth value to use when clearing the color buffer.
Declaration
float ClearDepth { get; set; }
Property Value
Type | Description |
---|---|
System.Single | Typically set to the highest possible depth value. Typically ranges between 0 and 1. |
Remarks
This is the depth (z-) value that will be copied to all pixels in the depth (z-) buffer when Clear is called on the render context.
FuseePlatformId
Constant id that describes the renderer. This can be used in shaders to do platform dependent things.
Declaration
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
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 the DepthAttachment. |
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 the ColorAttachment1. |
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
void BlitMultisample2DTextureToTexture(IWritableTexture input, IWritableTexture output)
Parameters
Type | Name | Description |
---|---|---|
IWritableTexture | input | WritableMultisampleTexture |
IWritableTexture | output | WritableTexture |
Clear(ClearFlags)
Erases the contents of the specified rendering buffers.
Declaration
void Clear(ClearFlags flags)
Parameters
Type | Name | Description |
---|---|---|
ClearFlags | flags | A combination of flags specifying the rendering buffers to clear. |
Remarks
Calling this method erases all contents of the rendering buffers. A typical use case for this method is to erase the contents of the color buffer and the depth buffer (z-buffer) before rendering starts at the beginning of a rendering loop. Thus, rendering the current frame starts with an empty color and z-buffer. ClearFlags for a list of possible buffers to clear. Make sure to use the bitwise or-operator (|) to combine several buffers to clear.
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
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)
Connects the given SSBO to the currently active shader program.
Declaration
void ConnectBufferToShaderStorage(IShaderHandle currentProgram, IStorageBuffer buffer, string ssboName)
Parameters
Type | Name | Description |
---|---|---|
IShaderHandle | currentProgram | The handle of the current shader program. |
IStorageBuffer | buffer | The Storage Buffer object on the CPU. |
System.String | ssboName | The SSBO's name. |
CreateGBufferTarget(TexRes)
Creates a IRenderTarget with the purpose of being used as CPU GBuffer representation.
Declaration
IRenderTarget CreateGBufferTarget(TexRes res)
Parameters
Type | Name | Description |
---|---|---|
TexRes | res | The texture resolution. |
Returns
Type | Description |
---|---|
IRenderTarget |
CreateInstanceDataImp(IMeshImp)
Creates the instance data implementation.
Declaration
IInstanceDataImp CreateInstanceDataImp(IMeshImp meshImp)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | meshImp |
Returns
Type | Description |
---|---|
IInstanceDataImp | The IInstanceDataImp instance. |
CreateMeshImp()
Creates the mesh implementation.
Declaration
IMeshImp CreateMeshImp()
Returns
Type | Description |
---|---|
IMeshImp | The IMeshImp instance. |
CreateShaderProgram(String, String, String)
Creates a shader object from vertex shader source code and pixel shader source code.
Declaration
IShaderHandle CreateShaderProgram(string vs, string ps, string gs = null)
Parameters
Type | Name | Description |
---|---|---|
System.String | vs | A string containing the vertex shader source. |
System.String | ps | A string containing the pixel (fragment) shader source code. |
System.String | gs | A string containing the geometry shader source. |
Returns
Type | Description |
---|---|
IShaderHandle | A shader program object identifying the combination of the given vertex and pixel shader. |
Remarks
Currently only shaders in GLSL (or rather GLSL/ES) source language(s) are supported. The result is already compiled to code executable on the GPU. SetShader(IShaderHandle) to activate the result as the current shader used for rendering geometry passed to the RenderContext.
CreateShaderProgramCompute(String)
Creates a shader object from compute shader source code.
Declaration
IShaderHandle CreateShaderProgramCompute(string cs = null)
Parameters
Type | Name | Description |
---|---|---|
System.String | cs | A string containing the compute shader source. |
Returns
Type | Description |
---|---|
IShaderHandle |
CreateTexture(ITexture)
Creates a new texture and binds it to the shader.
Declaration
ITextureHandle CreateTexture(ITexture img)
Parameters
Type | Name | Description |
---|---|---|
ITexture | img | An ITexture, containing necessary information for the upload to the graphics card. |
Returns
Type | Description |
---|---|
ITextureHandle |
Remarks
Method should be called after LoadImage method to process the BitmapData an make them available for the shader.
CreateTexture(IWritableArrayTexture)
Creates a new cube map and binds it to the shader.
Declaration
ITextureHandle CreateTexture(IWritableArrayTexture img)
Parameters
Type | Name | Description |
---|---|---|
IWritableArrayTexture | img | An IWritableArrayTexture, containing necessary information for the upload to the graphics card. |
Returns
Type | Description |
---|---|
ITextureHandle |
CreateTexture(IWritableCubeMap)
Creates a new cube map and binds it to the shader.
Declaration
ITextureHandle CreateTexture(IWritableCubeMap img)
Parameters
Type | Name | Description |
---|---|---|
IWritableCubeMap | img | An IWritableCubeMap, containing necessary information for the upload to the graphics card. |
Returns
Type | Description |
---|---|
ITextureHandle |
CreateTexture(IWritableTexture)
Creates a new texture and binds it to the shader.
Declaration
ITextureHandle CreateTexture(IWritableTexture img)
Parameters
Type | Name | Description |
---|---|---|
IWritableTexture | img | An IWritableTexture, containing necessary information for the upload to the graphics card. |
Returns
Type | Description |
---|---|
ITextureHandle |
DebugLine(float3, float3, float4)
Draws a Debug Line in 3D Space by using a start and end point (float3).
Declaration
void DebugLine(float3 start, float3 end, float4 color)
Parameters
Type | Name | Description |
---|---|---|
float3 | start | The start point of the DebugLine. |
float3 | end | The endpoint of the DebugLine. |
float4 | color | The color of the DebugLine. |
DeleteFrameBuffer(IBufferHandle)
Free all allocated gpu memory that belong to a frame buffer object.
Declaration
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 belonging to a render buffer object.
Declaration
void DeleteRenderBuffer(IBufferHandle bh)
Parameters
Type | Name | Description |
---|---|---|
IBufferHandle | bh | The platform dependent abstraction of the gpu buffer handle. |
DeleteStorageBuffer(IBufferHandle)
Deletes the shader storage buffer on the GPU.
Declaration
void DeleteStorageBuffer(IBufferHandle storageBufferHandle)
Parameters
Type | Name | Description |
---|---|---|
IBufferHandle | storageBufferHandle | The buffer object. |
DetachTextureFromFbo(IRenderTarget, Boolean, Int32)
Detaches a texture from the frame buffer object, associated with the given render target.
Declaration
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 the DepthAttachment will be detached. |
System.Int32 | attachment | Number of the fbo attachment. For example: attachment = 1 will detach the texture currently associated with the ColorAttachment1. |
DisableDepthClamp()
Disables depths clamping. EnableDepthClamp()
Declaration
void DisableDepthClamp()
DispatchCompute(Int32, Int32, Int32, Int32)
Launch the bound Compute Shader Program.
Declaration
void DispatchCompute(int kernelIndex, int threadGroupsX, int threadGroupsY, int threadGroupsZ)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | kernelIndex | |
System.Int32 | threadGroupsX | The number of work groups to be launched in the X dimension. |
System.Int32 | threadGroupsY | The number of work groups to be launched in the Y dimension. |
System.Int32 | threadGroupsZ | he number of work groups to be launched in the Z dimension. |
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
void EnableDepthClamp()
GetActiveUniformsList(IShaderHandle)
Get a list of (uniform) shader parameters accessed by the given shader.
Declaration
IList<IActiveUniform> GetActiveUniformsList(IShaderHandle shaderProgram)
Parameters
Type | Name | Description |
---|---|---|
IShaderHandle | shaderProgram | The shader program to query for parameters. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<IActiveUniform> | A list of shader parameters accessed by the shader code of the given shader program. The parameters listed here are the so-called uniform parameters of the shader (in contrast to the varying parameters). The list contains all uniform parameters that are accessed by either the vertex shader, the pixel shader, or both shaders compiled into the given shader. |
GetBufferContent(Rectangle, ITextureHandle)
Gets the content of the buffer.
Declaration
void GetBufferContent(Rectangle quad, ITextureHandle texId)
Parameters
Type | Name | Description |
---|---|---|
Rectangle | quad | The quad. |
ITextureHandle | texId | The texture identifier. |
GetHardwareCapabilities(HardwareCapability)
Returns the capabilities of the underlying graphics hardware
Declaration
uint GetHardwareCapabilities(HardwareCapability capability)
Parameters
Type | Name | Description |
---|---|---|
HardwareCapability | capability | The capability to check against |
Returns
Type | Description |
---|---|
System.UInt32 | uint |
GetHardwareDescription()
Returns a human readable description of the underlying graphics hardware
Declaration
string GetHardwareDescription()
Returns
Type | Description |
---|---|
System.String | Description |
GetPixelColor(Int32, Int32, Int32, Int32)
Retrieves a sub-image of the given region.
Declaration
IImageData GetPixelColor(int x, int y, int w, int h)
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
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 value of the given render state.
Declaration
uint GetRenderState(RenderState renderState)
Parameters
Type | Name | Description |
---|---|---|
RenderState | renderState | The render state to retrieve. |
Returns
Type | Description |
---|---|
System.UInt32 | the current value of the render state. |
GetShaderStorageBufferList(IShaderHandle)
Get a list of shader storage buffer variables accessed by the given shader.
Declaration
IList<IActiveUniform> GetShaderStorageBufferList(IShaderHandle shaderProgram)
Parameters
Type | Name | Description |
---|---|---|
IShaderHandle | shaderProgram | The shader program to query for parameters. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<IActiveUniform> |
GetShaderUniformParam(IShaderHandle, String)
Returns an identifier for the named (uniform) parameter used in the specified shader program.
Declaration
IUniformHandle GetShaderUniformParam(IShaderHandle shaderProgram, string paramName)
Parameters
Type | Name | Description |
---|---|---|
IShaderHandle | shaderProgram | The shader program using the parameter. |
System.String | paramName | Name of the shader parameter. |
Returns
Type | Description |
---|---|
IUniformHandle | A handle object to identify the given parameter in subsequent calls to SetShaderParam. |
Remarks
The returned handle can be used to assign values to a (uniform) shader parameter.
MemoryBarrier()
Defines a barrier ordering memory transactions. At the moment it will insert all supported barriers. TODO: Define GLbitfield enum
Declaration
void MemoryBarrier()
RemoveBiTangents(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveBiTangents(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveBoneIndices(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveBoneIndices(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveBoneWeights(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveBoneWeights(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveColors(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveColors(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveColors1(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
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
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
void RemoveFlags(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveInstanceData(IInstanceDataImp)
Deletes the buffers associated with the instance data implementation.
Declaration
void RemoveInstanceData(IInstanceDataImp instanceDataImp)
Parameters
Type | Name | Description |
---|---|---|
IInstanceDataImp | instanceDataImp | The instance data for which to delete the GPU buffers. |
RemoveNormals(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveNormals(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveShader(IShaderHandle)
Removes given shader program from GPU
Declaration
void RemoveShader(IShaderHandle sp)
Parameters
Type | Name | Description |
---|---|---|
IShaderHandle | sp |
RemoveTangents(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveTangents(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveTextureHandle(ITextureHandle)
Removes the TextureHandle's buffers and textures from the graphics card's memory
Declaration
void RemoveTextureHandle(ITextureHandle textureHandle)
Parameters
Type | Name | Description |
---|---|---|
ITextureHandle | textureHandle | An TextureHandle object, containing necessary information for the upload to the graphics card. |
Remarks
Method should be called after an TextureHandle is no longer required by the application.
RemoveTriangles(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveTriangles(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveUVs(IMeshImp)
Deletes the buffer associated with the mesh implementation.
Declaration
void RemoveUVs(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh which buffer respectively GPU memory should be deleted. |
RemoveVertices(IMeshImp)
Deletes the buffers associated with the mesh implementation.
Declaration
void RemoveVertices(IMeshImp mesh)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The mesh for which to delete the GPU buffers. |
Render(IMeshImp, IInstanceDataImp)
Renders the specified mesh.
Declaration
void Render(IMeshImp mr, IInstanceDataImp instanceData = null)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mr | The mesh that should be rendered. |
IInstanceDataImp | instanceData | Contains the buffers that need to be bound when using instanced rendering. |
Remarks
Passes geometry to be pushed through the rendering pipeline. IMeshImp for a description how geometry is made up. The geometry is transformed and rendered by the currently active shader program.
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
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
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
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 texture active and binds it.
Declaration
void SetActiveAndBindTextureArray(IUniformHandle param, ITextureHandle[] texIds, TextureType texTarget)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter, associated with this texture. |
ITextureHandle[] | texIds | The texture handle. |
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
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
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 ElementBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetBoneWeights(IMeshImp, ReadOnlySpan<float4>)
Binds the bone weights onto the GL render context and assigns an ElementBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetColors(IMeshImp, ReadOnlySpan<UInt32>)
Binds the colors onto the GL render context and assigns an ColorBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetColors1(IMeshImp, ReadOnlySpan<UInt32>)
Binds the colors onto the GL render context and assigns an ColorBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetColors2(IMeshImp, ReadOnlySpan<UInt32>)
Binds the colors onto the GL render context and assigns an ColorBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetFlags(IMeshImp, ReadOnlySpan<UInt32>)
Binds the flags onto the GL render context and assigns an ElementBuffer index to the passed IMeshImp instance.
Declaration
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 | boneWeights must not be null or empty |
SetInstanceColor(IInstanceDataImp, float4[])
Binds the instance colors onto the GL render context and assigns an buffer object index to the passed IInstanceDataImp instance.
Declaration
void SetInstanceColor(IInstanceDataImp instanceImp, float4[] instanceColors)
Parameters
Type | Name | Description |
---|---|---|
IInstanceDataImp | instanceImp | The IInstanceDataImp instance. |
float4[] | instanceColors | The instance colors. |
SetInstanceTransform(IInstanceDataImp, float3[], float3[], float3[])
Creates and binds the instance model matrices onto the GL render context and assigns an buffer object index to the passed IInstanceDataImp instance.
Declaration
void SetInstanceTransform(IInstanceDataImp instanceImp, float3[] instancePositions, float3[] instanceRotations, float3[] instanceScales)
Parameters
Type | Name | Description |
---|---|---|
IInstanceDataImp | instanceImp | The IInstanceDataImp instance. |
float3[] | instancePositions | The instance positions. |
float3[] | instanceRotations | The instance rotations. |
float3[] | instanceScales | The instance scale values. |
SetLineWidth(Single)
Sets the line width when drawing a mesh with primitive mode line
Declaration
void SetLineWidth(float width)
Parameters
Type | Name | Description |
---|---|---|
System.Single | width | The width of the line. |
SetNormals(IMeshImp, ReadOnlySpan<float3>)
Binds the normals onto the GL render context and assigns an NormalBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetRenderState(RenderState, UInt32)
Sets the specified render state to the given setting.
Declaration
void SetRenderState(RenderState renderState, uint value)
Parameters
Type | Name | Description |
---|---|---|
RenderState | renderState | The render state to set. |
System.UInt32 | value | The new value of the render state. |
SetRenderTarget(IRenderTarget, ITextureHandle[])
Renders into the given textures of the RenderTarget.
Declaration
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)
Renders into the given layer of the array texture.
Declaration
void SetRenderTarget(IWritableArrayTexture tex, int layer, ITextureHandle texHandle)
Parameters
Type | Name | Description |
---|---|---|
IWritableArrayTexture | tex | The array texture. |
System.Int32 | layer | The layer to render to. |
ITextureHandle | texHandle | The texture handle, associated with the given texture. Should be created by the TextureManager in the RenderContext. |
SetRenderTarget(IWritableCubeMap, ITextureHandle)
Renders into the given texture.
Declaration
void SetRenderTarget(IWritableCubeMap tex, ITextureHandle texHandle)
Parameters
Type | Name | Description |
---|---|---|
IWritableCubeMap | tex | The texture. |
ITextureHandle | texHandle | The texture handle, associated with the given texture. Should be created by the TextureManager in the RenderContext. |
SetRenderTarget(IWritableTexture, ITextureHandle)
Renders into the given texture.
Declaration
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)
Activates the passed shader program as the current shader for geometry rendering.
Declaration
void SetShader(IShaderHandle shaderProgramImp)
Parameters
Type | Name | Description |
---|---|---|
IShaderHandle | shaderProgramImp | The shader to apply to mesh geometry subsequently passed to the RenderContext |
See Also
SetShaderParam(IUniformHandle, float2)
Sets the shader parameter to a float2 value.
Declaration
void SetShaderParam(IUniformHandle param, float2 val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
float2 | val | The float2 value that should be assigned to the shader parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, float2[])
Sets the shader parameter to a float2 array.
Declaration
void SetShaderParam(IUniformHandle param, float2[] val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The IUniformHandle identifier. |
float2[] | val | The float2 array that should be assigned to the shader array parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, float3)
Sets the shader parameter to a float3 value.
Declaration
void SetShaderParam(IUniformHandle param, float3 val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
float3 | val | The float3 value that should be assigned to the shader parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, float3[])
Sets the shader parameter to a float3 array.
Declaration
void SetShaderParam(IUniformHandle param, float3[] val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The IUniformHandle identifier. |
float3[] | val | The float3 array that should be assigned to the shader array parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, float4)
Sets the shader parameter to a float4 value.
Declaration
void SetShaderParam(IUniformHandle param, float4 val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
float4 | val | The float4 value that should be assigned to the shader parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, float4[])
Sets the shader parameter to a float4 array.
Declaration
void SetShaderParam(IUniformHandle param, float4[] val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The IUniformHandle identifier. |
float4[] | val | The float4 array that should be assigned to the shader array parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, float4x4)
Sets the shader parameter to a float4x4 matrix value.
Declaration
void SetShaderParam(IUniformHandle param, float4x4 val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
float4x4 | val | The float4x4 matrix that should be assigned to the shader parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, float4x4[])
Sets the shader parameter to a float4x4 matrix array.
Declaration
void SetShaderParam(IUniformHandle param, float4x4[] val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
float4x4[] | val | The float4x4 matrix array that should be assigned to the shader array parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, int2)
Sets a int2 shader parameter.
Declaration
void SetShaderParam(IUniformHandle param, int2 val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The parameter. |
int2 | val | The value. |
SetShaderParam(IUniformHandle, Double)
Sets the specified shader parameter to a double value.
Declaration
void SetShaderParam(IUniformHandle param, double val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
System.Double | val | The float value that should be assigned to the shader parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, Int32)
Sets the shader parameter to a integer value.
Declaration
void SetShaderParam(IUniformHandle param, int val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
System.Int32 | val | The integer value that should be assigned to the shader parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParam(IUniformHandle, Single)
Sets the specified shader parameter to a float value.
Declaration
void SetShaderParam(IUniformHandle param, float val)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | The shader parameter identifier. |
System.Single | val | The float value that should be assigned to the shader parameter. |
Remarks
GetShaderUniformParam(IShaderHandle, String) to see how to retrieve an identifier for a given uniform parameter name used in a shader program.
SetShaderParamImage(IUniformHandle, ITextureHandle, TextureType, ImagePixelFormat)
Sets a Shader Parameter to a created texture.
Declaration
void SetShaderParamImage(IUniformHandle param, ITextureHandle texId, TextureType texTarget, ImagePixelFormat format)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | Shader Parameter used for texture binding. |
ITextureHandle | texId | An ITexture probably returned from CreateTexture() method. |
TextureType | texTarget | The texture type, describing to which texture target the texture gets bound to. |
ImagePixelFormat | format | The internal sized format of the texture. |
SetShaderParamTexture(IUniformHandle, ITextureHandle, TextureType)
Sets a Shader Parameter to a created texture.
Declaration
void SetShaderParamTexture(IUniformHandle param, ITextureHandle texId, TextureType texTarget)
Parameters
Type | Name | Description |
---|---|---|
IUniformHandle | param | Shader Parameter used for texture binding. |
ITextureHandle | texId | An ITexture 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
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
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 textures filter mode (TextureFilterMode at runtime.
Declaration
void SetTextureFilterMode(ITextureHandle tex, TextureFilterMode filterMode)
Parameters
Type | Name | Description |
---|---|---|
ITextureHandle | tex | The handle of the texture. |
TextureFilterMode | filterMode | The new filter mode. |
SetTextureWrapMode(ITextureHandle, TextureWrapMode)
Sets the textures filter mode (TextureWrapMode at runtime.
Declaration
void SetTextureWrapMode(ITextureHandle tex, TextureWrapMode wrapMode)
Parameters
Type | Name | Description |
---|---|---|
ITextureHandle | tex | The handle of the texture. |
TextureWrapMode | wrapMode | The new wrap mode. |
SetTriangles(IMeshImp, ReadOnlySpan<UInt32>)
Binds the triangles onto the GL render context and assigns an ElementBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetUVs(IMeshImp, ReadOnlySpan<float2>)
Binds the UV coordinates onto the GL render context and assigns an UVBuffer index to the passed IMeshImp instance.
Declaration
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 |
SetVertexArrayObject(IMeshImp)
Binds the VertexArrayPbject onto the GL render context and assigns its index to the passed IMeshImp instance.
Declaration
void SetVertexArrayObject(IMeshImp mr)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mr | The IMeshImp instance. |
SetVertices(IMeshImp, ReadOnlySpan<float3>)
Binds the vertices onto the GL render context and assigns an VertexBuffer index to the passed IMeshImp instance.
Declaration
void SetVertices(IMeshImp mesh, ReadOnlySpan<float3> vertices)
Parameters
Type | Name | Description |
---|---|---|
IMeshImp | mesh | The IMeshImp instance. |
System.ReadOnlySpan<float3> | vertices | The vertices. |
Exceptions
Type | Condition |
---|---|
System.ArgumentException | Vertices must not be null or empty |
StorageBufferSetData<T>(IStorageBuffer, T[])
Uploads the given data to the SSBO. If the buffer is not created on the GPU by no it will be.
Declaration
void StorageBufferSetData<T>(IStorageBuffer storageBuffer, T[] data)
where T : struct
Parameters
Type | Name | Description |
---|---|---|
IStorageBuffer | storageBuffer | The Storage Buffer Object on the CPU. |
T[] | data | The data that will be uploaded. |
Type Parameters
Name | Description |
---|---|
T | The data type. |
UpdateTextureRegion(ITextureHandle, ITexture, Int32, Int32, Int32, Int32)
Updates the given region of a texture with the passed image data.
Declaration
void UpdateTextureRegion(ITextureHandle tex, ITexture img, int startX, int startY, int width, int height)
Parameters
Type | Name | Description |
---|---|---|
ITextureHandle | tex | The texture. |
ITexture | img | The image. |
System.Int32 | startX | The start x. |
System.Int32 | startY | The start y. |
System.Int32 | width | The width. |
System.Int32 | height | The height. |
Viewport(Int32, Int32, Int32, Int32)
Sets the rectangular output region within the output buffer(s).
Declaration
void Viewport(int x, int y, int width, int height)
Parameters
Type | Name | Description |
---|---|---|
System.Int32 | x | leftmost pixel of the rectangular output region within the output buffer. |
System.Int32 | y | topmost pixel of the rectangular output region within the output buffer. |
System.Int32 | width | horizontal size (in pixels) of the output region. |
System.Int32 | height | vertical size (in pixels) of the output region. |
Remarks
Setting the viewport limits the rendering output to the specified rectangular region.