public void Update(FeralTic.DX11.DX11RenderContext context) { for (int i = 0; i < FTextureOut.SliceCount; i++) { if (!FTextureOut[i].Contains(context)) { renderer = new BitmapRenderer(); renderer.TextFont = new System.Drawing.Font(FFontIn[i].Name, FFontSizeIn[i]); Bitmap bmp = new Bitmap(GenerateBarcodeImage(i)); DX11DynamicTexture2D tex = new DX11DynamicTexture2D(context, bmp.Width, bmp.Height, SlimDX.DXGI.Format.R8G8B8A8_UNorm); int pitch = tex.GetRowPitch(); var data = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, bmp.PixelFormat); if (pitch != bmp.Width * 4) { tex.WriteDataPitch(data.Scan0, bmp.Width * bmp.Height * 4); } else { tex.WriteData(data.Scan0, bmp.Width * bmp.Height * 4); } FTextureOut[i][context] = tex; } } }
public void Update(IPluginIO pin, FeralTic.DX11.DX11RenderContext context) { for (int i = 0; i < this.FTextureOut.SliceCount; i++) { if (!this.FTextureOut[i].Contains(context)) { Bitmap bmp = ComputeQRCode(i); DX11DynamicTexture2D tex = new DX11DynamicTexture2D(context, bmp.Width, bmp.Height, SlimDX.DXGI.Format.R8G8B8A8_UNorm); int pitch = tex.GetRowPitch(); var data = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, bmp.PixelFormat); if (pitch != bmp.Width * 4) { tex.WriteDataPitch(data.Scan0, bmp.Width * bmp.Height * 4); } else { tex.WriteData(data.Scan0, bmp.Width * bmp.Height * 4); } this.FTextureOut[i][context] = tex; } } }