当前位置: 首页>>代码示例>>C#>>正文


C# INyARRgbRaster.getBufferType方法代码示例

本文整理汇总了C#中INyARRgbRaster.getBufferType方法的典型用法代码示例。如果您正苦于以下问题:C# INyARRgbRaster.getBufferType方法的具体用法?C# INyARRgbRaster.getBufferType怎么用?C# INyARRgbRaster.getBufferType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在INyARRgbRaster的用法示例。


在下文中一共展示了INyARRgbRaster.getBufferType方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: doFilter

        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;
        }
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:31,代码来源:NyARRasterFilter_ARTTh_Quad.cs

示例2: createDriver

 /**
  * この関数は、i_rasterを操作するピクセルドライバインスタンスを生成します。
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgbPixelDriver createDriver(INyARRgbRaster i_raster)
 {
     INyARRgbPixelDriver ret;
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.BYTE1D_B8G8R8_24:
             ret = new NyARRgbPixelDriver_BYTE1D_B8G8R8_24();
             break;
         case NyARBufferType.BYTE1D_B8G8R8X8_32:
             ret = new NyARRgbPixelDriver_BYTE1D_B8G8R8X8_32();
             break;
         case NyARBufferType.BYTE1D_R8G8B8_24:
             ret = new NyARRgbPixelDriver_BYTE1D_R8G8B8_24();
             break;
         case NyARBufferType.BYTE1D_X8R8G8B8_32:
             ret = new NyARRgbPixelDriver_BYTE1D_X8R8G8B8_32();
             break;
         case NyARBufferType.INT1D_GRAY_8:
             ret = new NyARRgbPixelDriver_INT1D_GRAY_8();
             break;
         case NyARBufferType.INT1D_X8R8G8B8_32:
             ret = new NyARRgbPixelDriver_INT1D_X8R8G8B8_32();
             break;
         case NyARBufferType.BYTE1D_R5G6B5_16BE:
             ret = new NyARRgbPixelDriver_WORD1D_R5G6B5_16LE();
             break;
         default:
             throw new NyARException();
     }
     ret.switchRaster(i_raster);
     return ret;
 }
开发者ID:ooHIROoo,项目名称:Imagine2016,代码行数:38,代码来源:NyARRgbPixelDriverFactory.cs

示例3: createRgbCubeDriver

 /**
  * この関数は、(R*G*B>>16) でグレースケール化するフィルタを生成します。
  * 最適化されていません。
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgb2GsFilterRgbAve createRgbCubeDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         default:
             return new NyARRgb2GsFilterRgbCube_Any(i_raster);
     }
 }
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:15,代码来源:NyARRgb2GsFilterFactory.cs

示例4: createYCbCrDriver

 /**
  * この関数は(Yrcb)でグレースケール化するフィルタを生成します。
  * 最適化されていません。
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgb2GsFilterYCbCr createYCbCrDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         default:
             return new NyARRgb2GsFilterYCbCr_Any(i_raster);
     }
 }
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:15,代码来源:NyARRgb2GsFilterFactory.cs

示例5: createDriver

 public static IRasterDriver createDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.INT1D_X8R8G8B8_32:
             return new NyARMatchPattDeviationDataDriver_INT1D_X8R8G8B8_32(i_raster);
         default:
             break;
     }
     return new NyARMatchPattDeviationDataDriver_RGBAny(i_raster);
 }
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:11,代码来源:NyARMatchPattDeviationColorData.cs

示例6: createRgbAveDriver

 /**
  * この関数は、(R*G*B)/3 でグレースケール化するフィルタを生成します。
  * 最適化されている形式は以下の通りです。
  * <ul>
  * <li>{@link NyARBufferType#BYTE1D_B8G8R8X8_32}</li>
  * </ul>
  * @param i_raster
  * @return
  * @
  */
 public static INyARRgb2GsFilterRgbAve createRgbAveDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.BYTE1D_B8G8R8X8_32:
             return new NyARRgb2GsFilterRgbAve_BYTE1D_B8G8R8X8_32(i_raster);
         case NyARBufferType.BYTE1D_B8G8R8_24:
             return new NyARRgb2GsFilterRgbAve_BYTE1D_C8C8C8_24(i_raster);
         case NyARBufferType.BYTE1D_X8R8G8B8_32:
             return new NyARRgb2GsFilterRgbAve_INT1D_X8R8G8B8_32(i_raster);
         default:
             return new NyARRgb2GsFilterRgbAve_Any(i_raster);
     }
 }
开发者ID:mlakhal,项目名称:CollaborativeAugmentedRealityEnvironment,代码行数:24,代码来源:NyARRgb2GsFilterFactory.cs

示例7: createDriver

 /**
  * 指定したIN/OUTに最適な{@link INyARPerspectiveReaader}を生成します。
  * <p>入力ラスタについて
  * 基本的には全ての{@link INyARRgbRaster}を実装したクラスを処理できますが、次の3種類のバッファを持つものを推奨します。
  * <ul>
  * <li>{@link NyARBufferType#BYTE1D_B8G8R8X8_32}
  * <li>{@link NyARBufferType#BYTE1D_B8G8R8_24}
  * <li>{@link NyARBufferType#BYTE1D_R8G8B8_24}
  * </ul>
  * </p>
  * <p>出力ラスタについて
  * 基本的には全ての{@link NyARBufferType#INT1D_X8R8G8B8_32}形式のバッファを持つラスタを使用してください。
  * 他の形式でも動作しますが、低速な場合があります。
  * </p>
  * <p>高速化について -
  * 入力ラスタ形式が、{@link NyARBufferType#BYTE1D_B8G8R8X8_32},{@link NyARBufferType#BYTE1D_B8G8R8_24}
  * ,{@link NyARBufferType#BYTE1D_R8G8B8_24}のものについては、他の形式よりも高速に動作します。
  * また、出力ラスタ形式が、{@link NyARBufferType#INT1D_X8R8G8B8_32}の物については、単体サンプリングモードの時のみ、さらに高速に動作します。
  * 他の形式のラスタでは、以上のものよりも低速転送で対応します。
  * @param i_in_raster_type
  * 入力ラスタの形式です。
  * @param i_out_raster_type
  * 出力ラスタの形式です。
  * @return
  */
 public static INyARPerspectiveCopy createDriver(INyARRgbRaster i_raster)
 {
     //新しいモードに対応したら書いてね。
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.BYTE1D_B8G8R8X8_32:
             return new PerspectiveCopy_BYTE1D_B8G8R8X8_32(i_raster);
         case NyARBufferType.BYTE1D_B8G8R8_24:
             return new PerspectiveCopy_BYTE1D_B8G8R8_24(i_raster);
         case NyARBufferType.BYTE1D_R8G8B8_24:
             return new PerspectiveCopy_BYTE1D_R8G8B8_24(i_raster);
         default:
             return new PerspectiveCopy_ANYRgb(i_raster);
     }
 }
开发者ID:ooHIROoo,项目名称:Imagine2016,代码行数:40,代码来源:NyARPerspectiveCopyFactory.cs

示例8: createDriver

 public static INyARRgb2GsFilterArtkTh createDriver(INyARRgbRaster i_raster)
 {
     switch (i_raster.getBufferType())
     {
         case NyARBufferType.BYTE1D_B8G8R8_24:
         case NyARBufferType.BYTE1D_R8G8B8_24:
             return new NyARRgb2GsFilterArtkTh_BYTE1D_C8C8C8_24(i_raster);
         case NyARBufferType.BYTE1D_B8G8R8X8_32:
             return new NyARRgb2GsFilterArtkTh_BYTE1D_B8G8R8X8_32(i_raster);
         case NyARBufferType.BYTE1D_X8R8G8B8_32:
             return new NyARRgb2GsFilterArtkTh_BYTE1D_X8R8G8B8_32(i_raster);
         case NyARBufferType.INT1D_X8R8G8B8_32:
             return new NyARRgb2GsFilterArtkTh_INT1D_X8R8G8B8_32(i_raster);
         case NyARBufferType.WORD1D_R5G6B5_16LE:
             return new NyARRgb2GsFilterArtkTh_WORD1D_R5G6B5_16LE(i_raster);
         default:
             return new NyARRgb2GsFilterArtkTh_Any(i_raster);
     }
 }
开发者ID:Carteor,项目名称:LensesAR-Unity3D,代码行数:19,代码来源:NyARRgb2GsFilterArtkThFactory.cs

示例9: setRaster

 /* DsXRGB32Rasterの内容を保持しているサーフェイスにコピーします。
  */
 public void setRaster(INyARRgbRaster i_sample)
 {
     Debug.Assert(!this._is_dispose);
     int pitch;
     int s_stride = this.m_width * 4;
     using (GraphicsStream gs = this._surface.LockRectangle(LockFlags.None, out pitch))
     {
         try{                    
             switch (i_sample.getBufferType())
             {
                 case NyARBufferType.BYTE1D_B8G8R8X8_32:
                     if (pitch % s_stride == 0)
                     {
                         Marshal.Copy((byte[])i_sample.getBuffer(), 0, (IntPtr)((int)gs.InternalData), this.m_width * 4 * this.m_height);
                     }
                     else
                     {
                         int s_idx = 0;
                         int d_idx = (int)gs.InternalData;
                         for (int i = this.m_height - 1; i >= 0; i--)
                         {
                             //どう考えてもポインタです。
                             Marshal.Copy((byte[])i_sample.getBuffer(), s_idx, (IntPtr)(d_idx), s_stride);
                             s_idx += s_stride;
                             d_idx += pitch;
                         }
                     }
                     break;
                 case NyARBufferType.OBJECT_CS_Bitmap:
                     NyARBitmapRaster ra = (NyARBitmapRaster)(i_sample);
                     BitmapData bm = ra.lockBitmap();
                     try{
                         //コピー
                         int src = (int)bm.Scan0;
                         int dst = (int)gs.InternalData;
                         for (int r = this.m_height - 1; r >= 0; r--)
                         {
                             NyARD3dUtil.RtlCopyMemory((IntPtr)dst, (IntPtr)src, s_stride);
                             dst += pitch;
                             src += bm.Stride;
                         }
                     }finally{
                         ra.unlockBitmap();
                     }
                     break;
                 default:
                     throw new NyARException();
             }
         }finally{
             this._surface.UnlockRectangle();
         }
         return;
     }
 }
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:56,代码来源:NyARD3dSurface.cs

示例10: setRaster

 /* DsXRGB32Rasterの内容を保持しているテクスチャにコピーします。
  * i_rasterのサイズは、このインスタンスに指定したテクスチャサイズ(コンストラクタ等に指定したサイズ)と同じである必要です。
  * ラスタデータはテクスチャの左上を基点にwidth x heightだけコピーされ、残りの部分は更新されません。
  */
 public void setRaster(INyARRgbRaster i_raster)
 {
     Debug.Assert(!this._is_dispose);
     int pitch;
     using(GraphicsStream texture_rect = this.m_texture.LockRectangle(0, LockFlags.None, out pitch))
     {
         try{
             int dst = (int)texture_rect.InternalData;
             switch (i_raster.getBufferType())
             {
                 case NyARBufferType.BYTE1D_B8G8R8X8_32:
                     {
                         byte[] buf = (byte[])i_raster.getBuffer();
                         //テクスチャのピッチって何?
                         int src_w = this.m_width * 4;
                         int src = 0;
                         for (int r = this.m_height - 1; r >= 0; r--)
                         {
                             Marshal.Copy(buf, src, (IntPtr)dst, pitch);
                             dst += pitch;
                             src += src_w;
                         }
                     }
                     break;
                 case NyARBufferType.OBJECT_CS_Bitmap:
                     NyARBitmapRaster ra = (NyARBitmapRaster)(i_raster);
                     BitmapData bm = ra.lockBitmap(); 
                     try
                     {
                         int src = (int)bm.Scan0;
                         for (int r = this.m_height - 1; r >= 0; r--)
                         {
                             NyARD3dUtil.RtlCopyMemory((IntPtr)dst, (IntPtr)src, pitch);
                             dst += pitch;
                             src += bm.Stride;
                         }
                     }
                     finally
                     {
                         ra.unlockBitmap();
                     }
                     break;
                 default:
                     throw new NyARException();
             }
         }
         finally
         {
             //テクスチャをアンロックする
             this.m_texture.UnlockRectangle(0);
         }
     }
     return;
 }
开发者ID:whztt07,项目名称:NyARToolkitCS,代码行数:58,代码来源:NyARD3dTexture.cs


注:本文中的INyARRgbRaster.getBufferType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。