Пример #1
0
        public spriteTexture(WebGLRenderingContext webgl, string url = null, textureformat format = textureformat.RGBA, bool mipmap = false, bool linear = true)
        {
            this.webgl  = webgl;
            this.format = format;

            this.mat             = new spriteMat();//ness
            this.mat.tex0        = this;
            this.mat.transparent = true;
            this.mat.shader      = "spritedefault";

            if (url == null)//不给定url 则 texture 不加载
            {
                return;
            }
            this.texture = webgl.CreateTexture();

            this.img        = new Bridge.Html5.HTMLImageElement();// Image();// HTMLImageElement(); //ness
            this.img.Src    = url;
            this.img.OnLoad = (e) =>
            {
                if (this.disposeit)
                {
                    this.img = null;
                    return;
                }
                this._loadimg(mipmap, linear);
            };
        }
Пример #2
0
        public static TextureInfo Create(WebGLRenderingContext gl, string fileName)
        {
            var texture     = gl.CreateTexture();
            var textureInfo = new TextureInfo(
                texture: texture,
                width: Optional <int> .Missing,
                height: Optional <int> .Missing
                );

            var image = new HTMLImageElement();

            image.Src    = fileName;
            image.OnLoad = (ev) =>
            {
                textureInfo.Width  = image.Width;
                textureInfo.Height = image.Height;

                gl.BindTexture(gl.TEXTURE_2D, textureInfo.Texture);
                gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
                gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);

                textureInfo.OnLoad?.Invoke();
            };

            return(textureInfo);
        }
Пример #3
0
        static public spriteTexture fromRaw(WebGLRenderingContext webgl, HTMLImageElement img, textureformat format = textureformat.RGBA, bool mipmap = false, bool linear = true)
        {
            var st = new spriteTexture(webgl, null, format, mipmap, linear);

            st.texture = webgl.CreateTexture();
            st.img     = img;
            st._loadimg(mipmap, linear);

            return(st);
        }
Пример #4
0
        public void InitTexture()
        {
            this.texture = gl.CreateTexture();

            var textureImageElement = new HTMLImageElement();

            textureImageElement.OnLoad = (ev) =>
            {
                this.HandleLoadedTexture(textureImageElement);
            };

            textureImageElement.Src = this.textureImageSrc;
        }
Пример #5
0
        public override void BindTexture(uint target, uint texture)
        {
            WebGLTexture t = _textures[texture];

            if (t == null)
            {
                t = gl.CreateTexture();
                _textures[texture] = t;
            }
            //Log("binding texture " + t + " id " + texture + " for activeTexture: " + (_activeTexture - TEXTURE0));
            gl.BindTexture(target, t); CheckError("glBindTexture");
            _boundTextureId[_activeTexture] = texture;
            //glColor3f((float)Math.Random(), (float)Math.Random(), (float)Math.Random());
        }
Пример #6
0
        public void InitTexture(WebGLRenderingContext gl, string file)
        {
            Name = file;
            this.WebGLTexture = gl.CreateTexture();

            var textureImageElement = new HTMLImageElement();

            textureImageElement.OnLoad = (ev) =>
            {
                this.HandleLoadedTexture(textureImageElement, gl);

                Width  = textureImageElement.Width;
                Height = textureImageElement.Height;

                Console.WriteLine("OnLoad");
            };

            textureImageElement.Src = file;
        }