// using System; // using System.Collections; // using System.Collections.Generic; // using UnityEngine; // using UnityEngine.UI; // // public class RenderCartItemManager : MonoBehaviour // { // // public static RenderCartItemManager instance; // public Camera renderCam; // // private void Awake() // { // instance = this; // } // // [HideInInspector] public Texture2D readyTexture; // //[HideInInspector] public List printingTexture = new List(); // // public void ClearTextureMemory() // { // Destroy(readyTexture); // //foreach (Texture2D tex in printingTexture) // // Destroy(tex); // //printingTexture.Clear(); // } // // public bool IsEmptyTexture = false; // public IEnumerator RenderToSprite(GameObject obj) // { // if (renderCam.targetTexture != null) // { // renderCam.targetTexture.Release(); // } // // GameObject productImage = Instantiate(obj, transform); // // // Product product = productImage.GetComponent(); // // // // product.SetUpForPreviewProcess(); // // RenderTexture rendtx = new RenderTexture(0, 0, 24); // int previewC = 1; // // Debug.Log(product.previewProcess.Count); // foreach (Action action in product.previewProcess) // { // // Debug.Log("preview process: " + previewC); // // action(); // // float smallerScale = Mathf.Max(product.renderCartSize.x / 400f, product.renderCartSize.y / 400f); // rendtx = new RenderTexture((int)(product.renderCartSize.x / smallerScale), (int)(product.renderCartSize.y / smallerScale), 24, RenderTextureFormat.ARGB32); // product.transform.localScale = Vector3.one / smallerScale; // // renderCam.targetTexture = rendtx; // yield return null; // Texture2D tex = ToTexture2D(rendtx); // TextureSaver.NewSaveImage(tex, "preview" + previewC); // if (previewC == 1) // readyTexture = tex; // else // Destroy(tex); // previewC++; // } // // rendtx.Release(); // // //product.MakeCartTexture(); // // //productImage.GetComponent().anchoredPosition = Vector2.zero; // //productImage.transform.rotation = Quaternion.Euler(rotation); // // RenderTexture rendtx = new RenderTexture((int)(product.renderCartSize.x / smallerScale), (int)(product.renderCartSize.y / smallerScale), 24, RenderTextureFormat.ARGB32); // //rendtx.Release(); // //rendtx.width = (int)size.x; // //rendtx.height = (int)size.y; // // // //bool IsEmptyTexture = false; // //get the print version now; // //printingTexture.Clear(); // product.transform.localScale = Vector3.one; // product.SetUpForPrintProcess(); // //Debug.Log(product.printProcess.Count); // int i = 1; // foreach(Action action in product.printProcess) // { // //Debug.Log("new shit"); // action(); // Vector2 printSize = product.renderPrintSize; // rendtx = new RenderTexture((int)printSize.x, (int)printSize.y, 24, RenderTextureFormat.ARGB32); // renderCam.targetTexture = rendtx; // yield return null; // Texture2D print_tex = ToTexture2D(rendtx); // if (product is ImagePrintProduct p && ReceiptPrinterManager.instance.IsPrintImage) // { // string uploadTmp = TextureSaver.SpecialSaveImageFile(print_tex, "printing" + i); // //imgRequest.MakeTif(uploadTmp,); // Debug.Log(uploadTmp); // var dirPath = SaveLoadPlace.GetSavePath() + ShoppingCartManager.instance.GetCurrentProductID() + "\\"; // //imgRequest.retryAmount = 0; // imgRequest.MakeTif(dirPath, uploadTmp, p.IsHorizontal, ShoppingCartManager.instance.GetCurrentProductID()); // } // else // { // IsEmptyTexture = IsTextureTransparent(print_tex); // var path = TextureSaver.NewSaveImage(print_tex, "printing" + i); // Debug.Log(path); // if (!IsEmptyTexture) // { // try // { // #if !UNITY_EDITOR // // System.Diagnostics.Process.Start("spot", "\"" + path + "\""); //photoshop轉tiff add spot channel // #endif // } // catch (Exception e) // { // Debug.Log(e.Message); // } // } // // } // // // // Destroy(print_tex); // i++; // //printingTexture.Add(ToTexture2D(rendtx)); // } // // product.EndOfPrintingProcess(); // //product.MakePrintingTexture(); // // //img.texture = readyTexture; // //img.gameObject.SetActive(true); // //img.GetComponent().sizeDelta = size; // Destroy(productImage); // rendtx.Release(); // // // // } // // bool IsTextureTransparent(Texture2D texture) // { // if (texture == null) // { // return false; // } // // // Get the pixel array // Color[] pixels = texture.GetPixels(); // // // Check if all pixels are fully transparent // foreach (Color pixel in pixels) // { // if (pixel.a != 0) // { // return false; // Found a non-transparent pixel // } // } // // return true; // All pixels are transparent // } // // //public RawImage img; // // Texture2D ToTexture2D(RenderTexture rTex) // { // RenderTexture currentActiveRT = RenderTexture.active; // Texture2D tex = new Texture2D(rTex.width, rTex.height, TextureFormat.ARGB32, false); // RenderTexture.active = rTex; // tex.ReadPixels(new Rect(0, 0, rTex.width, rTex.height), 0, 0); // tex.Apply(); // RenderTexture.active = currentActiveRT; // return tex; // } // // // // public RenderTexture cart3D, texture3D; // // // Texture2D ToTexture2D(RenderTexture rTex, int width, int height) // { // RenderTexture currentActiveRT = RenderTexture.active; // Texture2D tex = new Texture2D(width, height, TextureFormat.ARGB32, false); // RenderTexture.active = rTex; // tex.ReadPixels(new Rect(rTex.width/2 - width / 2, rTex.height/2 - height /2 - 100, width, height), 0, 0); // tex.Apply(); // RenderTexture.active = currentActiveRT; // return tex; // } // // public IEnumerator RenderThreeDPrint() // { // yield return null; // //printingTexture = ToTexture2D(texture3D); // } // // public IEnumerator RenderThreeDCart() // { // yield return null; // readyTexture = ToTexture2D(cart3D, 760, 1024); // // // } // // }