Пример #1
0
 public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter)
 {
   foreach (var renderer in _renderers)
   {
     renderer.LoadTexture(textureName, index, texture, minFilter, magFilter);
   }
 }
 public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter)
 {
     foreach (var renderer in _renderers)
     {
         renderer.LoadTexture(textureName, index, texture, minFilter, magFilter);
     }
 }
Пример #3
0
    private int CreateTexture(Bitmap texture, TextureUnit unit, TextureMinFilter minFilter, TextureMagFilter magFilter)
    {
      int textureId = GL.GenTexture();
      GL.ActiveTexture(unit);
      GL.BindTexture(TextureTarget.Texture2D, textureId);
      GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)minFilter);
      GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)magFilter);
      GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Repeat);
      GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Repeat);
      GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texture.Width, texture.Height, 0,
        PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);

      var bmpData = texture.LockBits(new Rectangle(0, 0, texture.Width, texture.Height),
        ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);

      GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, texture.Width, texture.Height, PixelFormat.Bgra,
        PixelType.UnsignedByte, bmpData.Scan0);

      texture.UnlockBits(bmpData);

      GL.BindTexture(TextureTarget.Texture2D, 0);

      return textureId;
    }
Пример #4
0
 public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter)
 {
   if (_textureHandleDictionary.ContainsKey(textureName))
     return;
   var unit = TextureUnit.Texture0 + index;
   var textureHandle = CreateTexture(texture, unit, minFilter, magFilter);
   _textureHandleDictionary.Add(textureName, new TextureInfo{Handle = textureHandle, Unit = index});
 }
        private int CreateTexture(Bitmap texture, TextureUnit unit, TextureMinFilter minFilter, TextureMagFilter magFilter)
        {
            int textureId = GL.GenTexture();

            GL.ActiveTexture(unit);
            GL.BindTexture(TextureTarget.Texture2D, textureId);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)minFilter);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)magFilter);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Repeat);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Repeat);
            GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texture.Width, texture.Height, 0,
                          PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);

            var bmpData = texture.LockBits(new Rectangle(0, 0, texture.Width, texture.Height),
                                           ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);

            GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, texture.Width, texture.Height, PixelFormat.Bgra,
                             PixelType.UnsignedByte, bmpData.Scan0);

            texture.UnlockBits(bmpData);

            GL.BindTexture(TextureTarget.Texture2D, 0);

            return(textureId);
        }
        public void LoadTexture(string textureName, int index, Bitmap texture, TextureMinFilter minFilter, TextureMagFilter magFilter)
        {
            if (_textureHandleDictionary.ContainsKey(textureName))
            {
                return;
            }
            var unit          = TextureUnit.Texture0 + index;
            var textureHandle = CreateTexture(texture, unit, minFilter, magFilter);

            _textureHandleDictionary.Add(textureName, new TextureInfo {
                Handle = textureHandle, Unit = index
            });
        }