Exemplo n.º 1
0
        public void Initialize()
        {
            loaded = true;
            glControl.CreateControl();
            HeadPoints.Initialize(HeadPointsCount);
            HeadPoints.RenderCamera = camera;
            HeadPoints.GenerateSphere(0.3f, 5, 5);

            idleShader = new ShaderController("idle.vs", "idle.fs");
            idleShader.SetUniformLocation("u_UseTexture");
            idleShader.SetUniformLocation("u_Color");
            idleShader.SetUniformLocation("u_Texture");
            idleShader.SetUniformLocation("u_BrushMap");
            idleShader.SetUniformLocation("u_TransparentMap");
            idleShader.SetUniformLocation("u_World");
            idleShader.SetUniformLocation("u_WorldView");
            idleShader.SetUniformLocation("u_ViewProjection");
            idleShader.SetUniformLocation("u_LightDirection");

            blendShader = new ShaderController("blending.vs", "blending.fs");
            blendShader.SetUniformLocation("u_Texture");
            blendShader.SetUniformLocation("u_BaseTexture");
            blendShader.SetUniformLocation("u_BlendDirectionX");

            LoadModel(ProgramCore.DefaultIsSmile);

            SetupViewport(glControl);

            windowInfo          = Utilities.CreateWindowsWindowInfo(renderPanel.Handle);
            graphicsContext     = new GraphicsContext(GraphicsMode.Default, windowInfo);
            renderPanel.Resize += (sender, args) => graphicsContext.Update(windowInfo);
            glControl.Context.MakeCurrent(glControl.WindowInfo);

            RenderTimer.Start();
        }
Exemplo n.º 2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация библиотеки GLUT
            Glut.glutInit();
            // инициализация режима окна
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
            // устанавливаем цвет очистки окна
            Gl.glClearColor(255, 255, 255, 1);
            // устанавливаем порт вывода, основываясь на размерах элемента управления AnT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);
            // устанавливаем проекционную матрицу
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очищаем ее
            Gl.glLoadIdentity();

            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

            // переходим к объектно-видовой матрице
            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            // добавлние элемента, отвечающего за управления главным слоем в объект LayersControl
            LayersControl.Items.Add("Главный слой", true);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);

            RenderTimer.Start();
        }
Exemplo n.º 3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Glut.glutInit();
            // Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_SINGLE); не забыть


            Gl.glClearColor(255, 255, 255, 1);

            //порт вывода, размеры AnT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            //матрицааааа
            Gl.glMatrixMode(Gl.GL_PROJECTION);

            Gl.glLoadIdentity();


            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

            //объектно-видовая матрица
            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();



            Слои.Items.Add("Главный слой", true);
        }
Exemplo n.º 4
0
        private void btnOpenFileDlg_Click(object sender, EventArgs e)
        {
            using (var ofd = new OpenFileDialogEx("Select template file", "Image Files|*.jpg;*.png;*.jpeg;*.bmp"))
            {
                ofd.Multiselect = false;
                if (ofd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                textTemplateImage.Text = ofd.FileName;
                using (var bmp = new Bitmap(ofd.FileName))
                    pictureTemplate.Image = (Bitmap)bmp.Clone();

                MouthRelative = new Vector2(pictureTemplate.Image.Width * 0.5f, pictureTemplate.Image.Height / 1.5f);       // примерно расставляем глаз и рот
                EyeRelative   = new Vector2(pictureTemplate.Image.Width * 0.5f, pictureTemplate.Image.Height * 0.2f);
                MouthRelative = new Vector2(MouthRelative.X / (pictureTemplate.Image.Width * 1f), MouthRelative.Y / (pictureTemplate.Image.Height * 1f));
                EyeRelative   = new Vector2(EyeRelative.X / (pictureTemplate.Image.Width * 1f), EyeRelative.Y / (pictureTemplate.Image.Height * 1f));

                btnApply.Enabled = true;

                RecalcRealTemplateImagePosition();
                RenderTimer.Start();
            }
        }
        private void OverlayWindow_Paint(object sender, PaintEventArgs e)
        {
            if (currTask != null)
            {
                float percent = 100 - ((currSec + (currMin * 60)) / (timerSeconds + (timerMinutes * 60))) * 100;

                TimeSpan timeLeft = new TimeSpan(0, (int)currMin, (int)currSec);

                string timerMainText = currTask.timerMainText;

                if (timerMainText == null)
                {
                    timerMainText = timeLeft.ToString(@"mm\:ss");
                }

                RenderTimer.DrawCircularTimer(e,
                                              new Vector2(Screen.GetWorkingArea(Point.Empty).Width - m_timerPadding, Screen.GetWorkingArea(Point.Empty).Height - m_timerPadding),
                                              timerSize,
                                              timerMainText,
                                              currTask.timerColor,
                                              Program.tasktraySettingsInstance.darkMode ? Color.White : Color.Black,
                                              percent,
                                              currTask.timerSubText,
                                              m_arcWidth,
                                              currTask.textFontSize,
                                              currTask.subTextFontSize
                                              );
            }
        }
Exemplo n.º 6
0
        private void Game_Load(object sender, EventArgs e)
        {
            //----------------------------------------------------------------------------
            GL.ClearColor(Color.Black);
            SetupViewport();
            //GL.Enable(EnableCap.Texture2D);
            GL.Enable(EnableCap.Blend);
            GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);

            Map.texture[0] = Game.LoadTexture(Properties.Resources.grass_tile_64x64); //tile of grass
            Map.texture[1] = Game.LoadTexture(Properties.Resources.Crystal);
            Map.texture[2] = Game.LoadTexture(Properties.Resources.tree_tex);
            Map.texture[3] = Game.LoadTexture(Properties.Resources.Pavement);
            Map.texture[4] = Game.LoadTexture(Properties.Resources.Hatchery);

            Tower.texture[0] = Game.LoadTexture(Properties.Resources.ArrowTower);
            Tower.texture[1] = Game.LoadTexture(Properties.Resources.SplashTower);
            Tower.texture[2] = Game.LoadTexture(Properties.Resources.PoisonTower);
            Tower.texture[3] = Game.LoadTexture(Properties.Resources.IceTower);

            Mob.texture[0] = Game.LoadTexture(Properties.Resources.Roach);
            Mob.texture[1] = Game.LoadTexture(Properties.Resources.Zerg);
            Mob.texture[2] = Game.LoadTexture(Properties.Resources.Ghost);
            GL.Disable(EnableCap.Texture2D);
            lvl1 = new Map();    //выделяется память для крты уровня
            //loaded = true;
            RenderTimer.Start(); //запуск таймера отрисовки сцены
        }
Exemplo n.º 7
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Gl.glClearColor(255, 255, 255, 1);

            Gl.glViewport(0, 0, AnT.Width, AnT.Height);


            Gl.glMatrixMode(Gl.GL_PROJECTION);

            Gl.glLoadIdentity();


            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);


            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();



            Слои.Items.Add("Главный слой", true);
        }
Exemplo n.º 8
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            Glut.glutInit();
            // инициализация режима экрана 
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE);

            // установка цвета очистки экрана (RGBA) 
            Gl.glClearColor(0, 0, 0, 1);
            // установка порта вывода 
            Gl.glViewport(0, 0, simpleOpenGlControl.Width, simpleOpenGlControl.Height);
            // активация проекционной матрицы 
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очистка матрицы 
            Gl.glLoadIdentity();
            Glu.gluPerspective(45, simpleOpenGlControl.Width / simpleOpenGlControl.Height, 0.1, 200);

            InitScene();
            comboBoxFigure1.SelectedIndex = 0;
            comboBoxFigure2.SelectedIndex = 1;

            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();
            // активация таймера, вызывающего функцию для визуализации 
            RenderTimer.Start();
        }
Exemplo n.º 9
0
        public frmNewProject2(string projectPath, string templateImagePath, FaceRecognition fcr)
        {
            InitializeComponent();
            this.fcr = fcr;

            textName.Text = projectPath;

            if (!string.IsNullOrEmpty(templateImagePath))
            {
                using (var bmp = new Bitmap(templateImagePath))
                    pictureTemplate.Image = (Bitmap)bmp.Clone();
            }
            RecalcRealTemplateImagePosition();
            RenderTimer.Start();

            if (ProgramCore.PluginMode)
            {
                var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
                var dazPath     = Path.Combine(appDataPath, @"DAZ 3D\Studio4\temp\FaceShop\", "fs3d.obj");
                if (File.Exists(dazPath))
                {
                    rbImportObj.Checked = true;
                    CustomModelPath     = dazPath;
                }
                else
                {
                    MessageBox.Show("Daz model not found.", "HeadShop", MessageBoxButtons.OK);
                }
            }
        }
Exemplo n.º 10
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            // инициализация библиотеки glut
            Glut.glutInit();
            // инициализация режима экрана
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE);

            // установка цвета очистки экрана (RGBA)
            Gl.glClearColor(255, 255, 255, 1);

            // установка порта вывода
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            // активация проекционной матрицы
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очистка матрицы
            Gl.glLoadIdentity();

            // установка перспективы
            Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);

            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();

            // начальная настройка параметров openGL (тест глубины, освещение и первый источник света)
            Gl.glEnable(Gl.GL_DEPTH_TEST);
            Gl.glEnable(Gl.GL_LIGHTING);
            Gl.glEnable(Gl.GL_LIGHT0);

            // установка первых элементов в списках combobox
            ObjectComboBox.SelectedIndex = 0;

            // активация таймера, вызывающего функцию для визуализации
            RenderTimer.Start();
        }
Exemplo n.º 11
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE);
            Gl.glClearColor(255, 255, 255, 1);
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glLoadIdentity();
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();

            Gl.glEnable(Gl.GL_DEPTH_TEST);
            Gl.glEnable(Gl.GL_LIGHTING);
            Gl.glEnable(Gl.GL_LIGHT0);

            cam.PositionCamera(0, -15, 5, 0, 90, 0, 0, 1, 0);
            //cam.PositionCamera(0, 6, -15, 0, 3, 0, 0, 1, 0);

            // активация таймера, вызывающего функцию для визуализации
            RenderTimer.Start();
            // опции для загрузки файла
            openFileDialog1.Filter = "ase files (*.ase)|*.ase|All files (*.*)|*.*";
            //Thread thread = new Thread(new ThreadStart(Help));
            //thread.Start(); // запускаем поток
        }
Exemplo n.º 12
0
                public void Update(RenderTimer timer)
                {
                    var dt = (float)timer.DurationSinceLastFrame.TotalSeconds;

                    X             += (float)(Speed * Math.Sin(Direction) * dt);
                    Y             += (float)(Speed * Math.Cos(Direction) * dt);
                    RotationAngle += AngularSpeed * dt;
                }
Exemplo n.º 13
0
 private void выбратьМодельДляЗагрузкиToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (openFileDialog1.ShowDialog() == Forms.DialogResult.OK)
     {
         Model = new anModelLoader();
         Model.LoadModel(openFileDialog1.FileName);
         RenderTimer.Start();
     }
 }
Exemplo n.º 14
0
        private void AnT_Load(object sender, EventArgs e)
        {
            GL.Enable(EnableCap.CullFace);
            GL.CullFace(CullFaceMode.Back);
            GL.FrontFace(FrontFaceDirection.Ccw);


            RenderTimer.Start();
        }
Exemplo n.º 15
0
 private void lever_Click(object sender, EventArgs e)
 {
     RenderTimer.Tick += LeverHandler;
     RenderTimer.Start();
     if (leverRotation == 30)
     {
         RenderTimer.Stop();
     }
 }
Exemplo n.º 16
0
 private void Form1_Load(object sender, EventArgs e)
 {
     Glut.glutInit();
     Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE);
     Gl.glClearColor(255, 255, 255, 1);
     Gl.glViewport(0, 0, AnT.Width, AnT.Height);
     FigureChanger.SelectedIndex = 0;
     RenderTimer.Start();
 }
Exemplo n.º 17
0
 public void win()
 {
     if (Game.WaveNum >= winwave)
     {
         RenderTimer.Stop();
         Unit.towers.Clear();
         Unit.mobs.Clear();
         new Finish(1).Show();
     }
 }
Exemplo n.º 18
0
 public void over()
 {
     if (Game.Lives <= 0)
     {
         RenderTimer.Stop();
         Unit.towers.Clear();
         Unit.mobs.Clear();
         new Finish(2).Show();
     }
 }
Exemplo n.º 19
0
 private void timer1_Tick(object sender, EventArgs e)
 {
     timer1.Stop();
     if (!navbrowser.IsBrowserInitialized || !browser.IsBrowserInitialized || !navbrowser.GetBrowser().HasDocument)
     {
         Application.DoEvents();
     }
     RenderTimer.Start();;
     SlowRenderTimer.Start();
     SuperSlowRenderTimer.Start();
 }
        // событие загрузки формы окна
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация OpenGL, много раз комментированная ранее
            // инициализация библиотеки glut
            Glut.glutInit();
            // инициализация режима экрана
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE);

            // установка цвета очистки экрана (RGBA)
            Gl.glClearColor(255, 255, 255, 1);

            // установка порта вывода
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            // активация проекционной матрицы
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очистка матрицы
            Gl.glLoadIdentity();

            Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);

            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();

            Gl.glEnable(Gl.GL_DEPTH_TEST);

            // пирамида для визуализации (4 точки)

            GeomObject[0, 0] = -0.7f;
            GeomObject[0, 1] = 0;
            GeomObject[0, 2] = 0;

            GeomObject[1, 0] = 0.7f;
            GeomObject[1, 1] = 0;
            GeomObject[1, 2] = 0;

            GeomObject[2, 0] = 0.0f;
            GeomObject[2, 1] = 0;
            GeomObject[2, 2] = 1.0f;

            GeomObject[3, 0] = 0;
            GeomObject[3, 1] = 0.7f;
            GeomObject[3, 2] = 0.3f;

            // количество вершин рассматриваемого геометрического объекта
            count_elements = 4;
            // устанавливаем ось X по умолчанию
            comboBox1.SelectedIndex = 0;

            // начало визуализации (активируем таймер)
            RenderTimer.Start();
        }
Exemplo n.º 21
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация Glut
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);

            // очитка окна
            Gl.glClearColor(0, 0, 0, 1);

            LightManager.Instance.Initialization();

            // установка порта вывода в соотвествии с размерами элемента anT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            // активация проекционной матрицы
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очистка матрицы
            Gl.glLoadIdentity();

            // установка перспективы
            Glu.gluPerspective(45f, AnT.Width / AnT.Height, 1, 500);

            // установка объектно-видовой матрицы
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();


            Gl.glEnable(Gl.GL_DEPTH_TEST);

            var path = AppDomain.CurrentDomain.BaseDirectory + @"..\..\";

            TextureManager.Instance.LoadTexture(path + @"\Texture\ground.jpg", TextureName.Ground);
            TextureManager.Instance.LoadTexture(path + @"\Texture\Back.bmp", TextureName.Back);
            TextureManager.Instance.LoadTexture(path + @"\Texture\Front.bmp", TextureName.Front);
            TextureManager.Instance.LoadTexture(path + @"\Texture\Bottom.bmp", TextureName.Bottom);
            TextureManager.Instance.LoadTexture(path + @"\Texture\Left.bmp", TextureName.Left);
            TextureManager.Instance.LoadTexture(path + @"\Texture\Right.bmp", TextureName.Rigth);
            TextureManager.Instance.LoadTexture(path + @"\Texture\Top.bmp", TextureName.Top);

            modelManager = new ModelManager();
            modelManager.LoadModel();
            ParticleManager.Instance.Initialization();

            cameraManager = new CameraManager(this, 0, 1.5f, 6, 0, 1.5f, 5, 0, 1, 0);



            // активация таймера
            RenderTimer.Start();
        }
Exemplo n.º 22
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Glut.glutInit();
            // Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_SINGLE); не забыть

            // устанавливаем цвет очистки окна
            Gl.glClearColor(255, 255, 255, 1);

            // устанавливаем порт вывода, основываясь на размерах элемента управления AnT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);

            // устанавливаем проекционную матрицу
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очищаем ее
            Gl.glLoadIdentity();


            if ((float)AnT.Width <= (float)AnT.Height)
            {
                ScreenW = 500.0;
                ScreenH = 500.0 * (float)AnT.Height / (float)AnT.Width;

                Glu.gluOrtho2D(0.0, ScreenW, 0.0, ScreenH);
            }
            else
            {
                ScreenW = 500.0 * (float)AnT.Width / (float)AnT.Height;
                ScreenH = 500.0;

                Glu.gluOrtho2D(0.0, 500.0 * (float)AnT.Width / (float)AnT.Height, 0.0, 500.0);
            }

            devX = (float)ScreenW / (float)AnT.Width;
            devY = (float)ScreenH / (float)AnT.Height;

            Glu.gluOrtho2D(0.0, AnT.Width, 0.0, AnT.Height);

            // переходим к объектно-видовой матрице
            Gl.glMatrixMode(Gl.GL_MODELVIEW);

            ProgrammDrawingEngine = new anEngine(AnT.Width, AnT.Height, AnT.Width, AnT.Height);


            RenderTimer.Start();
            comboBox1.SelectedIndex = 0;

            // добавление элемента, отвечающего за управления главным слоем в объект LayersControl
            Слои.Items.Add("Главный слой", true);
        }
Exemplo n.º 23
0
        public void LoadPhoto()
        {
            using (var ofd = new OpenFileDialogEx("Select template file", "Image Files|*.jpg;*.png;*.jpeg;*.bmp"))
            {
                ofd.Multiselect = false;
                if (ofd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                templateImage = ofd.FileName;
                Recognizer    = new LuxandFaceRecognition();
                if (!Recognizer.Recognize(ref templateImage, true))
                {
                    templateImage         = string.Empty;
                    pictureTemplate.Image = null;

                    return;                     // это ОЧЕНЬ! важно. потому что мы во время распознавания можем создать обрезанную фотку и использовать ее как основную в проекте.
                }

                using (var ms = new MemoryStream(File.ReadAllBytes(templateImage))) // Don't use using!!
                {
                    var img = (Bitmap)Image.FromStream(ms);
                    pictureTemplate.Image = (Bitmap)img.Clone();
                    img.Dispose();
                }

                RecalcRealTemplateImagePosition();

                var eWidth             = pictureTemplate.Width - 100;
                var TopEdgeTransformed = new RectangleF(pictureTemplate.Width / 2f - eWidth / 2f, 30, eWidth, eWidth);          // затычка. нужен будет подгон верхней части бошки - сделаю
                var minX     = Recognizer.GetMinX();
                var topPoint = (TopEdgeTransformed.Y - ImageTemplateOffsetY) / ImageTemplateHeight;
                Recognizer.FaceRectRelative = new RectangleF(minX, topPoint, Recognizer.GetMaxX() - minX, Recognizer.BottomFace.Y - topPoint);

                var noseTip    = Recognizer.FacialFeatures[2].Xy;
                var noseTop    = Recognizer.FacialFeatures[22].Xy;
                var noseBottom = Recognizer.FacialFeatures[49].Xy;

                ProgramCore.MainForm.RenderControl.PhotoLoaded(Recognizer, TemplateImage);

                RenderTimer.Start();

                if (Math.Abs(Recognizer.RotatedAngle) > 20)
                {
                    MessageBox.Show("The head rotated more than 20 degrees. Please select an other photo...");
                }
            }
        }
Exemplo n.º 24
0
 private void button2_Click(object sender, EventArgs e)
 {
     accessRotate = !accessRotate;
     if (!accessRotate)
     {
         button2.Text = "назад";
         Model        = new anModelLoader();
         Model.LoadModel("C:\\Roman\\study\\4K8S\\PKG\\lab14\\Kuppe_Roman_PRI-117_lab_14\\Kuppe_Roman_PRI-117_KP\\bin\\Debug\\model\\KP2.ASE");
         RenderTimer.Start();
     }
     else
     {
         button2.Text = "в тир";
         Model        = null;
     }
 }
Exemplo n.º 25
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация Glut
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);

            // настройка параметров OpenGL для визуализации
            // Gl.glEnable(Gl.GL_CULL_FACE);
            Gl.glCullFace(Gl.GL_BACK);
            Gl.glFrontFace(Gl.GL_CCW);
            comboBox1.SelectedIndex   = 0;
            ViewMode.SelectedIndex    = 0;
            SurfacePick.SelectedIndex = 0;
            label1.Text = ("Rotation speed: ") + rotationSpeed;
            // Запуск таймера
            RenderTimer.Start();
        }
Exemplo n.º 26
0
        public static void Main(string[] args)
        {
            Version = ReleaseInformations.GetVersion();

            if (OperatingSystem.IsWindows() && !OperatingSystem.IsWindowsVersionAtLeast(10, 0, 17134))
            {
                MessageBoxA(IntPtr.Zero, "You are running an outdated version of Windows.\n\nStarting on June 1st 2022, Ryujinx will only support Windows 10 1803 and newer.\n", $"Ryujinx {Version}", MB_ICONWARNING);
            }

            PreviewerDetached = true;

            Initialize(args);

            RenderTimer = new RenderTimer();

            BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);

            RenderTimer.Dispose();
        }
Exemplo n.º 27
0
        public frmNewProfilePict2(string originalImagePath, Bitmap rotatedImage, Vector2 mouthRelative, Vector2 eyeRelative, Vector2 originalMouthRelative, Vector2 originalEyeRelative, float angle, Rectangle faceRectangle)
        {
            InitializeComponent();

            textName.Text = originalImagePath;
            originalPath  = originalImagePath;

            Angle         = angle;
            FaceRectangle = faceRectangle;

            MouthRelative = mouthRelative;
            EyeRelative   = eyeRelative;

            using (var bmp = new Bitmap(rotatedImage))
                pictureTemplate.Image = (Bitmap)bmp.Clone();

            RecalcRealTemplateImagePosition();
            RenderTimer.Start();
        }
Exemplo n.º 28
0
        public Form1()
        {
            RC      = new RenderControl();
            RC.Dock = DockStyle.Fill;

            Label L = new Label();

            L.Location  = new Point(20, 700 - L.Height * 5);
            L.AutoSize  = true;
            L.Text      = "Управление: W, S - вверх/вниз\nA, D - управление незакрепленным рычагом\nQ, E - поворот установки вокруг oY\nNum8, Num2 - поворот установки вокруг oX\n+, - для изменения масштаба";
            L.BackColor = RC.BackColor;
            this.Controls.Add(L);

            this.Controls.Add(RC);

            KeyPreview = true;

            InitializeComponent();

            RenderTimer.Start();
        }
Exemplo n.º 29
0
        // событие загрузки формы
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация бибилиотеки glut
            Glut.glutInit();
            // инициализация режима экрана
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE);

            // инициализация библиотеки openIL
            Il.ilInit();
            Il.ilEnable(Il.IL_ORIGIN_SET);

            // установка цвета очистки экрана (RGBA)
            Gl.glClearColor(255, 255, 255, 1);

            // установка порта вывода
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);


            // активация проекционной матрицы
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            // очистка матрицы
            Gl.glLoadIdentity();

            // установка перспективы
            Glu.gluPerspective(30, AnT.Width / AnT.Height, 1, 100);

            // установка объектно-видовой матрицы
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();

            // начальные настройки OpenGL
            Gl.glEnable(Gl.GL_DEPTH_TEST);
            Gl.glEnable(Gl.GL_LIGHTING);
            Gl.glEnable(Gl.GL_LIGHT0);

            // активация таймера
            RenderTimer.Start();
        }
Exemplo n.º 30
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация Glut
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);

            // очитка окна
            Gl.glClearColor(255, 255, 255, 1);

            // установка порта вывода в соотвествии с размерами элемента anT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);


            // настройка проекции
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glLoadIdentity();
            Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();

            // настройка параметров OpenGL для визуализации
            Gl.glEnable(Gl.GL_DEPTH_TEST);
            Gl.glEnable(Gl.GL_LIGHTING);
            Gl.glEnable(Gl.GL_LIGHT0);


            // количество элементов последовательности геометрии, на основе которых будет строится тело вращения
            count_elements = 8;

            // непосредственное заполнение точек.
            // после изменения данной геометрии мы сразу получим новое тело вращения.
            GeometricArray[0, 0] = 0;
            GeometricArray[0, 1] = 0;
            GeometricArray[0, 2] = 0;

            GeometricArray[1, 0] = 0.7;
            GeometricArray[1, 1] = 0;
            GeometricArray[1, 2] = 1;

            GeometricArray[2, 0] = 1.3;
            GeometricArray[2, 1] = 0;
            GeometricArray[2, 2] = 2;

            GeometricArray[3, 0] = 1.0;
            GeometricArray[3, 1] = 0;
            GeometricArray[3, 2] = 3;

            GeometricArray[4, 0] = 0.5;
            GeometricArray[4, 1] = 0;
            GeometricArray[4, 2] = 4;

            GeometricArray[5, 0] = 3;
            GeometricArray[5, 1] = 0;
            GeometricArray[5, 2] = 6;

            GeometricArray[6, 0] = 1;
            GeometricArray[6, 1] = 0;
            GeometricArray[6, 2] = 7;

            GeometricArray[7, 0] = 0;
            GeometricArray[7, 1] = 0;
            GeometricArray[7, 2] = 7.2f;

            // по умолчанию мы будем  отрисовывать фигуру в режиме GL_POINTS
            comboBox1.SelectedIndex = 0;

            // построение геометрии тела вращения
            // принцип сводится к 2м цилкам - на основе первого перебираются
            // вершины в геометрической последовательности
            // второй использую параметр Iter производит поворот последней линии геометрии вокруг центра тела вращения
            // при этом используется заранее определенный угол angle который определяется как 2*Pi / количество медиан объекта
            // за счет выполнения этого алгоритма получается набор вершин описывающих оболочку тела врещения.
            // остается только соединить эти точки в режиме рисования примитивов для получения
            // визуализированного объекта

            // цикл по последовательности точек кривой, на основе которой будет построено тело вращения
            for (int ax = 0; ax < count_elements; ax++)
            {
                // цикла по медианам объекта, заранее определенным в программе
                for (int bx = 0; bx < Iter; bx++)
                {
                    // для всех (bx > 0) элементов алгоритма используются предыдушая построенная последовательность
                    // для ее поворота на установленный угол
                    if (bx > 0)
                    {
                        double new_x = ResaultGeometric[ax, bx - 1, 0] * Math.Cos(Angle) - ResaultGeometric[ax, bx - 1, 1] * Math.Sin(Angle);
                        double new_y = ResaultGeometric[ax, bx - 1, 0] * Math.Sin(Angle) + ResaultGeometric[ax, bx - 1, 1] * Math.Cos(Angle);
                        ResaultGeometric[ax, bx, 0] = new_x;
                        ResaultGeometric[ax, bx, 1] = new_y;
                        ResaultGeometric[ax, bx, 2] = GeometricArray[ax, 2];
                    }
                    else // для построения первой мидианы мы используем начальную кривую, описывая ее нулевым значением угла поворота
                    {
                        double new_x = GeometricArray[ax, 0] * Math.Cos(0) - GeometricArray[ax, 1] * Math.Sin(0);
                        double new_y = GeometricArray[ax, 1] * Math.Sin(0) + GeometricArray[ax, 1] * Math.Cos(0);
                        ResaultGeometric[ax, bx, 0] = new_x;
                        ResaultGeometric[ax, bx, 1] = new_y;
                        ResaultGeometric[ax, bx, 2] = GeometricArray[ax, 2];
                    }
                }
            }


            // активация таймера
            RenderTimer.Start();
        }