public void SetData(long key, long size, IntPtr hostAddress) { if (_cache.TryGetValue(key, out OglStreamBuffer buffer)) { buffer.SetData(size, hostAddress); } }
public bool TryGetImage(long key, out GalImage image) { if (_textureCache.TryGetValue(key, out ImageHandler cachedImage)) { image = cachedImage.Image; return(true); } image = default(GalImage); return(false); }
public void DrawElements(long iboKey, int first, int vertexBase, GalPrimitiveType primType) { if (!_iboCache.TryGetValue(iboKey, out int iboHandle)) { return; } PrimitiveType mode = OglEnumConverter.GetPrimitiveType(primType); GL.BindBuffer(BufferTarget.ElementArrayBuffer, iboHandle); first <<= _indexBuffer.ElemSizeLog2; if (vertexBase != 0) { IntPtr indices = new IntPtr(first); GL.DrawElementsBaseVertex(mode, _indexBuffer.Count, _indexBuffer.Type, indices, vertexBase); } else { GL.DrawElements(mode, _indexBuffer.Count, _indexBuffer.Type, first); } }
public bool TryGetVbo(long vboKey, out int vboHandle) { return(_vboCache.TryGetValue(vboKey, out vboHandle)); }