Class GLRenderer
Implements
Inherited Members
Namespace: Genesis.Graphics.RenderDevice
Assembly: Genesis.dll
Syntax
public class GLRenderer : IRenderDevice
Constructors
GLRenderer(IntPtr, RenderSettings)
Declaration
public GLRenderer(IntPtr hwnd, RenderSettings settings)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | hwnd | |
RenderSettings | settings |
Fields
sceneBuffer
Declaration
public Framebuffer sceneBuffer
Field Value
Type | Description |
---|---|
Framebuffer |
Methods
Begin()
Beginn to draw
Declaration
public void Begin()
BuildFramebuffer(int, int)
Creates a new framebuffer
Declaration
public Framebuffer BuildFramebuffer(int width, int height)
Parameters
Type | Name | Description |
---|---|---|
int | width | |
int | height |
Returns
Type | Description |
---|---|
Framebuffer |
BuildFramebuffer(int, int, Texture)
Creates a new framebuffer
Declaration
public Framebuffer BuildFramebuffer(int width, int height, Texture texture)
Parameters
Type | Name | Description |
---|---|---|
int | width | |
int | height | |
Texture | texture |
Returns
Type | Description |
---|---|
Framebuffer |
BuildFramebuffer(int, int, int)
Creates a new framebuffer
Declaration
public Framebuffer BuildFramebuffer(int width, int height, int texture)
Parameters
Type | Name | Description |
---|---|---|
int | width | |
int | height | |
int | texture |
Returns
Type | Description |
---|---|
Framebuffer |
BuildShadowMap(int, int)
Builds a framebuffer for rendering shadow maps.
Declaration
public Framebuffer BuildShadowMap(int width, int height)
Parameters
Type | Name | Description |
---|---|---|
int | width | The width of the framebuffer. |
int | height | The height of the framebuffer. |
Returns
Type | Description |
---|---|
Framebuffer | A framebuffer object configured for shadow mapping. |
CreateDynamicVertexBuffer(float[])
Creates a dynamic vertex buffer in OpenGL and initializes it with the specified vertices. Dynamic buffers are suitable for frequently changing data, like dynamic vertex updates.
Declaration
public int CreateDynamicVertexBuffer(float[] verticies)
Parameters
Type | Name | Description |
---|---|---|
float[] | verticies | The array of vertices to be stored in the buffer. |
Returns
Type | Description |
---|---|
int | The OpenGL handle (ID) of the created dynamic vertex buffer. |
CreateShader(string, ShaderProgram)
Loads a shader program
Declaration
public void CreateShader(string name, ShaderProgram program)
Parameters
Type | Name | Description |
---|---|---|
string | name | |
ShaderProgram | program |
CreateStaticVertexBuffer(float[])
Creates a static vertex buffer in OpenGL and initializes it with the specified vertices. Static buffers are suitable for infrequently changing data, like static geometry.
Declaration
public int CreateStaticVertexBuffer(float[] verticies)
Parameters
Type | Name | Description |
---|---|---|
float[] | verticies | The array of vertices to be stored in the buffer. |
Returns
Type | Description |
---|---|
int | The OpenGL handle (ID) of the created static vertex buffer. |
Dispose()
Disposes the render device
Declaration
public void Dispose()
DisposeElement(GameElement)
Disposes the element data from the gpu
Declaration
public void DisposeElement(GameElement element)
Parameters
Type | Name | Description |
---|---|---|
GameElement | element | The element to dispose |
DisposeElement3D(Element3D)
Dispose the 3D element
Declaration
public void DisposeElement3D(Element3D element)
Parameters
Type | Name | Description |
---|---|---|
Element3D | element |
DisposeFont(Font)
Disposes the font
Declaration
public void DisposeFont(Font font)
Parameters
Type | Name | Description |
---|---|---|
Font | font |
DisposeInstance(RenderInstanceContainer)
Declaration
public void DisposeInstance(RenderInstanceContainer element)
Parameters
Type | Name | Description |
---|---|---|
RenderInstanceContainer | element |
DisposeShader(ShaderProgram)
Deletes the shader program
Declaration
public void DisposeShader(ShaderProgram program)
Parameters
Type | Name | Description |
---|---|---|
ShaderProgram | program |
DisposeTexture(Texture)
Disposes the texture
Declaration
public void DisposeTexture(Texture texture)
Parameters
Type | Name | Description |
---|---|---|
Texture | texture |
DrawBufferedSprite(BufferedSprite)
Draws a buffered sprite in the current rendering context.
Declaration
public void DrawBufferedSprite(BufferedSprite bufferedSprite)
Parameters
Type | Name | Description |
---|---|---|
BufferedSprite | bufferedSprite | The buffered sprite to draw. |
DrawCircle(Vec3, float, Color, float)
Draws an circle
Declaration
public void DrawCircle(Vec3 center, float radius, Color color, float borderWidth)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | center | Location for the circle |
float | radius | Radius for the circle |
Color | color | Color for the circle |
float | borderWidth | Border width for the circle |
DrawElement3D(Element3D)
Draws an 3D element within the scene
Declaration
public void DrawElement3D(Element3D element)
Parameters
Type | Name | Description |
---|---|---|
Element3D | element |
DrawGameElement(GameElement)
Renders the GameElement
Declaration
public void DrawGameElement(GameElement element)
Parameters
Type | Name | Description |
---|---|---|
GameElement | element |
DrawInstance(RenderInstanceContainer)
Declaration
public void DrawInstance(RenderInstanceContainer element)
Parameters
Type | Name | Description |
---|---|---|
RenderInstanceContainer | element |
DrawLine(Vec3, Vec3, Color)
Draws a line
Declaration
public void DrawLine(Vec3 from, Vec3 to, Color color)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | from | |
Vec3 | to | |
Color | color |
DrawMesh(Mesh, Color)
Draws a mesh
Declaration
public void DrawMesh(Mesh mesh, Color color)
Parameters
Type | Name | Description |
---|---|---|
Mesh | mesh | |
Color | color |
DrawParticleEmitter(ParticleEmitter)
Draws the particle emitter
Declaration
public void DrawParticleEmitter(ParticleEmitter emitter)
Parameters
Type | Name | Description |
---|---|---|
ParticleEmitter | emitter |
DrawRect(Rect, Color)
Draws a rect with no fill
Declaration
public void DrawRect(Rect rect, Color color)
Parameters
Type | Name | Description |
---|---|---|
Rect | rect | |
Color | color |
DrawRect(Rect, Color, float)
Draws a rect with no fill
Declaration
public void DrawRect(Rect rect, Color color, float borderWidth)
Parameters
Type | Name | Description |
---|---|---|
Rect | rect | |
Color | color | |
float | borderWidth |
DrawSkyBox(Skybox)
Draws an skybox
Declaration
public void DrawSkyBox(Skybox skybox)
Parameters
Type | Name | Description |
---|---|---|
Skybox | skybox |
DrawSprite(Sprite)
Renders a sprite with modern gl
Declaration
public void DrawSprite(Sprite sprite)
Parameters
Type | Name | Description |
---|---|---|
Sprite | sprite |
DrawSprite(Vec3, Vec3, Texture)
Draws a sprite
Declaration
public void DrawSprite(Vec3 location, Vec3 size, Texture texture)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | location | |
Vec3 | size | |
Texture | texture |
DrawSprite(Vec3, Vec3, Texture, TexCoords)
Draws a sprite
Declaration
public void DrawSprite(Vec3 location, Vec3 size, Texture texture, TexCoords texCoords)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | location | |
Vec3 | size | |
Texture | texture | |
TexCoords | texCoords |
DrawSprite(Vec3, Vec3, Color, Texture)
Renders a sprite
Declaration
public void DrawSprite(Vec3 location, Vec3 size, Color color, Texture texture)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | location | |
Vec3 | size | |
Color | color | |
Texture | texture |
DrawSprite(Vec3, Vec3, Color, Texture, TexCoords)
Draws a Sprite
Declaration
public void DrawSprite(Vec3 location, Vec3 size, Color color, Texture texture, TexCoords texCoords)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | location | |
Vec3 | size | |
Color | color | |
Texture | texture | |
TexCoords | texCoords |
DrawString(string, Vec3, float, Font, Color)
Renders a String
Declaration
public void DrawString(string text, Vec3 location, float fontSize, Font font, Color color)
Parameters
Type | Name | Description |
---|---|---|
string | text | |
Vec3 | location | |
float | fontSize | |
Font | font | |
Color | color |
DrawString(string, Vec3, float, float, Font, Color)
Renders a string
Declaration
public void DrawString(string text, Vec3 location, float fontSize, float spacing, Font font, Color color)
Parameters
Type | Name | Description |
---|---|---|
string | text | |
Vec3 | location | |
float | fontSize | |
float | spacing | |
Font | font | |
Color | color |
DrawTexture(Vec3, Vec3, float, float, Texture)
Draws a texture
Declaration
public void DrawTexture(Vec3 location, Vec3 size, float repeateX, float repeatY, Texture texture)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | location | |
Vec3 | size | |
float | repeateX | |
float | repeatY | |
Texture | texture |
DrawVectors(Vec3[], Color)
Draws the vector array
Declaration
public void DrawVectors(Vec3[] vecs, Color color)
Parameters
Type | Name | Description |
---|---|---|
Vec3[] | vecs | |
Color | color |
EditBufferSubData(int, int, float[])
Declaration
public void EditBufferSubData(int bufferId, int offset, float[] data)
Parameters
Type | Name | Description |
---|---|---|
int | bufferId | |
int | offset | |
float[] | data |
End()
Ends the rendering
Declaration
public void End()
FillCircle(Vec3, float, Color)
Renders an filled circle
Declaration
public void FillCircle(Vec3 center, float radius, Color color)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | center | Center of the circle |
float | radius | Radius of the circle |
Color | color | Color of the circle |
FillRect(Rect, Color)
Fills a rectangle with the given color. LegacyGL
Declaration
public void FillRect(Rect rect, Color color)
Parameters
Type | Name | Description |
---|---|---|
Rect | rect | |
Color | color |
FinishCanvasRendering(Scene, Canvas)
Finish the canvas rendering
Declaration
public void FinishCanvasRendering(Scene scene, Canvas canvas)
Parameters
Type | Name | Description |
---|---|---|
Scene | scene | The scene from the canvas |
Canvas | canvas | The canvas to render |
FinishLightmap2D(Scene, Framebuffer)
Finish the lightmap 2D rendering
Declaration
public void FinishLightmap2D(Scene scene, Framebuffer framebuffer)
Parameters
Type | Name | Description |
---|---|---|
Scene | scene | |
Framebuffer | framebuffer |
FinishSceneRendering(Scene)
Finish the scene rendering
Declaration
public void FinishSceneRendering(Scene scene)
Parameters
Type | Name | Description |
---|---|---|
Scene | scene | The scene which getted rendered |
FinishShadowPass(Viewport)
Completes the shadow pass by finalizing any state changes or cleanup required after rendering the shadow map. This may involve restoring viewport settings or other post-processing tasks.
Declaration
public void FinishShadowPass(Viewport viewport)
Parameters
Type | Name | Description |
---|---|---|
Viewport | viewport | The viewport object representing the final render area on the screen or in the context. |
GenerateLightspaceMatrix(Camera, Viewport, Light)
Generates a matrix that transforms coordinates from world space to light space. This matrix is used to project the scene from the perspective of the light source.
Declaration
public mat4 GenerateLightspaceMatrix(Camera camera, Viewport viewport, Light lightSource)
Parameters
Type | Name | Description |
---|---|---|
Camera | camera | The camera object used to generate the view matrix. This is typically a camera with a perspective or orthographic projection. |
Viewport | viewport | The viewport from the current render target |
Light | lightSource | The light source used to compute the light space matrix. This includes information like position and direction of the light. |
Returns
Type | Description |
---|---|
mat4 | A 4x4 matrix representing the light space transformation. |
GenerateTexture(OpenGL, Texture)
Generates a texture
Declaration
public int GenerateTexture(OpenGL gl, Texture texture)
Parameters
Type | Name | Description |
---|---|---|
OpenGL | gl | |
Texture | texture |
Returns
Type | Description |
---|---|
int |
GenerateTexture(OpenGL, Bitmap)
Generates a texture
Declaration
public int GenerateTexture(OpenGL gl, Bitmap texture)
Parameters
Type | Name | Description |
---|---|---|
OpenGL | gl | |
Bitmap | texture |
Returns
Type | Description |
---|---|
int |
GetError()
Returns an error code from the render device
Declaration
public int GetError()
Returns
Type | Description |
---|---|
int |
GetHandle()
Returns the handle of the render target
Declaration
public IntPtr GetHandle()
Returns
Type | Description |
---|---|
IntPtr |
GetRenderer()
Returns the native renderer
Declaration
public OpenGL GetRenderer()
Returns
Type | Description |
---|---|
OpenGL |
GetShaderProgram(ShaderProgram)
Returns the shader programm with the typeof the refProgram. Returns null is no program found
Declaration
public ShaderProgram GetShaderProgram(ShaderProgram refProgram)
Parameters
Type | Name | Description |
---|---|---|
ShaderProgram | refProgram |
Returns
Type | Description |
---|---|
ShaderProgram |
Init()
Initial the moderngl render device
Declaration
public void Init()
InitElement3D(Element3D)
Inital an 3D element
Declaration
public void InitElement3D(Element3D element)
Parameters
Type | Name | Description |
---|---|---|
Element3D | element |
InitGameElement(GameElement)
Inits the game element
Declaration
public void InitGameElement(GameElement element)
Parameters
Type | Name | Description |
---|---|---|
GameElement | element |
InitInstance(RenderInstanceContainer)
Declaration
public void InitInstance(RenderInstanceContainer element)
Parameters
Type | Name | Description |
---|---|---|
RenderInstanceContainer | element |
InitMaterial(Material)
Initialize a material for rendering
Declaration
public void InitMaterial(Material material)
Parameters
Type | Name | Description |
---|---|---|
Material | material |
InitNormalMap(string)
Inital the normal map for an 3D element if the normal map file isnt existing an empty 1x1 normal map get created
Declaration
public int InitNormalMap(string path)
Parameters
Type | Name | Description |
---|---|---|
string | path |
Returns
Type | Description |
---|---|
int |
InitSprite(Sprite)
Initial the sprite
Declaration
public void InitSprite(Sprite sprite)
Parameters
Type | Name | Description |
---|---|---|
Sprite | sprite |
InitTexture(string)
Initial the diffuse texture for the 3D model If the texture file isnt existing an empty 1x1 texture get created
Declaration
public int InitTexture(string path)
Parameters
Type | Name | Description |
---|---|---|
string | path |
Returns
Type | Description |
---|---|
int |
IsMaterialLoaded(Material)
Declaration
public bool IsMaterialLoaded(Material material)
Parameters
Type | Name | Description |
---|---|---|
Material | material |
Returns
Type | Description |
---|---|
bool |
LoadFont(Font)
Loads the the font
Declaration
public void LoadFont(Font font)
Parameters
Type | Name | Description |
---|---|---|
Font | font |
LoadTexture(Texture)
Loads a texture into the vram
Declaration
public void LoadTexture(Texture texture)
Parameters
Type | Name | Description |
---|---|---|
Texture | texture |
ModelViewMatrix()
This function will not be used within this render device
Declaration
public void ModelViewMatrix()
PopMatrix()
This function will not be used within this render device
Declaration
public void PopMatrix()
PrepareCanvasRendering(Scene, Canvas)
Prepares the renderer for the canvas rendering
Declaration
public void PrepareCanvasRendering(Scene scene, Canvas canvas)
Parameters
Type | Name | Description |
---|---|---|
Scene | scene | The scene from the canvas |
Canvas | canvas | The canvas to render |
PrepareLightmap2D(Scene, Framebuffer)
Prepares the render for the 2D lightmap
Declaration
public void PrepareLightmap2D(Scene scene, Framebuffer framebuffer)
Parameters
Type | Name | Description |
---|---|---|
Scene | scene | |
Framebuffer | framebuffer |
PrepareSceneRendering(Scene)
Prepares the renderer for scene rendering
Declaration
public void PrepareSceneRendering(Scene scene)
Parameters
Type | Name | Description |
---|---|---|
Scene | scene | The scene to render |
PrepareShadowPass(Framebuffer, mat4)
Prepares the framebuffer and matrix for rendering shadows. This setup is necessary before rendering the scene to the shadow map.
Declaration
public void PrepareShadowPass(Framebuffer shadowmap, mat4 lightspaceMatrix)
Parameters
Type | Name | Description |
---|---|---|
Framebuffer | shadowmap | The framebuffer that will be used to render the shadow map. |
mat4 | lightspaceMatrix | The matrix used to transform scene coordinates into light space for shadow mapping. |
ProjectionMatrix()
This function will not be used within this render device
Declaration
public void ProjectionMatrix()
PushMatrix()
This function will not be used within this render device
Declaration
public void PushMatrix()
RenderShadowmap(Framebuffer, mat4, Scene3D)
Renders the scene from the perspective of the light source into the shadow map framebuffer. This creates the shadow map texture used for shadow testing.
Declaration
public void RenderShadowmap(Framebuffer shadowmap, mat4 lightspaceMatrix, Scene3D scene)
Parameters
Type | Name | Description |
---|---|---|
Framebuffer | shadowmap | The framebuffer where the shadow map will be rendered. |
mat4 | lightspaceMatrix | The matrix that transforms scene coordinates into light space. |
Scene3D | scene | The 3D scene to be rendered into the shadow map. |
Rotate(float, Vec3)
This function will not be used within this render device
Declaration
public void Rotate(float angle, Vec3 vector)
Parameters
Type | Name | Description |
---|---|---|
float | angle | |
Vec3 | vector |
SetCamera(Viewport, Camera)
Set the Projection and view matrices
Declaration
public void SetCamera(Viewport viewport, Camera camera)
Parameters
Type | Name | Description |
---|---|---|
Viewport | viewport | |
Camera | camera |
SetFramebuffer(Framebuffer)
Sets an framebuffer as active render target
Declaration
public void SetFramebuffer(Framebuffer framebuffer)
Parameters
Type | Name | Description |
---|---|---|
Framebuffer | framebuffer | The framebuffer for the rendering |
SetFramebuffer(int)
Sets an framebuffer as active render target
Declaration
public void SetFramebuffer(int framebuffer)
Parameters
Type | Name | Description |
---|---|---|
int | framebuffer | The framebuffer id for the rendering |
SetLightSource(Light)
Sets an Lightsource
Declaration
public void SetLightSource(Light light)
Parameters
Type | Name | Description |
---|---|---|
Light | light |
SetProjectionMatrix(mat4)
Declaration
public void SetProjectionMatrix(mat4 projectionMatrix)
Parameters
Type | Name | Description |
---|---|---|
mat4 | projectionMatrix |
SetViewMatrix(mat4)
Declaration
public void SetViewMatrix(mat4 viewMatrix)
Parameters
Type | Name | Description |
---|---|---|
mat4 | viewMatrix |
SetViewport(Viewport)
Sets the viewport for the rendering
Declaration
public void SetViewport(Viewport viewport)
Parameters
Type | Name | Description |
---|---|---|
Viewport | viewport |
TextureClampS()
Sets the texture clampS
Declaration
public void TextureClampS()
TextureClampT()
Sets the texture clampT
Declaration
public void TextureClampT()
TextureRepeatS()
Sets the texture repeatS
Declaration
public void TextureRepeatS()
TextureRepeatT()
Sets the texture repeatT
Declaration
public void TextureRepeatT()
Translate(Vec3)
This function will not be used within this render device
Declaration
public void Translate(Vec3 vector)
Parameters
Type | Name | Description |
---|---|---|
Vec3 | vector |
Translate(float, float, float)
This function will not be used within this render device
Declaration
public void Translate(float x, float y, float z)
Parameters
Type | Name | Description |
---|---|---|
float | x | |
float | y | |
float | z |
UpdateFramebufferSize(Framebuffer, int, int)
Update the framebuffer size
Declaration
public void UpdateFramebufferSize(Framebuffer framebuffer, int width, int height)
Parameters
Type | Name | Description |
---|---|---|
Framebuffer | framebuffer | |
int | width | |
int | height |