示例#1
0
 /// <summary>
 /// Used to override Detach
 /// </summary>
 protected override void OnDetach()
 {
     bufferModelInternal = null;
     InstanceBuffer.DisposeAndClear();
     BoundManager.DisposeAndClear();
     base.OnDetach();
 }
 public override void Draw(DeviceContextProxy deviceContext, IAttachableBufferModel bufferModel, int instanceCount)
 {
     if (bufferModel is IBillboardBufferModel billboardModel)
     {
         deviceContext.SetShaderResource(PixelShader.Type, shaderTextureSlot, billboardModel.TextureView);
         DrawPoints(deviceContext, bufferModel.VertexBuffer[0].ElementCount, instanceCount);
     }
 }
示例#3
0
 private void CreateGeometryBuffer()
 {
     RemoveAndDispose(ref bufferModelInternal);
     bufferModelInternal = Collect(OnCreateBufferModel(this.GUID, geometry));
     if (RenderCore is IGeometryRenderCore core)
     {
         core.GeometryBuffer = bufferModelInternal;
     }
 }
示例#4
0
            private void CreateGeometryBuffer()
            {
                var newBuffer = OnCreateBufferModel(this.GUID, geometry);

                RemoveAndDispose(ref bufferModelInternal);
                bufferModelInternal = newBuffer;
                if (RenderCore is IGeometryRenderCore core)
                {
                    core.GeometryBuffer = bufferModelInternal;
                }
            }
 protected override void OnGeometryBufferChanged(IAttachableBufferModel buffer)
 {
     base.OnGeometryBufferChanged(buffer);
     preComputeBoneBuffer = buffer as IBoneSkinPreComputehBufferModel;
 }
 public override void Draw(DeviceContextProxy deviceContext, IAttachableBufferModel bufferModel, int instanceCount)
 {
     DrawIndexed(deviceContext, bufferModel.IndexBuffer.ElementCount, instanceCount);
 }
示例#7
0
 /// <summary>
 /// Called when [geometry buffer changed].
 /// </summary>
 /// <param name="buffer">The buffer.</param>
 protected virtual void OnGeometryBufferChanged(IAttachableBufferModel buffer)
 {
 }
示例#8
0
 /// <summary>
 /// Draws the specified device context.
 /// </summary>
 /// <param name="deviceContext">The device context.</param>
 /// <param name="bufferModel">The buffer model.</param>
 /// <param name="instanceCount">The instance count.</param>
 public override void Draw(DeviceContextProxy deviceContext, IAttachableBufferModel bufferModel, int instanceCount)
 {
 }
示例#9
0
 protected override void OnGeometryBufferChanged(IAttachableBufferModel buffer)
 {
     billboardBuffer = buffer as IBillboardBufferModel;
 }
 public override void Draw(DeviceContextProxy deviceContext, IAttachableBufferModel bufferModel, int instanceCount)
 {
     DrawPoints(deviceContext, bufferModel.VertexBuffer[0].ElementCount, instanceCount);
 }
示例#11
0
 /// <summary>
 /// Draws the specified device context.
 /// </summary>
 /// <param name="deviceContext">The device context.</param>
 /// <param name="bufferModel">Geometry buffer model.</param>
 /// <param name="instanceCount">The instance count.</param>
 public abstract void Draw(DeviceContextProxy deviceContext, IAttachableBufferModel bufferModel, int instanceCount);