コード例 #1
0
        public unsafe static JobHandle LoadBytesJob(
            ref BasisUniversalJob job,
            BasisUniversalTranscoderInstance basis,
            NativeSlice <byte> basisuData,
            TranscodeFormat transF
            )
        {
            Profiler.BeginSample("BasisU.LoadBytesJob");

            var  numLevels = basis.GetLevelCount(job.imageIndex);
            var  sizes     = new NativeArray <uint>((int)numLevels, KtxNativeInstance.defaultAllocator);
            var  offsets   = new NativeArray <uint>((int)numLevels, KtxNativeInstance.defaultAllocator);
            uint totalSize = 0;

            for (uint i = 0; i < numLevels; i++)
            {
                offsets[(int)i] = totalSize;
                var size = basis.GetImageTranscodedSize(job.imageIndex, i, transF);
                sizes[(int)i] = size;
                totalSize    += size;
            }

            job.format          = transF;
            job.sizes           = sizes;
            job.offsets         = offsets;
            job.nativeReference = basis.nativeReference;

            job.textureData = new NativeArray <byte>((int)totalSize, KtxNativeInstance.defaultAllocator);

            var jobHandle = job.Schedule();

            Profiler.EndSample();
            return(jobHandle);
        }
コード例 #2
0
ファイル: BasisUniversal.cs プロジェクト: Avatarchik/KtxUnity
        public unsafe static JobHandle LoadBytesJob(
            ref BasisUniversalJob job,
            BasisUniversalTranscoderInstance basis,
            NativeArray <byte> basisuData,
            TranscodeFormat transF
            )
        {
            Profiler.BeginSample("BasisU.LoadBytesJob");

            var size = basis.GetImageTranscodedSize(0, 0, transF);

            job.format          = transF;
            job.size            = size;
            job.nativeReference = basis.nativeReference;

            job.textureData = new NativeArray <byte>((int)size, KtxNativeInstance.defaultAllocator);

            var jobHandle = job.Schedule();

            Profiler.EndSample();
            return(jobHandle);
        }