Exemplo n.º 1
0
        internal static Render.DeclarationTypes.IDeclType AllocateDeclType(this Render.DeclarationType type)
        {
            switch (type)
            {
            case Render.DeclarationType.Float1:             return(new DECLT.Float1());

            case Render.DeclarationType.Float2:             return(new DECLT.Float2());

            case Render.DeclarationType.Float3:             return(new DECLT.Float3());

            case Render.DeclarationType.Float4:             return(new DECLT.Float4());

            case Render.DeclarationType.Ubyte4:             return(new DECLT.Ubyte4());

            case Render.DeclarationType.UbyteN4:    return(new DECLT.Ubyte4N());

            case Render.DeclarationType.Color:              return(new DECLT.Color());

            case Render.DeclarationType.UShort2:    return(new DECLT.UShort2());

            case Render.DeclarationType.UShort4:    return(new DECLT.UShort4());

            case Render.DeclarationType.UShortN2:   return(new DECLT.UShort2N());

            case Render.DeclarationType.UShortN4:   return(new DECLT.UShort4N());

            case Render.DeclarationType.UShortN2_2: return(new DECLT.UShort2N());

            case Render.DeclarationType.UShortN4_2: return(new DECLT.UShort4N());

            case Render.DeclarationType.UDHen3N:    return(new DECLT.UDHen3N());

            case Render.DeclarationType.DHen3N:             return(new DECLT.DHen3N());

            case Render.DeclarationType.Float16Two: return(new DECLT.Float16Two());

            case Render.DeclarationType.Float16Four: return(new DECLT.Float16Four());

            case Render.DeclarationType.Dec3N:              return(new DECLT.Dec3N());

            case Render.DeclarationType.UHenD3N:    return(new DECLT.UHenD3N());

            case Render.DeclarationType.UDec4N:             return(new DECLT.UDec4N());

            case Render.DeclarationType.ByteN4:             return(new DECLT.Byte4N());

                #region Legacy
            case Render.DeclarationType.UbyteN:             return(new DECLT.UbyteN());

            case Render.DeclarationType.UbyteN2:    return(new DECLT.UbyteN2());

            case Render.DeclarationType.UbyteN3:    return(new DECLT.UbyteN3());

            case Render.DeclarationType.UShortN:    return(new DECLT.UShortN());

            case Render.DeclarationType.UShortN3:   return(new DECLT.UShort3N());

            case Render.DeclarationType.ShortN:             return(new DECLT.ShortN());

            case Render.DeclarationType.ShortN2:    return(new DECLT.Short2N());

            case Render.DeclarationType.ShortN3:    return(new DECLT.Short3N());

            case Render.DeclarationType.ShortN4:    return(new DECLT.Short4N());

            case Render.DeclarationType.HenD3N:             return(new DECLT.HenD3N());

                #endregion

            case Render.DeclarationType.Skip:               return(new DECLT.Skip());

            default: throw new Debug.Exceptions.UnreachableException(type);
            }
        }
Exemplo n.º 2
0
        public static int GetSize(this Render.DeclarationType type)
        {
            switch (type)
            {
            case Render.DeclarationType.Float1:             return(4);

            case Render.DeclarationType.Float2:             return(8);

            case Render.DeclarationType.Float3:             return(12);

            case Render.DeclarationType.Float4:             return(16);

            case Render.DeclarationType.Ubyte4:             return(4);

            case Render.DeclarationType.UbyteN4:    return(4);

            case Render.DeclarationType.Color:              return(4);

            case Render.DeclarationType.UShort2:    return(4);

            case Render.DeclarationType.UShort4:    return(8);

            case Render.DeclarationType.UShortN2:   return(4);

            case Render.DeclarationType.UShortN4:   return(8);

            case Render.DeclarationType.UShortN2_2: return(4);

            case Render.DeclarationType.UShortN4_2: return(8);

            case Render.DeclarationType.UDHen3N:    return(4);

            case Render.DeclarationType.DHen3N:             return(4);

            case Render.DeclarationType.Float16Two: return(4);

            case Render.DeclarationType.Float16Four: return(8);

            case Render.DeclarationType.Dec3N:              return(4);

            case Render.DeclarationType.UHenD3N:    return(4);

            case Render.DeclarationType.UDec4N:             return(4);

            case Render.DeclarationType.ByteN4:             return(4);

                #region Legacy
            case Render.DeclarationType.UbyteN:             return(1);

            case Render.DeclarationType.UbyteN2:    return(2);

            case Render.DeclarationType.UbyteN3:    return(3);

            case Render.DeclarationType.UShortN:    return(2);

            case Render.DeclarationType.UShortN3:   return(6);

            case Render.DeclarationType.ShortN:             return(2);

            case Render.DeclarationType.ShortN2:    return(4);

            case Render.DeclarationType.ShortN3:    return(6);

            case Render.DeclarationType.ShortN4:    return(8);

            case Render.DeclarationType.HenD3N:             return(4);

                #endregion

            default: throw new Debug.Exceptions.UnreachableException(type);
            }
        }