protected override JobHandle OnUpdate(JobHandle inputDeps) { var glyphMap = new NativeHashMap <int, Entity>(glyphQuery.CalculateEntityCount(), Allocator.TempJob); var glyphMapDeps = new BuildGlyphMapJob { GlyphMap = glyphMap.AsParallelWriter() }.Schedule(glyphQuery, inputDeps); var textMeshDeps = new BuildTextMeshJob { GlyphMap = glyphMap, GlyphData = GetBufferFromEntity <GlyphElement>(true), FontFaces = GetComponentDataFromEntity <FontFaceInfo>(true), EntityType = GetArchetypeChunkEntityType(), CharBufferType = GetArchetypeChunkBufferType <CharElement>(true), TextOptionType = GetArchetypeChunkComponentType <TextOptions>(true), TxtFontIDType = GetArchetypeChunkComponentType <TextFontID>(true), ColorType = GetArchetypeChunkComponentType <AppliedColor>(true), LTWType = GetArchetypeChunkComponentType <LocalToWorld>(true), DimensionType = GetArchetypeChunkComponentType <Dimensions>(true), MeshVertexDataType = GetArchetypeChunkBufferType <MeshVertexData>(), TriangleIndexType = GetArchetypeChunkBufferType <TriangleIndexElement>(), CmdBuffer = cmdBufferSystem.CreateCommandBuffer().ToConcurrent() }.Schedule(textQuery, glyphMapDeps); var finalDeps = glyphMap.Dispose(textMeshDeps); cmdBufferSystem.AddJobHandleForProducer(finalDeps); return(finalDeps); }
protected override void OnUpdate() { var glyphMap = new NativeHashMap <int, Entity>(glyphQuery.CalculateEntityCount(), Allocator.TempJob); Dependency = new BuildGlyphMapJobChunk { GlyphMap = glyphMap.AsParallelWriter(), EntityType = GetEntityTypeHandle(), FontType = GetComponentTypeHandle <FontID>(true) }.Schedule(glyphQuery, Dependency); Dependency = new BuildTextMeshJob { GlyphMap = glyphMap, GlyphData = GetBufferFromEntity <GlyphElement>(true), FontFaces = GetComponentDataFromEntity <FontFaceInfo>(true), Parents = GetComponentDataFromEntity <Parent>(true), EntityType = GetEntityTypeHandle(), CharBufferType = GetBufferTypeHandle <CharElement>(true), TextOptionType = GetComponentTypeHandle <TextOptions>(true), TxtFontIDType = GetComponentTypeHandle <TextFontID>(true), ColorType = GetComponentTypeHandle <AppliedColor>(true), LTWType = GetComponentTypeHandle <LocalToWorld>(true), DimensionType = GetComponentTypeHandle <Dimensions>(true), MeshVertexDataType = GetBufferTypeHandle <LocalVertexData>(), TriangleIndexType = GetBufferTypeHandle <LocalTriangleIndexElement>(), CmdBuffer = cmdBufferSystem.CreateCommandBuffer().AsParallelWriter() }.Schedule(textQuery, Dependency); Dependency = glyphMap.Dispose(Dependency); cmdBufferSystem.AddJobHandleForProducer(Dependency); }