public TexturedQuadData(Vector3[] vertices, Vector4[] texcoords, TexturedQuadData texture) { this.Vertices = vertices; this.Texcoords = texcoords; if (texture._parentTexture != null) { texture = texture._parentTexture; } texture._childTextures.Add(this); this._parentTexture = texture; this.Color = Color.White; // ENSUREs alpha is 255.. use Color to set Alpha only }
public void FreeTexture(bool remove) { if (_control != null && TextureVboID != 0) { if (_control.InvokeRequired) { _control.Invoke(new Action <bool>(this.FreeTexture), remove); } else { if (TextureVboID != 0) { GL.DeleteTexture(TextureVboID); TextureVboID = 0; } } if (remove) { if (_parentTexture != null) { _parentTexture._childTextures.Remove(this); _parentTexture = null; } else if (_childTextures.Count != 0) { _childTextures[0]._parentTexture = null; for (int i = 1; i < _childTextures.Count; i++) { _childTextures[i] = _childTextures[0]; _childTextures[0]._childTextures.Add(_childTextures[i]); } _childTextures.Clear(); } } } }
public static TexturedQuadData FromBaseTexture(TexturedQuadData basetex, Vector3 centre, Vector3 rotationdeg, Rectangle bounds, float width, float height, float hoffset = 0, float voffset = 0) { Vector4[] texcoords = GetTexCoords(bounds.Left, bounds.Top, bounds.Right, bounds.Bottom, basetex.Texture.Width, basetex.Texture.Height); Vector3[] vertices = GetVertices(centre, rotationdeg, width, height, hoffset, voffset); return(new TexturedQuadData(vertices, texcoords, basetex)); }
public static TexturedQuadData FromBaseTexture(TexturedQuadData basetex, PointData centre, Vector3 rotationdeg, float width, float height, float hoffset = 0, float voffset = 0) { return(FromBaseTexture(basetex, centre.Pos, rotationdeg, width, height, hoffset, voffset)); }