public static bool PreviewShaderToggle_PEGI(this PlaytimePainter painter) { bool changed = false; if (painter.IsTerrainHeightTexture()) { Texture tht = painter.terrainHeightTexture; if (tht != null) { if ((!painter.IsOriginalShader) && (pegi.Click(icon.PreviewShader.getIcon(), "Applies changes made on Texture to Actual physical Unity Terrain.", 45))) { painter.Preview_To_UnityTerrain(); painter.Unity_To_Preview(); painter.MatDta.usePreviewShader = false; painter.SetOriginalShaderOnThis(); changed = true; } PainterCamera.Data.brushConfig.MaskSet(BrushMask.A, true); if (tht.GetImgData() != null) { if ((painter.IsOriginalShader) && (pegi.Click(icon.OriginalShader.getIcon(), "Applies changes made in Unity terrain Editor", 45))) { painter.Unity_To_Preview(); painter.SetPreviewShader(); changed = true; } } } } else { if ((painter.IsOriginalShader) && (pegi.Click(icon.OriginalShader.getIcon(), "Switch To Preview Shader", 45))) { painter.SetPreviewShader(); changed = true; } if ((!painter.IsOriginalShader) && (pegi.Click(icon.PreviewShader.getIcon(), "Return to Original Shader", 45))) { painter.MatDta.usePreviewShader = false; painter.SetOriginalShaderOnThis(); changed = true; } } return(changed); }
bool ColorSliders() { bool changed = false; PlaytimePainter painter = PlaytimePainter.inspectedPainter; bool slider = BlitMode.ShowColorSliders; if ((painter != null) && (painter.IsTerrainHeightTexture())) { changed |= ChannelSlider(BrushMask.A, ref colorLinear.a, null, true); } else if ((painter != null) && painter.IsTerrainControlTexture()) { // Debug.Log("Is control texture"); changed |= ChannelSlider(BrushMask.R, ref colorLinear.r, painter.terrain.GetSplashPrototypeTexture(0), slider); changed |= ChannelSlider(BrushMask.G, ref colorLinear.g, painter.terrain.GetSplashPrototypeTexture(1), slider); changed |= ChannelSlider(BrushMask.B, ref colorLinear.b, painter.terrain.GetSplashPrototypeTexture(2), slider); changed |= ChannelSlider(BrushMask.A, ref colorLinear.a, painter.terrain.GetSplashPrototypeTexture(3), slider); } else { var id = painter.ImgData; if ((id.TargetIsRenderTexture()) && (id.renderTexture != null)) { changed |= ChannelSlider(BrushMask.R, ref colorLinear.r); changed |= ChannelSlider(BrushMask.G, ref colorLinear.g); changed |= ChannelSlider(BrushMask.B, ref colorLinear.b); } else { changed |= ChannelSlider(BrushMask.R, ref colorLinear.r, null, slider); changed |= ChannelSlider(BrushMask.G, ref colorLinear.g, null, slider); changed |= ChannelSlider(BrushMask.B, ref colorLinear.b, null, slider); changed |= ChannelSlider(BrushMask.A, ref colorLinear.a, null, slider); } } return(changed); }
public virtual bool PEGI() { PlaytimePainter p = PlaytimePainter.inspectedPainter; if (p == null) { "No Painter Detected".nl(); return(false); } if ((p.skinnedMeshRendy != null) && (pegi.Click("Update Collider from Skinned Mesh"))) { p.UpdateColliderForSkinnedMesh(); } pegi.newLine(); ImageData id = p.ImgData; bool changed = false; bool cpuBlit = id.destination == TexTarget.Texture2D; pegi.newLine(); changed |= p.PreviewShaderToggle_PEGI(); if ((PainterCamera.GotBuffers() || (id.renderTexture != null)) && (id.texture2D != null)) { if ((cpuBlit ? icon.CPU : icon.GPU).Click( cpuBlit ? "Switch to Render Texture" : "Switch to Texture2D", 45)) { p.UpdateOrSetTexTarget(cpuBlit ? TexTarget.RenderTexture : TexTarget.Texture2D); SetSupportedFor(cpuBlit, id.renderTexture == null); changed = true; } } if (cpuBlit) { bool smooth = _type(cpuBlit) != BrushTypePixel.Inst.index; if (pegi.toggle(ref smooth, icon.Round, icon.Square, "Smooth/Pixels Brush", 45)) { changed = true; TypeSet(cpuBlit, smooth ? (BrushType)BrushTypeNormal.Inst : (BrushType)BrushTypePixel.Inst); } } pegi.newLine(); #if UNITY_EDITOR if (Tools.current != Tool.None) { Msg.LockToolToUseTransform.Get().writeWarning(); if (Msg.HideTransformTool.Get().Click().nl()) { PlaytimePainter.HideUnityTool(); } } #endif if //( (!p.IsOriginalShader) // && (cfg.moreOptions)) { changed |= pegi.toggle(ref Cfg.previewAlphaChanel, "Preview Enabled Chanels", 130); } if (Mode_Type_PEGI()) { if (Type(cpuBlit) == BrushTypeDecal.Inst) { MaskSet(BrushMask.A, true); } changed = true; } if (p.terrain != null) { if ((p.ImgData != null) && ((p.IsTerrainHeightTexture())) && (p.IsOriginalShader)) { pegi.writeWarning(" You need to use Preview Shader to see changes"); } pegi.newLine(); if ((p.terrain != null) && (pegi.Click("Update Terrain").nl())) { p.UpdateShaderGlobals(); } } return(changed); }