private static IDX11Geometry AssignInstancedDrawer(DrawDescription desc, IDX11Geometry geometry) { var indexedGeometry = geometry as DX11IndexedGeometry; if (indexedGeometry != null) { if (!(indexedGeometry.Drawer is DX11InstancedIndexedDrawer)) { indexedGeometry = (DX11IndexedGeometry)indexedGeometry.ShallowCopy(); var drawer = new DX11InstancedIndexedDrawer(); drawer.InstanceCount = desc.InstanceCount; drawer.StartInstanceLocation = 0; indexedGeometry.AssignDrawer(drawer); geometry = indexedGeometry; } } else { var vertexGeometry = geometry as DX11VertexGeometry; if (vertexGeometry != null) { if (!(vertexGeometry.Drawer is DX11InstancedVertexDrawer)) { vertexGeometry = (DX11VertexGeometry)vertexGeometry.ShallowCopy(); var drawer = new DX11InstancedVertexDrawer(); drawer.InstanceCount = desc.InstanceCount; drawer.StartInstanceLocation = 0; vertexGeometry.AssignDrawer(drawer); geometry = vertexGeometry; } } } return(geometry); }
void Start() { mapOwner = GetComponent <IPollutionMapOwner>(); drawDescription = GetComponent <DrawDescription>(); }