internal InputLayout GetInputLayout(VertexLayoutDescription[] vertexLayouts, byte[] vsBytecode) { InputLayoutCacheKey tempKey = InputLayoutCacheKey.CreateTempKey(vertexLayouts); if (!_inputLayouts.TryGetValue(tempKey, out InputLayout inputLayout)) { inputLayout = CreateNewInputLayout(vertexLayouts, vsBytecode); InputLayoutCacheKey permanentKey = InputLayoutCacheKey.CreatePermanentKey(vertexLayouts); _inputLayouts.Add(permanentKey, inputLayout); } return(inputLayout); }
private InputLayout GetInputLayout(VertexLayoutDescription[] vertexLayouts, byte[] vsBytecode) { Debug.Assert(Monitor.IsEntered(_lock)); if (vsBytecode == null || vertexLayouts == null || vertexLayouts.Length == 0) { return(null); } InputLayoutCacheKey tempKey = InputLayoutCacheKey.CreateTempKey(vertexLayouts); if (!_inputLayouts.TryGetValue(tempKey, out InputLayout inputLayout)) { inputLayout = CreateNewInputLayout(vertexLayouts, vsBytecode); InputLayoutCacheKey permanentKey = InputLayoutCacheKey.CreatePermanentKey(vertexLayouts); _inputLayouts.Add(permanentKey, inputLayout); } return(inputLayout); }