Example #1
0
        void DoViewport(InterfaceModel mdl)
        {
            if (drawable == null)
            {
                return;
            }
            var szX = (int)ImGui.GetColumnWidth() - 5;
            var szY = (int)ImGui.GetWindowContentRegionMax().Y - (int)ImGui.GetCursorPosY() - 5;

            BindViewport(szX, szY);
            //Do drawing
            var rectangle = new Rectangle(5, 5, rtX - 10, rtY - 10);

            mainWindow.RenderContext.Renderer2D.FillRectangle(rectangle, Color4.CornflowerBlue);
            var transform = Matrix4x4.CreateScale(mdl.XScale, mdl.YScale, 1) *
                            Matrix4x4.CreateTranslation(mdl.X, mdl.Y, 0);

            transform *= DisplayModel.CreateTransform(rtX, rtY, rectangle);
            var mcam = new MatrixCamera(Matrix4x4.Identity);

            drawable.Update(mcam, mainWindow.TotalTime, context.ResourceManager);
            mainWindow.RenderContext.Cull             = false;
            mainWindow.RenderContext.ScissorEnabled   = true;
            mainWindow.RenderContext.ScissorRectangle = rectangle;
            drawable.DrawImmediate(mainWindow.RenderContext, context.ResourceManager, transform, ref Lighting.Empty);
            mainWindow.RenderContext.ScissorEnabled = false;
            mainWindow.RenderContext.Cull           = true;
            DrawViewport();
        }