public ShaderResourceView Load(string name, DefaultMode defaultMode) { if (name == null) { if (defaultMode == DefaultMode.Bump) { return(defaultBumpTexture); } else { return(defaultStandardTexture); } } if (!cache.TryGetValue(name, out var textureView)) { var imageFile = texturesDirectory.File(name + ".dds"); textureView = textureCache.Get(imageFile); cache.Add(name, textureView); } return(textureView); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { switch (GameObj.baseData.mode) { case 1: waveMode = new WaveMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero, }; jobHandle = waveMode.Schedule(this, inputDeps); break; case 2: rippleMode = new RippleMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = rippleMode.Schedule(this, inputDeps); break; case 3: cylinderMode = new CylinderMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = cylinderMode.Schedule(this, inputDeps); break; case 4: sphereMode = new SphereMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = sphereMode.Schedule(this, inputDeps); break; case 5: torusMode = new TorusMode { baseData = GameObj.baseData, transformData = GameObj.transformData, freq = GameObj.freq, magn = GameObj.magn, time = GameObj.time, scalej = GameObj.transformData.size, vector = float3.zero }; jobHandle = torusMode.Schedule(this, inputDeps); break; default: defaultMode = new DefaultMode { scalej = 1f, vector = float3.zero }; jobHandle = defaultMode.Schedule(this, inputDeps); break; } return(jobHandle); }