Esempio n. 1
0
        private static void Do(Integrator integrator, SceneDescription sceneDesc)
        {
            Task.Factory.StartNew(() =>
            {
                var window = new Window(integrator, sceneDesc);

                if (Window == null)
                {
                    Window = window;
                }

                window.Run();
            });
        }
Esempio n. 2
0
        public Window(Integrator integrator, SceneDescription sceneDesc)
            : base(Program.Width, Program.Height, GraphicsMode.Default, $"PBRT - {integrator}",
                   GameWindowFlags.Default, DisplayDevice.Default,
                   3, 0, GraphicsContextFlags.ForwardCompatible)
        {
            this.integrator       = integrator;
            this.sceneDescription = sceneDesc;

            bitmap = new byte[Width * Height * 4];

            // Setup the output texture
            texture = GL.GenTexture();
            GL.BindTexture(TextureTarget.Texture2D, texture);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);

            id = WindowId++;

            var x = (Width * id) % DisplayDevice.Default.Width;
            var y = (Width * id) / DisplayDevice.Default.Height * 100;

            Location = new System.Drawing.Point(x, y);
        }