static void ProcessImage(GifPacket packet, GsProcessor processor) { DataReader reader = new DataReader(packet.Data); for (int i = 0; i < packet.Loops; i++) { processor.AddOperation(0x54, reader.ReadUInt64()); processor.AddOperation(0x54, reader.ReadUInt64()); } }
static void ProcessPacked(GifPacket packet, GsProcessor processor) { DataReader reader = new DataReader(packet.Data); if (!packet.IgnorePrimField) { throw new NotSupportedException("Unsupported PRIM field"); } for (int i = 0; i < packet.Loops; i++) { foreach (var register in packet.Registers) { switch (register) { case GifRegisters.APlusD: ulong data = reader.ReadUInt64(); byte regAddress = (byte)(reader.ReadUInt64() & 0xFF); processor.AddOperation(regAddress, data); break; default: throw new NotSupportedException("Unsupported register"); } } } }