// Use this for initialization void Start() { mItemQuarterlySummaryRenderGroup = new RenderableGroup <BusinessState.PerItemReport>( SummaryView.transform.Find("ItemSummaries"), RenderFunctions.RenderItemQuarterlySummary); mInventoryResourceRenderGroup = new RenderableGroup <FeatherAndCount>( InventoryView.transform.Find("InvGroups/InventoryFeathers"), RenderFunctions.RenderFeatherAndCount); mInventoryProductRenderGroup = new RenderableGroup <PotionAndCount>( InventoryView.transform.Find("InvGroups/InventoryPotions"), RenderFunctions.RenderPotionAndCount); mPeacockFeatherRenderGroup = new RenderableGroup <FeatherAndCount>( PeacockView.transform.Find("InventoryFeathers"), RenderFunctions.RenderFeatherAndCount); // Overlays mOverlayFeatherCollectionFeatherRenderGroup = new RenderableGroup <FeatherAndCount>( OverlayViewFeathers.transform.Find("Content/InventoryFeathers"), RenderFunctions.RenderFeatherAndCount); mOverlayPotionSalesRenderGroup = new RenderableGroup <BusinessState.PerItemReport>( OverlayViewPotions.transform.Find("PotionSaleRows"), RenderFunctions.RenderPotionSale); mOverlayFinancialRenderGroup = new RenderableGroup <string[]>( OverlayViewFinancial.transform.Find("Content"), RenderFunctions.RenderStringArrayToTextChildren); SetupButtonCallbacks(); // don't start with all customers visible RandomizeInitialCustomers(); }
public void Start() { mSaleRowGroup = new RenderableGroup <InventoryEntry>(gemSaleRowContainer, InventoryEntry.RenderToGemSaleList); }
// Start is called before the first frame update void Start() { mEmailGroup = new RenderableGroup <Email>(emailContainer, Email.RenderToListOfEmails); RefreshEmails(); }
public void Start() { mShopItemsGroup = new RenderableGroup <ShopItem>(shopItemsContainer, ShopItem.RenderToListOfShopItems); InitializeShopItems(); }
/// <summary> /// Отрисовка всех объектов для каждой камеры /// </summary> public void Render() { // Очистка сцены GL.ClearColor(BackColor); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); // Параметры GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); GL.Enable(EnableCap.Texture2D); GL.Enable(EnableCap.CullFace); GL.CullFace(CullFaceMode.Back); // Отрисовка камеры if (Camera != null) { Camera.Setup(); if (Sky != null) { Camera.LoadSkyMatrix(); Sky.Render(); } Camera.LoadMatrix(); GL.Enable(EnableCap.DepthTest); GL.DepthFunc(DepthFunction.Lequal); } // Расположение камеры Vec3 cameraPos = Camera.Position; // Сборка объектов bool needAlphaPass = false, needBlendPass = false; List <RenderableGroup> opaqueGroups = new List <RenderableGroup>(); List <RenderableGroup> alphaTestGroups = new List <RenderableGroup>(); List <RangedRenderableGroup> alphaBlendGroups = new List <RangedRenderableGroup>(); foreach (Entity e in Entities) { if (e.Visible) { Matrix4 entityMatrix = e.RenditionMatrix; RenderableGroup opaque = new RenderableGroup(); RenderableGroup alphaTest = new RenderableGroup(); RangedRenderableGroup alphaBlend = new RangedRenderableGroup(); IEnumerable <EntityComponent> components = e.GetVisualComponents(); foreach (EntityComponent c in components) { switch (c.RenditionPass) { case EntityComponent.TransparencyPass.AlphaTest: alphaTest.Components.Add(c); break; case EntityComponent.TransparencyPass.Blend: alphaBlend.Components.Add(c); break; default: opaque.Components.Add(c); break; } } if (opaque.Components.Count > 0) { opaque.Matrix = entityMatrix; opaqueGroups.Add(opaque); } if (alphaTest.Components.Count > 0) { alphaTest.Matrix = entityMatrix; alphaTestGroups.Add(alphaTest); needAlphaPass = true; } if (alphaBlend.Components.Count > 0) { alphaBlend.Matrix = entityMatrix; alphaBlend.Distance = (e.Position - cameraPos).LengthSquared; alphaBlendGroups.Add(alphaBlend); needBlendPass = true; } } } // Непрозрачный проход foreach (RenderableGroup g in opaqueGroups) { g.Render(); } // Альфа-проходы if (needAlphaPass || needBlendPass) { // Включение смешивания GL.Enable(EnableCap.Blend); GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); // Альфатест-проход if (needAlphaPass) { // Включение альфатеста if (GraphicalCaps.ShaderPipeline) { ShaderSystem.IsAlphaTest = true; } else { GL.Enable(EnableCap.AlphaTest); GL.AlphaFunc(AlphaFunction.Gequal, 0.9f); } // Отрисовка поверхностей foreach (RenderableGroup g in alphaTestGroups) { g.Render(); } // Отключение альфатеста if (GraphicalCaps.ShaderPipeline) { ShaderSystem.IsAlphaTest = false; } else { GL.Disable(EnableCap.AlphaTest); } } // Отключение смешивания if (needBlendPass) { // Сначала - сортировка всех объектов от дальних к ближним alphaBlendGroups.Sort((a, b) => { return(b.Distance.CompareTo(a.Distance)); }); // Отключение записи в буфер глубины GL.DepthMask(false); // Отрисовка всех поверхностей foreach (RangedRenderableGroup rg in alphaBlendGroups) { rg.Render(); } // Включение буффера глубины GL.DepthMask(true); } // Отключение смешивания GL.Disable(EnableCap.Blend); } // Отключение состояний GL.Disable(EnableCap.DepthTest); }
public void Start() { mSearchResultGroup = new RenderableGroup <SearchResult>(searchResultContainer, SearchResult.RenderToListOfResults); PerformSearch(""); }
// Start is called before the first frame update void Start() { mDocumentGroup = new RenderableGroup <Document>(docContainer, Document.RenderToListOfDocs); RefreshDocs(); }