Exemplo n.º 1
0
        private static unsafe void GetAssetsRelativeFileName(IntPtr str, UInt32 bufferSize, IntPtr fullFileName)
        {
            unsafe
            {
                char *pAssets   = (char *)str.ToPointer();
                var   pFileName = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(fullFileName);

                string contentAsset = "";
                if (pFileName.StartsWith(CEngine.Instance.FileManager.ProjectContent))
                {
                    contentAsset = "content/" + pFileName.Substring(CEngine.Instance.FileManager.ProjectContent.Length);
                }
                else if (pFileName.StartsWith(CEngine.Instance.FileManager.EngineContent))
                {
                    contentAsset = "enginecontent/" + pFileName.Substring(CEngine.Instance.FileManager.EngineContent.Length);
                }
                else if (pFileName.StartsWith(CEngine.Instance.FileManager.EditorContent))
                {
                    contentAsset = "editorcontent/" + pFileName.Substring(CEngine.Instance.FileManager.EditorContent.Length);
                }
                else if (pFileName.StartsWith(CEngine.Instance.FileManager.DDCDirectory))
                {
                    contentAsset = "deriveddatacache/" + pFileName.Substring(CEngine.Instance.FileManager.DDCDirectory.Length);
                }

                var src = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(contentAsset);
                CoreSDK.SDK_Memory_Copy(pAssets, src.ToPointer(), (UInt32)contentAsset.Length);
                System.Runtime.InteropServices.Marshal.FreeHGlobal(src);

                //var ssss = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(str);
            }
        }
Exemplo n.º 2
0
        private static void GetAssetsFileName(IntPtr CppString, UInt32 bufferSize, IntPtr FullFileName, vBOOL LoadFromDocDir)
        {
            if (LoadFromDocDir)
            {
                unsafe
                {
                    char *refCppString     = (char *)CppString.ToPointer();
                    var   AnsiFullFileName = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(FullFileName);
                    var   SrcCppString     = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(AnsiFullFileName);
                    CoreSDK.SDK_Memory_Copy(refCppString, SrcCppString.ToPointer(), (UInt32)AnsiFullFileName.Length);
                    System.Runtime.InteropServices.Marshal.FreeHGlobal(SrcCppString);

                    //var RelatedFileLocation = "Content/" + AnsiFullFileName.Substring(CEngine.Instance.FileManager.Content.Length);
                    //var SrcCppString = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(RelatedFileLocation);
                    //CoreSDK.SDK_Memory_Copy(refCppString, SrcCppString.ToPointer(), (UInt32)RelatedFileLocation.Length);
                }
            }
            else
            {
            }
        }