smrendererv3/SMCode/SM.Base/Window/Contexts/DrawContext.cs
Michel Fedde c6bf5c75bc 2021-04-03
+ Added Field to DrawingBasis to enfore PrimitiveTypes
+ LastObject to context for Debugging
+ AppendRenderbuffer to Framebuffer

~ Added a depthbuffer to RenderPipeline.CreateWindowFramebuffer
~ Proper ZIndices over Z-Translation and DepthBuffer
~ Made "ShaderArguments["LineWidth"]" set the LineWidth even if the object isn't maked as LineMesh
~ Made that the SM2D.PolygonVertex can translate OpenTK.Vector2 by itself.
~ Made the SM2D.Transformation.ZIndex a CVector1 instead a float
2021-03-04 22:17:03 +01:00

36 lines
No EOL
1.1 KiB
C#

using System.Collections.Generic;
using OpenTK;
using OpenTK.Graphics.OpenGL4;
using SM.Base.Drawing;
using SM.Base.Scene;
using SM.OGL.Mesh;
namespace SM.Base.Windows
{
public struct DrawContext
{
public IGenericWindow Window { get; internal set; }
public GenericScene Scene { get; internal set; }
public RenderPipeline RenderPipeline { get; internal set; }
public object LastObject { get; internal set; }
public GenericCamera UseCamera { get; internal set; }
public Matrix4 World => UseCamera.World;
public Matrix4 View => UseCamera.View;
public GenericMesh Mesh { get; set; }
public PrimitiveType? ForcedType { get; set; }
public Material Material { get; set; }
public MaterialShader Shader => Material.CustomShader ?? RenderPipeline.DefaultShader;
public Matrix4 ModelMatrix;
public Matrix3 TextureMatrix;
public IList<Instance> Instances;
public void SetCamera(GenericCamera camera)
{
UseCamera = camera;
camera.CalculateViewMatrix(Window);
}
}
}