Beispiel #1
0
        /// <summary>
        /// 指定されたテクスチャ ID にビットマップを差し替えます。
        /// </summary>
        /// <param name="id">テクスチャ ID。</param>
        /// <param name="bitmap">差し替えるビットマップ。</param>
        public static void Update(int id, Bitmap bitmap)
        {
            if (bitmap == null)
                throw new ArgumentNullException("bitmap");

            DebugText.IncrementUpdateCount();
            GL.BindTexture(TextureTarget.Texture2D, id);

            using (BitmapController bc = new BitmapController(bitmap, ImageLockMode.ReadOnly))
                GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, bitmap.Width, bitmap.Height, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, bc.Scan0);
        }
Beispiel #2
0
        /// <summary>
        /// 指定されたテクスチャ ID にビットマップを割り当てます。
        /// </summary>
        /// <param name="id">テクスチャ ID。</param>
        /// <param name="bitmap">割り当てるビットマップ。</param>
        public static void Load(int id, Bitmap bitmap)
        {
            if (bitmap == null)
                throw new ArgumentNullException("bitmap");

            DebugText.IncrementLoadCount();
            GL.BindTexture(TextureTarget.Texture2D, id);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Nearest);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Nearest);

            using (BitmapController bc = new BitmapController(bitmap, ImageLockMode.ReadOnly))
                GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, bitmap.Width, bitmap.Height, 0, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, bc.Scan0);
        }