public void Update(DX11RenderContext context)
        {
            if (this.FInvalidate || this.FEmpty)
            {
                for (int i = 0; i < this.scenes.Count; i++)
                {
                    if (scenes[i] != null)
                    {
                        AssimpScene scene = scenes[i];

                        for (int j = 0; j < scene.MeshCount; j++)
                        {
                            AssimpMesh assimpmesh = scene.Meshes[j];


                            DataStream vS = assimpmesh.Vertices;
                            vS.Position = 0;

                            List <int> inds = assimpmesh.Indices;

                            if (inds.Count > 0 && assimpmesh.VerticesCount > 0)
                            {
                                var vertices = new SlimDX.Direct3D11.Buffer(context.Device, vS, new BufferDescription()
                                {
                                    BindFlags      = BindFlags.VertexBuffer,
                                    CpuAccessFlags = CpuAccessFlags.None,
                                    OptionFlags    = ResourceOptionFlags.None,
                                    SizeInBytes    = (int)vS.Length,
                                    Usage          = ResourceUsage.Default
                                });

                                var indexstream = new DataStream(inds.Count * 4, true, true);
                                indexstream.WriteRange(inds.ToArray());
                                indexstream.Position = 0;


                                DX11IndexedGeometry geom = new DX11IndexedGeometry(context);
                                geom.VertexBuffer   = vertices;
                                geom.IndexBuffer    = new DX11IndexBuffer(context, indexstream, false, true);
                                geom.InputLayout    = assimpmesh.GetInputElements().ToArray();
                                geom.Topology       = PrimitiveTopology.TriangleList;
                                geom.VerticesCount  = assimpmesh.VerticesCount;
                                geom.VertexSize     = assimpmesh.CalculateVertexSize();
                                geom.HasBoundingBox = true;
                                geom.BoundingBox    = assimpmesh.BoundingBox;

                                this.FOutGeom[i][j][context] = geom;
                            }
                        }
                    }
                }
                this.FEmpty      = false;
                this.FInvalidate = false;
            }
        }