protected TrainManagerBase(HostInterface host, BaseRenderer renderer, BaseOptions Options, FileSystem fileSystem) { currentHost = host; Renderer = renderer; CurrentOptions = Options; FileSystem = fileSystem; }
protected FormWrapperBase(BaseRenderer renderer, string title, int width, int height) { if (StopCurrent()) { throw new Exception("Can’t have two renderers running at the same time"); } _current = this; _title = title; Form = new RenderForm(title) { ClientSize = new Size(width, height), StartPosition = FormStartPosition.CenterScreen }; Renderer = renderer; Renderer.Initialize(Form.Handle); Renderer.SetAssociatedWindow(Form); UpdateSize(); Form.UserResized += OnResize; Form.KeyDown += OnKeyDown; Form.KeyUp += OnKeyUp; Form.GotFocus += OnGotFocus; Form.LostFocus += OnLostFocus; renderer.Tick += OnTick; }
public override void Render(BaseRenderer renderer) { if (ParametrizationChanged) { RecalculateParametrizationPoints(); } if (Changed) { RecalculatePoints(); } base.Render(renderer); renderer.ModelMatrix = GetMatrix(false, new Vector3()); renderer.SelectedColor = IsSelected ? Colors.LimeGreen : Colors.White; renderer.UseIndices = true; if (ShowPolygon) { renderer.Indices = Indices; renderer.Points = EnumerateCatPoints().Select(x => x.Position).ToList(); renderer.Transform(); renderer.DrawLines(); } renderer.Indices = meshIndices; renderer.Points = mesh; renderer.Transform(); renderer.DrawLines(); }
public FormWrapperMouseBase(BaseRenderer renderer, string title, int width, int height) : base(renderer, title, width, height) { Form.MouseMove += OnMouseMove; Form.MouseDown += OnMouseDown; Form.MouseUp += OnMouseUp; Form.MouseWheel += OnMouseWheel; }
internal TextureManager(HostInterface CurrentHost, BaseRenderer Renderer) { currentHost = CurrentHost; RegisteredTextures = new Texture[16]; RegisteredTexturesCount = 0; renderer = Renderer; }
public BakedShadowsRendererViewModel([CanBeNull] BaseRenderer renderer, [NotNull] Kn5 kn5, [NotNull] string textureName, [CanBeNull] CarObject car) { _renderer = renderer; _kn5 = kn5; _textureName = textureName; _car = car; _saveable = new SaveHelper <SaveableData>("_carTextureDialog", () => new SaveableData { From = From, To = To, Brightness = Brightness, Gamma = Gamma, Ambient = Ambient, Iterations = Iterations, ShadowBias = ShadowBias, }, o => { From = o.From; To = o.To; Brightness = o.Brightness; Gamma = o.Gamma; Ambient = o.Ambient; Iterations = o.Iterations; ShadowBias = o.ShadowBias; }); _saveable.Initialize(); }
public CurrentRoute(HostInterface host, BaseRenderer renderer) { currentHost = host; this.renderer = renderer; Tracks = new Dictionary <int, Track>(); Track t = new Track() { Elements = new TrackElement[0] }; Tracks.Add(0, t); Sections = new Section[0]; Stations = new RouteStation[0]; BogusPreTrainInstructions = new BogusPreTrainInstruction[0]; PointsOfInterest = new PointOfInterest[0]; CurrentBackground = new StaticBackground(null, 6, false); TargetBackground = new StaticBackground(null, 6, false); NoFogStart = 800.0f; NoFogEnd = 1600.0f; PreviousFog = new Fog(NoFogStart, NoFogEnd, Color24.Grey, 0.0); CurrentFog = new Fog(NoFogStart, NoFogEnd, Color24.Grey, 0.5); NextFog = new Fog(NoFogStart, NoFogEnd, Color24.Grey, 1.0); Atmosphere = new Atmosphere(); SecondsSinceMidnight = 0.0; Information = new RouteInformation(); Illustrations.CurrentRoute = this; }
public BaseFormWrapper(BaseRenderer renderer, string title, int width, int height) { _title = title; Form = new RenderForm(title) { Width = width, Height = height, StartPosition = FormStartPosition.CenterScreen }; Renderer = renderer; Renderer.Initialize(Form.Handle); Renderer.SetAssociatedWindow(Form); Renderer.Width = Form.ClientSize.Width; Renderer.Height = Form.ClientSize.Height; Form.UserResized += OnResize; Form.KeyDown += OnKeyDown; Form.KeyUp += OnKeyUp; Form.GotFocus += OnGotFocus; Form.LostFocus += OnLostFocus; renderer.Tick += OnTick; }
public CarTextureDialog([CanBeNull] BaseRenderer renderer, [CanBeNull] CarSkinObject activeSkin, [NotNull] Kn5 kn5, [NotNull] string textureName) { DataContext = new CarTextureDialogViewModel(renderer, activeSkin, kn5, textureName); InitializeComponent(); Buttons = new[] { CloseButton }; }
private static LoadedImage LoadImageUsingDirectX(BaseRenderer renderer, byte[] imageData) { if (imageData == null || imageData.Length == 0) { return(null); } try { Format format; var pngData = TextureReader.ToPng(renderer.DeviceContextHolder, imageData, true, out format); var image = new BitmapImage(); using (var stream = new MemoryStream(pngData) { Position = 0 }) { image.BeginInit(); image.CreateOptions = BitmapCreateOptions.PreservePixelFormat; image.CacheOption = BitmapCacheOption.OnLoad; image.UriSource = null; image.StreamSource = stream; image.EndInit(); } image.Freeze(); return(new LoadedImage { Image = image, FormatDescription = format.ToString() }); } catch (Exception e) { Logging.Warning(e); return(null); } }
public override void Render(BaseRenderer g, float quality = 1, int start = 0, bool simple = false) { if (Points.Count < 0) { return; } float x = (Points[0].X - size.Width / 2); float y = (Points[0].Y - size.Height / 2); float w = (size.Width); float h = (size.Height); //g.DrawText(Text, Brush, // new System.Drawing.RectangleF(x, y, 1000, 1000), FontSize); g.DrawText(Text, Brush.GetColor(), x, y, FontFamily, FontSize, Align); if (Selected && g is GPURenderer) { var renderer = (GPURenderer)g; renderer.DrawDashPolygon(new PointF[] { new PointF(x, y), new PointF(x + w, y), new PointF(x + w, y + h), new PointF(x, y + h), new PointF(x, y) }); } }
public TextureMessage(BaseRenderer Renderer) { renderer = Renderer; Timeout = 10000; TriggerOnce = true; Direction = MessageDirection.Forwards; }
public override void Draw(BaseRenderer r, PageFormat format, float border, Color mainColor, Color secondaryColor) { float borderpx = Util.MmToPoint(border); SizeF bsize = format.GetPixelSize(); RectangleF bounds = new RectangleF(borderpx, borderpx, bsize.Width - 2 * borderpx, bsize.Height - 2 * borderpx); r.DrawRect(secondaryColor, 1, bounds); }
public BaseKn5FormWrapper(BaseRenderer renderer, string title, int width, int height) : base(renderer, title, width, height) { Kn5ObjectRenderer = (IKn5ObjectRenderer)renderer; Form.MouseMove += OnMouseMove; Form.MouseDown += OnMouseDown; Form.MouseUp += OnMouseUp; Form.MouseWheel += OnMouseWheel; }
internal TextureManager(HostInterface CurrentHost, BaseRenderer Renderer) { currentHost = CurrentHost; RegisteredTextures = new Texture[16]; RegisteredTexturesCount = 0; renderer = Renderer; animatedTextures = new Dictionary <TextureOrigin, Texture>(); }
public OperatorPartContext PrepareAndEvalOnChange(OperatorPartContext context, EvalFunctionOnChange functionOnChange) { //pirx: workaround to compile the shader for the first time. this should be done some where outside. if (_firstEval) { for (int i = 0; i < NumCodes(); ++i) { Compile(i); } _firstEval = false; Changed = true; } if (_effect == null) { return(context); } if (_renderer == null) { _renderer = new BaseRenderer(); } var viewport = GetViewport(context); if (_usedViewport.Width != viewport.Width || _usedViewport.Height != viewport.Height) { _usedViewport = viewport; Changed = true; } if (BuildRenderTarget(GetColorBufferFormat(context))) { Changed = true; } if (Changed) { try { functionOnChange(); } catch (Exception exception) { Logger.Error("Render error: {0}/{1}: {2}", OperatorPart.Parent.Parent, OperatorPart.Parent, exception.Message); } Changed = false; } context.Image = _renderTargetResource.Texture; if (_renderDepthResource != null) { context.DepthImage = _renderDepthResource.Texture; } return(context); }
/// <summary> /// Constructor /// </summary> /// <param name="Renderer">A reference to the base renderer</param> /// <param name="VertexShaderName">file path and name to vertex shader source</param> /// <param name="FragmentShaderName">file path and name to fragment shader source</param> /// <param name="IsFromStream"></param> public Shader(BaseRenderer Renderer, string VertexShaderName, string FragmentShaderName, bool IsFromStream = false) { renderer = Renderer; int status; handle = GL.CreateProgram(); if (IsFromStream) { Assembly thisAssembly = Assembly.GetExecutingAssembly(); using (Stream stream = thisAssembly.GetManifestResourceStream($"LibRender2.{VertexShaderName}.vert")) { if (stream != null) { using (StreamReader reader = new StreamReader(stream)) { LoadShader(reader.ReadToEnd(), ShaderType.VertexShader); } } } using (Stream stream = thisAssembly.GetManifestResourceStream($"LibRender2.{FragmentShaderName}.frag")) { if (stream != null) { using (StreamReader reader = new StreamReader(stream)) { LoadShader(reader.ReadToEnd(), ShaderType.FragmentShader); } } } } else { LoadShader(File.ReadAllText(VertexShaderName, Encoding.UTF8), ShaderType.VertexShader); LoadShader(File.ReadAllText(FragmentShaderName, Encoding.UTF8), ShaderType.FragmentShader); } GL.AttachShader(handle, vertexShader); GL.AttachShader(handle, fragmentShader); GL.DeleteShader(vertexShader); GL.DeleteShader(fragmentShader); GL.LinkProgram(handle); GL.GetProgram(handle, GetProgramParameterName.LinkStatus, out status); if (status == 0) { throw new ApplicationException(GL.GetProgramInfoLog(handle)); } VertexLayout = GetVertexLayout(); UniformLayout = GetUniformLayout(); Disposable.Add(this); }
public override void Load(HostInterface host, FileSystem fileSystem, BaseOptions Options, object rendererReference) { currentHost = host; FileSystem = fileSystem; CurrentOptions = Options; if (rendererReference is BaseRenderer) { Renderer = rendererReference as BaseRenderer; } }
public override void Render(BaseRenderer renderer) { base.Render(renderer); renderer.UseIndices = true; renderer.Points = points; renderer.Indices = indices; renderer.ModelMatrix = Transform.CreateTransformMatrix(); renderer.Transform(); renderer.DrawLines(); }
public BaseCommon() { UpdateManager.BeginInvoke(() => { if (Renderer == null) { Renderer = new BaseRenderer(this); } }); }
public OperatorPartContext PrepareAndEvalOnChange(OperatorPartContext context) { if (_effect == null) { for (int i = 0; i < NumCodes(); ++i) { Compile(i); } if (_effect == null) { return(context); } Changed = true; } if (_renderer == null) { _renderer = new BaseRenderer(); } if (_usedViewport.Width != context.Viewport.Width || _usedViewport.Height != context.Viewport.Height) { _usedViewport = context.Viewport; Changed = true; } if (BuildRenderTarget()) { Changed = true; } if (Changed) { try { SetupEffectParams(); UpdateOnChange(context); } catch (Exception exception) { Logger.Error("Render error: {0}/{1}: {2}", OperatorPart.Parent.Parent, OperatorPart.Parent, exception.Message); } Changed = false; } context.Image = _renderTargetResource.Texture; if (_renderDepthResource != null) { context.DepthImage = _renderDepthResource.Texture; } return(context); }
public void Draw(BaseRenderer renderer) { if (numJoints == -1) { numJoints = _skeleton.Count; } if (Input.GetKeyDown(Keys.O)) { numJoints--; Console.WriteLine("numJoins: " + numJoints); } if (Input.GetKeyDown(Keys.P)) { numJoints++; Console.WriteLine("numJoins: " + numJoints); } _skeleCopy = new SkeletonJoint[_skeleton.Count]; _skeleton.CopyTo(_skeleCopy); for (int i = 0; i < Math.Min(Math.Max(0, numJoints), _skeleton.Count); i++) { SkeletonJoint joint = _skeleCopy[i]; if (joint.ParentId >= 0) { SkeletonJoint parentJoint = _skeleCopy[joint.ParentId]; Vector3 rotPos = Vector3.Transform(joint.Position, parentJoint.Rotation); joint.Position = parentJoint.Position + rotPos; joint.Rotation = joint.Rotation * parentJoint.Rotation; joint.Rotation.Normalize(); _skeleCopy[i] = joint; DebugRenderer.DrawLine(parentJoint.Position, joint.Position, Color.YellowGreen); } } /* Recursively iterate through the J3D scene graph to bind and draw all * of the batches within the J3D model. */ Matrix4[] root = new Matrix4[_file.Joints.GetJointCount()]; for (int i = 0; i < root.Length; i++) { root[i] = Matrix4.Identity; } Matrix4 ident = Matrix4.Identity; //WalkModelJointRecursive(ref root, ref ident, _root, 0); DrawModelRecursive(ref root, _root, renderer, false); if (Selected) { Matrix4 root2 = Matrix4.Identity; //DrawModelRecursive(ref root2, _root, renderer, true); } }
public override void Render(BaseRenderer g, float quality = 1, int start = 0, bool simple = false) { if (Points.Count >= 4 && image != null) { float x = Points[0].X; float y = Points[0].Y; float w = Points[2].X - x; float h = Points[2].Y - y; g.DrawImage(image, new RectangleF(x, y, w, h)); } }
public override void Draw(BaseRenderer r, PageFormat format, float border, Color mainColor, Color secondaryColor) { float borderpx = Util.MmToPoint(border); float x2 = format.GetPixelSize().Width - borderpx; for (float y = border; y < format.Height - border; y += 15) { float pt = Util.MmToPoint(y); r.DrawLine(mainColor, 1, new PointF(borderpx, pt), new PointF(x2, pt)); } }
public Textbox(BaseRenderer Renderer, OpenGlFont Font, Color128 FontColor, Color128 backgroundColor) { renderer = Renderer; myFont = Font; myFontColor = FontColor; Border = 5; topLine = 0; BackgroundTexture = null; BackgroundColor = backgroundColor; myScrollbarColor = new Color128(1.0f, 0.69f, 0.0f, 1.0f); }
public Kn5ObjectDialog([CanBeNull] BaseRenderer renderer, [CanBeNull] CarObject car, [CanBeNull] CarSkinObject activeSkin, [NotNull] IKn5 kn5, [NotNull] IKn5RenderableObject renderableObject) { DataContext = new ViewModel(renderer, car, activeSkin, kn5, renderableObject) { Close = () => Close() }; InitializeComponent(); Buttons = new[] { CloseButton }; }
protected override void Dispose(bool disposing) { if (disposing) { var renderContext = StageRenderer.RenderContext; (Stage as IDrawable)?.OnLostContext(renderContext); BaseRenderer.Dispose(); } base.Dispose(disposing); }
public override void Load(HostInterface host, FileSystem fileSystem, BaseOptions Options, object rendererReference) { currentHost = host; FileSystem = fileSystem; CurrentOptions = Options; // ReSharper disable once MergeCastWithTypeCheck if (rendererReference is BaseRenderer) { Renderer = (BaseRenderer)rendererReference; } }
public Kn5TextureDialog([CanBeNull] BaseRenderer renderer, [CanBeNull] CarObject car, [CanBeNull] CarSkinObject activeSkin, [NotNull] Kn5 kn5, [NotNull] string textureName, uint materialId, string slotName) { DataContext = new ViewModel(renderer, car, activeSkin, kn5, textureName, materialId, slotName) { Close = () => Close() }; InitializeComponent(); Buttons = new[] { CloseButton }; }
internal Rectangle(BaseRenderer renderer) { this.renderer = renderer; try { Shader = new Shader(renderer, "rectangle", "rectangle", true); } catch { renderer.ForceLegacyOpenGL = true; } }