Exemple #1
0
        public static GfxLogicalOp ToGfxLogicalOp(this PICALogicalOp LogicalOp)
        {
            switch (LogicalOp)
            {
            case PICALogicalOp.Clear:        return(GfxLogicalOp.Clear);

            case PICALogicalOp.Copy:         return(GfxLogicalOp.Copy);

            case PICALogicalOp.Noop:         return(GfxLogicalOp.Noop);

            case PICALogicalOp.Set:          return(GfxLogicalOp.Set);

            case PICALogicalOp.CopyInverted: return(GfxLogicalOp.CopyInverted);

            case PICALogicalOp.Invert:       return(GfxLogicalOp.Invert);

            case PICALogicalOp.AndReverse:   return(GfxLogicalOp.AndReverse);

            case PICALogicalOp.OrReverse:    return(GfxLogicalOp.OrReverse);

            case PICALogicalOp.And:          return(GfxLogicalOp.And);

            case PICALogicalOp.Or:           return(GfxLogicalOp.Or);

            case PICALogicalOp.Nand:         return(GfxLogicalOp.Nand);

            case PICALogicalOp.Nor:          return(GfxLogicalOp.Nor);

            case PICALogicalOp.Xor:          return(GfxLogicalOp.Xor);

            case PICALogicalOp.Equiv:        return(GfxLogicalOp.Equiv);

            case PICALogicalOp.AndInverted:  return(GfxLogicalOp.AndInverted);

            case PICALogicalOp.OrInverted:   return(GfxLogicalOp.OrInverted);

            default: throw new ArgumentException($"Invalid Logical Operation {LogicalOp}!");
            }
        }
Exemple #2
0
        void ICustomSerialization.Deserialize(BinaryDeserializer Deserializer)
        {
            PICACommandReader Reader = new PICACommandReader(Commands);

            while (Reader.HasCommand)
            {
                PICACommand Cmd = Reader.GetCommand();

                uint Param = Cmd.Parameters[0];

                switch (Cmd.Register)
                {
                case PICARegister.GPUREG_COLOR_OPERATION: ColorOperation = new PICAColorOperation(Param); break;

                case PICARegister.GPUREG_BLEND_FUNC: Function = new PICABlendFunction(Param); break;

                case PICARegister.GPUREG_LOGIC_OP: LogicalOperation = (PICALogicalOp)(Param & 0xf); break;

                case PICARegister.GPUREG_BLEND_COLOR: Color = new RGBA(Param); break;
                }
            }
        }