Example #1
0
        public void doFilter(INyARRgbRaster i_input, NyARBinRaster i_output)
        {
            //INyARBufferReader in_buffer_reader = i_input.getBufferReader();
            //INyARBufferReader out_buffer_reader = i_output.getBufferReader();
            int in_buf_type = i_input.getBufferType();

            NyARIntSize size = i_output.getSize();

            Debug.Assert(i_output.isEqualBufferType(NyARBufferType.INT2D_BIN_8));
            Debug.Assert(checkInputType(in_buf_type) == true);
            Debug.Assert(i_input.getSize().isEqualSize(size.w * 2, size.h * 2) == true);

            int[][] out_buf = (int[][])i_output.getBuffer();


            switch (i_input.getBufferType())
            {
            case NyARBufferType.BYTE1D_B8G8R8_24:
            case NyARBufferType.BYTE1D_R8G8B8_24:
                convert24BitRgb((byte[])i_input.getBuffer(), out_buf, size);
                break;

            case NyARBufferType.BYTE1D_B8G8R8X8_32:
                convert32BitRgbx((byte[])i_input.getBuffer(), out_buf, size);
                break;

            case NyARBufferType.WORD1D_R5G6B5_16LE:
                convert16BitRgb565word((short[])i_input.getBuffer(), out_buf, size);
                break;

            default:
                throw new NyARException();
            }
            return;
        }