Rectangle GetPreviewWindowRect() { var parentWindow = VisualTreeHelperEx.FindAncestorByType <Window>(this); var relativePt = PreviewTarget.TranslatePoint(new System.Windows.Point(0, 0), parentWindow); var rect = new RectangleF((float)relativePt.X, (float)relativePt.Y, (float)PreviewTarget.ActualWidth, (float)PreviewTarget.ActualHeight); // Maintain Aspect Ratio if (_webcamModel.WebcamCapture != null) { float w = _webcamModel.WebcamCapture.Width; float h = _webcamModel.WebcamCapture.Height; var imgWbyH = w / h; var frameWbyH = rect.Width / rect.Height; if (imgWbyH > frameWbyH) { var newH = rect.Width / imgWbyH; rect.Y += (rect.Height - newH) / 2; rect.Height = newH; } else { var newW = rect.Height * imgWbyH; rect.X += (rect.Width - newW) / 2; rect.Width = newW; } } return(rect.ApplyDpi()); }
void UpdatePreviewWarningLabel() { m_PreviewWarning.style.display = DisplayStyle.None; // Delay checking if we are now in play mode to show warning about preview target EditorApplication.delayCall += () => { if (EditorApplication.isPlaying) { IMotionSynthesizerProvider synthesizerProvider = null; if (PreviewTarget != null) { synthesizerProvider = PreviewTarget.GetComponent <IMotionSynthesizerProvider>(); if (synthesizerProvider == null) { synthesizerProvider = PreviewTarget.GetComponentInChildren <IMotionSynthesizerProvider>(); } } if (synthesizerProvider == null) { m_PreviewWarning.style.display = DisplayStyle.Flex; } } }; }
Rectangle GetPreviewWindowRect() { var parentWindow = VisualTreeHelperEx.FindAncestorByType <Window>(this); var relativePt = PreviewTarget.TranslatePoint(new System.Windows.Point(0, 0), parentWindow); var rect = new RectangleF((float)relativePt.X, (float)relativePt.Y, (float)PreviewTarget.ActualWidth, (float)PreviewTarget.ActualHeight); return(rect.ApplyDpi()); }
static BuildTarget GetBuildTarget(PreviewTarget target) { switch (target) { case PreviewTarget.Android: return(BuildTarget.Android); case PreviewTarget.iOS: return(BuildTarget.iOS); } throw new ArgumentException(); }
/// <exception cref="Exception"></exception> /// <exception cref="FailedToCreateOutputDir"></exception> public SimulatorUnoProject CreateSimulatorProject(BuildProject args, PreviewTarget target, bool directToDevice, bool quitAfterApkLaunch) { var project = AbsoluteFilePath.Parse(args.ProjectPath); var buildProject = Project.Load(project.NativePath); var projectDir = project.ContainingDirectory; var basePath = AbsoluteDirectoryPath.Parse(buildProject.BuildDirectory) / target.ToString(); var outputDir = FindOutputDir(args, basePath); var preambleDir = outputDir / "preamble"; var cacheDir = outputDir / "cache"; _cacheCleaner.CleanIfNecessary(cacheDir); SetCacheDir(buildProject, projectDir, cacheDir); var applicationClassName = TypeName.Parse("Outracks.Simulator.GeneratedApplication"); var applicationClass = ApplicationClassGenerator.CreateApplicationClass(args, buildProject.Name, applicationClassName); var dependencies = ApplicationClassGenerator.Dependencies; AddPreamble(buildProject, preambleDir, projectDir, applicationClass, dependencies); AddIcons(buildProject, preambleDir, projectDir); ChangePackageName(buildProject); ChangeTitle(buildProject, oldTitle => oldTitle + " (preview)"); var buildOptions = new BuildOptions { OutputDirectory = outputDir.NativePath, Configuration = BuildConfiguration.Preview, MainClass = applicationClassName.FullName, Strip = target != PreviewTarget.Local, }; foreach (var define in args.Defines.UnionOne("Designer")) { buildOptions.Defines.Add(define); } if (target == PreviewTarget.iOS && !directToDevice) { // 17.12.15 - Prevent double building when exporting to iOS. (Uno bug) buildOptions.RunArguments = "debug"; buildOptions.Native = false; } if (quitAfterApkLaunch) { buildOptions.RunArguments += " -L"; } return(new SimulatorUnoProject(buildProject, buildOptions, "", args.Verbose, args.BuildLibraries)); }
private void ColorPreviewTarget() { if (BoolValue) { Renderer renderer = PreviewTarget.GetComponent <Renderer>(); if (renderer && renderer.sharedMaterial) { Material material = Main.Clone(renderer.sharedMaterial); material.hideFlags = HideFlags.HideAndDontSave; material.color = ColorValue; renderer.sharedMaterial = material; } } if (BoolValue2) { Graphic graphic = PreviewTarget.GetComponent <Graphic>(); if (graphic) { graphic.color = ColorValue; } } }
public PreviewArguments(AbsoluteFilePath project, Optional <PreviewTarget> target = default(Optional <PreviewTarget>), IImmutableSet <IPEndPoint> endpoints = null, Optional <string> buildTag = default(Optional <string>), bool compileOnly = false, bool directToDevice = false, IImmutableList <string> defines = null, bool isVerboseBuild = false, bool buildLibraries = false, bool quitAfterApkLaunch = false, bool printUnoConfig = false) { Project = project; Target = target.Or(PreviewTarget.Local); BuildTag = buildTag; CompileOnly = compileOnly; DirectToDevice = directToDevice; Endpoints = endpoints ?? ImmutableHashSet <IPEndPoint> .Empty; Defines = defines ?? System.Collections.Immutable.ImmutableList <string> .Empty; IsVerboseBuild = isVerboseBuild; BuildLibraries = buildLibraries; QuitAfterApkLaunch = quitAfterApkLaunch; PrintUnoConfig = printUnoConfig; }
/// <exception cref="BuildFailed"></exception> /// <exception cref="FailedToCreateOutputDir"></exception> public System.Threading.Tasks.Task <BuildResult> BuildUno(Guid id, BuildProject args, PreviewTarget previewTarget, bool driectToDevice, CancellationToken cancellationToken, bool quitAfterApkLaunch) { args.Id = id; var loggedEvents = new AccumulatingProgress <IBinaryMessage>(_buildEvents); var errorList = new ErrorListAdapter(id, loggedEvents); var textWriter = new TextWriterAdapter(id, loggedEvents); var tcs = new TaskCompletionSource <BuildResult>(); var project = _simulatorBuilder.CreateSimulatorProject(args, previewTarget, driectToDevice, quitAfterApkLaunch); var thread = new Thread( () => { var logger = new Log(errorList, textWriter); if (project.IsVerboseBuild) { logger.Level = Uno.Logging.LogLevel.Verbose; } if (project.BuildLibraries) { new LibraryBuilder(new Disk(logger), BuildTargets.Package) { Express = true } } .Build(); var buildTarget = GetBuildTarget(previewTarget); //BuildTarget target; //Enum.TryParse(buildTarget.Identifier, true, out target); _buildEvents.Report( new Started { Command = args }); var faulty = false; try { var buildResult = new ProjectBuilder( logger, buildTarget, project.Options) .Build(project.Project); if (buildResult.ErrorCount != 0) { _errorHelpers.OnBuildFailed(buildResult); tcs.SetException(new UserCodeContainsErrors()); } else { tcs.SetResult(buildResult); } } catch (Exception e) { if (e is ThreadAbortException) { return; } tcs.TrySetException(new InternalBuildError(e)); faulty = true; } finally { _buildEvents.Report( new Ended { Command = args, Success = !faulty, BuildDirectory = AbsoluteDirectoryPath.Parse(project.Project.OutputDirectory) }); } })
private void ColorGUI() { GUILayout.BeginHorizontal(); GUILayout.Label("Color to:", GUILayout.Width(60)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (PreviewTarget) { if (BoolValue) { Renderer renderer = PreviewTarget.GetComponent <Renderer>(); if (renderer) { ColorValue = renderer.sharedMaterial.color; } } if (BoolValue2) { Graphic graphic = PreviewTarget.GetComponent <Graphic>(); if (graphic) { ColorValue = graphic.color; } } } ColorValue = EditorGUILayout.ColorField(ColorValue, GUILayout.Width(180)); if (PreviewTarget) { if (BoolValue) { Renderer renderer = PreviewTarget.GetComponent <Renderer>(); if (renderer) { renderer.sharedMaterial.color = ColorValue; } } if (BoolValue2) { Graphic graphic = PreviewTarget.GetComponent <Graphic>(); if (graphic) { graphic.color = ColorValue; } } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Ease:", GUILayout.Width(60)); AnimationEase = (Ease)EditorGUILayout.EnumPopup("", AnimationEase, GUILayout.Width(120)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoolValue = GUILayout.Toggle(BoolValue, "Act Renderer"); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoolValue2 = GUILayout.Toggle(BoolValue2, "Act Graphic"); GUILayout.EndHorizontal(); }